Linux安全——被入侵后的排查

Table of Contents

1 系统审查

用户相关命令:

  • 查看用户登录记录:last -xad
  • 查看用户登录失败记录:lastb
  • 查看用户上次登录情况:lastlog
  • 查看当前登录的用户:who、w。w -f可显示出登录来源(IP、终端等)
  • cat /etc/passwd,以及users命令列出可登录的帐号
  • stat /etc/passwd,查看系统里帐号最后修改密码时间
  • awk -F: '$3=="0"' /etc/passwd,查找root组的帐号
  • 检查/etc/shadow有密码的帐号

进程相关命令:

  • 进程检查ps -ef、ps -pantul
  • 查看该进程启动的完整命令行: ps eho command -p $PID
  • 查看该进程启动时候所在的目录: readlink /proc/$PID/cwd
  • 查看该进程启动时的完整环境变量: strings -f /proc/$PID/environ | cut -f2 -d ' '
  • 列出该进程所打开的所有文件: lsof -p $PID
  • 列出该进程所打开的网络连接: netstat -pan(或ss -pan) | grep $PID
  • top -H查看当前活跃进程,如果有占用大量CPU资源的进程,可能是挖矿木马的

网络相关命令:

  • 查看端口开放:netstat -tunlp
  • 检查ARP表:arp -a
  • 查看/etc/hosts是否有可疑条目

系统服务相关命令:

  • 检查系统服务:chkconfig –list或者systemctl list-unit-files

2 文件审查

  • 某次安全应急时,遇到客户服务器的CentOS中多个命令(如sudo、ls)被替换成带有后门的命令,我们的方法是找同发行版、同版本的系统对比/bin、/sbin、/lib/modules/内核版本/等地方的文件MD5:
find /bin/ -type f  | xargs md5sum
  • 到网站目录找出最近更改的文件:
find -type f -mtime -30 # 列出30天内修改的文件
  • 检查crontab任务:/var/spool/cron/crontabs/、/etc/cron.daily
  • 检查.bashrc、.bash_profile、.bash_login、~/.ssh/authorized_keys
  • 检查/root和/tmp目录。可能/tmp目录下有poc、后门;如果/root目录下存在恶意文件,表示服务器已经被提权
  • 用lsmod查看系统加载的驱动
  • 对于可疑的文件,可以到 https://www.virustotal.com/ 检测是否是恶意软件

3 日志审查

最好把系统日志(如/var/log)单独拷贝出来分析。

  • 查找哪些人通过SSH登录过服务器:
fgrep 'Accept' /var/log/secure*
  • 分析shell的history文件。