---用户信息文件
cat /etc/passwd
---影子文件
cat /etc/shadow
---查看当前登录用户及登录时长
who: 查看当前登录系统的所有用户
w: 显示已经登录系统的所有用户,以及正在施行的命令
uptime: 查看登录多久,多久用户,负载情况
---查看最近登录成功的用户及信息
last
---查看最近登录失败的用户及信息
lastb
---显示所有用户最近一次登录信息
lastlog
---查看非root运行的进程
ps -U root -u root -N
---查看用户root运行的进程
ps -u root
---检测隐藏进程
ps -ef | awk '{print}' | sort -n |uniq >1
ls /proc | sort -n |uniq >2
-sort 命令将文本文件内容加以排序,可针对文本文件的内容,以行为单位来排序。-n 参数依照数值的大小排序。
-uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。
---查看进程树是否所有异常进程存在一个父进程、判断进程的父子关系
pstree -p
---查看所有tcp网络连接信息
lsof -i tcp
---查看所有udp网络连接信息
lsof -i udp
---查看所有文件,包括隐藏的文件
ls -la
-a:显示所有文件及目录,包括隐藏文件
-l:以长格式显示目录下的内容列表。
-t:用文件和目录的更改时间排序
---查看文件路径(whereis)
whereis filename
---查看文件创建时间(ls)
ls -al filname
---查找最近24小时内修改过的文件(find)
find ./ -mtime 0
find 命令用来在指定目录下查找文件。
参数 -mtime n 按照文件的更改时间来找文件,n为整数。
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件
---查找以.txt结尾的文件名(find)
find / -name "*.txt"
-忽略大小写,命令:
find / -iname "*.txt"
---查找不是以.txt结尾的文件(find)
find / ! -name "*.txt"
在黑客入侵之前,必须使用chattr +a对/var/log/wtmp
---sudo用户列表
/etc/sudoers
# 查询特权用户特权用户(uid 为0):
awk -F: '$3==0{print $1}' /etc/passwd
# 查询可以远程登录的帐号信息:
awk '/\$1|\$6/{print $1}' /etc/shadow
-查看空口令账号
awk -F: '($2=="")' /etc/shadow
# 除root帐号外,其他帐号是否存在sudo权限。如非管理需要,普通帐号应删除sudo权限:
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
# 禁用或删除多余及可疑的帐号
usermod -L user # 禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头
userdel user # 删除 user 用户
userdel -r user # 将删除 user 用户,并且将 /home 目录下的 user 目录一并删除
---查看运行级别命令:
runlevel
---为历史的命令增加登录的 IP 地址、执行命令时间等信息
# 1、保存1万条命令:
sed -i 's/^HISTSIZE=1000/HISTSIZE=10000/g' /etc/profile
# 2、在/etc/profile的文件尾部添加如下行数配置信息:
USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
export HISTTIMEFORMAT="%F %T $USER_IP `whoami` "
shopt -s histappend
export PROMPT_COMMAND="history -a"
# 3、让配置生效
source /etc/profile
---开机启动配置文件
/etc/rc.local
/etc/rc.d/rc[0~6].d
---计划任务
crontab -l # 实际上是列出了
cat /var/spool/cron/root
cat /etc/crontab # 只允许root用户修改
-/etc/cron.d/将文件写到该目录下,格式和/etc/crontab相同
把脚本放在/etc/cron.hourly/、/etc/cron.daily/、/etc/cron.weekly/、/etc/cron.monthly/目录中,让它每小时/天/星期/月执行一次
more /etc/cron.daily/* 查看目录下所有文件
---目录中是否存在恶意脚本
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
---按照CPU使用率从高到低排序:
ps -ef --sort -pcpu
---按照内存使用率从高到低排序:
ps -ef --sort -pmem
---系统日志检查
/var/log/wtmp 登录进入,退出,数据交换、关机和重启纪录
/var/log/lastlog 文件记录用户最后登录的信息,可用 lastlog 命令来查看。
/var/log/secure 记录登入系统存取数据的文件,例如 pop3/ssh/telnet/ftp 等都会被记录。
/var/log/cron 与定时任务相关的日志信息
/var/log/message 系统启动后的信息和错误日志
---日志分析技巧
1、定位有多少IP在爆破主机的root帐号:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
定位有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
爆破用户名字典是什么?
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
2、登录成功的IP有哪些:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
登录成功的日期、用户名、IP:
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
3、增加一个用户kali日志:
Jul 10 00:12:15 localhost useradd[2382]: new group: name=kali, GID=1001
Jul 10 00:12:15 localhost useradd[2382]: new user: name=kali, UID=1001, GID=1001, home=/home/kali
, shell=/bin/bash
Jul 10 00:12:58 localhost passwd: pam_unix(passwd:chauthtok): password changed for kali
#grep "useradd" /var/log/secure
4、删除用户kali日志:
Jul 10 00:14:17 localhost userdel[2393]: delete user 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed group 'kali' owned by 'kali'
Jul 10 00:14:17 localhost userdel[2393]: removed shadow group 'kali' owned by 'kali'
# grep "userdel" /var/log/secure
5、su切换用户:
Jul 10 00:38:13 localhost su: pam_unix(su-l:session): session opened for user good by root(uid=0)
sudo授权执行:
sudo -l
Jul 10 00:43:09 localhost sudo: good : TTY=pts/4 ; PWD=/home/good ; USER=root ; COMMAND=/sbin/shutdown -r now
---webshell查杀:
河马 WebShell 查杀:http://www.shellpub.com
---Linux安全检查脚本:
https://github.com/grayddq/GScan
https://github.com/ppabc/security_check
https://github.com/T0xst/linux
https://www.cnblogs.com/jerry-0910/p/15727683.html