1. 用户信息文件:/etc/passwd
/etc/passwd
文件包含用户的基本信息,格式如下:
account:password:UID:GID:GECOS:directory:shell
示例:
root:x:0:0:root:/root:/bin/bash
常用检查命令:
- 查看可登录用户:
cat /etc/passwd | grep /bin/bash
- 查看UID为0的用户:
awk -F: '$3==0{print $1}' /etc/passwd
- 查看具有sudo权限的用户:
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
注意:无密码的用户只允许本机登录,远程登录应禁止。
2. 用户加密密码文件:/etc/shadow
/etc/shadow
文件存储用户的加密密码和密码有效期等信息。
示例:
root:$6$oGs1PqhL2p3ZetrE$X7o7bzoouHQVSEmSgsYN5UD4.kMHx6qgbTqwNVC5oOAouXvcjQSt.Ft7ql1WpkopY0UV9ajBwUt1DpYxTCVvI/:16809:0:99999:7:::
3. 查看当前登录用户及登录时长
- 查看当前登录用户:
who
- 查看当前登录用户及执行的命令:
w
- 查看系统运行时长及负载情况:
uptime
4. 排查用户登录信息
- 查看最近登录成功的用户信息:
last
- 查看最近登录失败的用户信息:
sudo lastb
- 查看所有用户最近一次登录信息:
lastlog
安全建议:如果怀疑/var/log/wtmp
文件被篡改,使用chattr +a
对该文件进行锁定。
5. 排查特权用户与sudo权限
- 查看特权用户(UID为0):
awk -F: '$3==0{print $1}' /etc/passwd
- 查看可以远程登录的帐号信息:
awk '/\$1|\$6/{print $1}' /etc/shadow
- 查看非root用户是否有sudo权限:
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
禁用或删除可疑账号:
- 禁用用户:
usermod -L user
- 删除用户:
userdel user userdel -r user # 删除用户及其家目录
6. 查看执行过的历史命令
-
查看每个用户的历史命令:
访问/home/用户目录/.bash_history
文件查看历史命令。 -
增加历史命令的IP地址和时间戳:
修改/etc/profile
文件,增加以下内容:USER_IP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'` if [ "$USER_IP" = "" ] thenUSER_IP=`hostname` fi export HISTTIMEFORMAT="%F %T $USER_IP `whoami` " shopt -s histappend export PROMPT_COMMAND="history -a"
注意:可以通过history -c
清除命令历史,但并不能清除.bash_history
文件中的记录,需要手动删除。
7. 检查端口连接与进程
-
查看端口连接情况:
netstat -antlp
-
查看可疑进程:
ps aux | grep 6666
-
查看进程对应的文件路径:
ls -l /proc/$PID/exe
-
强行停止可疑进程:
kill -9 6071
8. 检查开机启动项与计划任务
-
查看开机启动项:
/etc/rc.local
/etc/rc.d/rc[0~6].d
chkconfig --list
查看自启动服务状态。
-
检查计划任务:
crontab -l # 列出当前用户的计划任务 crontab -r # 删除当前用户的计划任务
恶意脚本排查:检查以下路径中是否存在恶意脚本:
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
9. 异常文件检查与日志分析
-
查找修改过的文件:
- 按文件名:
find / -name "filename"
- 按大小:
find / -size +1000M
- 按时间:
find / -mtime -1
- 按文件名:
-
日志分析:
- 爆破登录IP:
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c
- 成功登录IP:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c
- 爆破登录IP:
10. WebShell查杀与安全脚本
-
WebShell查杀工具:
- 河马 WebShell 查杀:Shellpub
-
Linux安全检查脚本:
- GScan
- Security Check
- T0xst Linux Check