服务器遭受攻击后如何排查( 二 )


首先通过pidof命令可以查找正在运行的进程PID,例如要查找sshd进程的PID,执行如下命令:
 

服务器遭受攻击后如何排查

文章插图
 
 
 
然后进入内存目录,查看对应PID目录下exe文件的信息:
 
服务器遭受攻击后如何排查

文章插图
 
这样就找到了进程对应的完整执行路径 。如果还有查看文件的句柄,可以查看如下目录:
[root@server ~]# ls -al /proc/13276/fd通过这种方式基本可以找到任何进程的完整执行信息,此外还有很多类似的命令可以帮助系统运维人员查找可疑进程 。例如,可以通过指定端口或者tcp、udp协议找到进程PID,进而找到相关进程:
 
服务器遭受攻击后如何排查

文章插图
 
在有些时候,攻击者的程序隐藏很深,例如rootkits后门程序,在这种情况下ps、top、netstat等命令也可能已经被替换,如果再通过系统自身的命令去检查可疑进程就变得毫不可信,此时,就需要借助于第三方工具来检查系统可疑程序,例如前面介绍过的chkrootkit、RKHunter等工具,通过这些工具可以很方便的发现系统被替换或篡改的程序 。
五、检查文件系统的完好性
检查文件属性是否发生变化是验证文件系统完好性最简单、最直接的方法,例如可以检查被入侵服务器上/bin/ls文件的大小是否与正常系统上此文件的大小相同,以验证文件是否被替换,但是这种方法比较低级 。此时可以借助于linux下rpm这个工具来完成验证,操作如下:
 
服务器遭受攻击后如何排查

文章插图
对于输出中每个标记的含义介绍如下:
  • S 表示文件长度发生了变化
  • M 表示文件的访问权限或文件类型发生了变化
  • 5 表示MD5校验和发生了变化
  • D 表示设备节点的属性发生了变化
  • L 表示文件的符号链接发生了变化
  • U 表示文件/子目录/设备节点的owner发生了变化
  • G 表示文件/子目录/设备节点的group发生了变化
  • T 表示文件最后一次的修改时间发生了变化
如果在输出结果中有“M”标记出现,那么对应的文件可能已经遭到篡改或替换,此时可以通过卸载这个rpm包重新安装来清除受攻击的文件 。
不过这个命令有个局限性,那就是只能检查通过rpm包方式安装的所有文件,对于通过非rpm包方式安装的文件就无能为力了 。同时,如果rpm工具也遭到替换,就不能通过这个方法了,此时可以从正常的系统上复制一个rpm工具进行检测 。
对文件系统的检查也可以通过chkrootkit、RKHunter这两个工具来完成,关于chkrootkit、RKHunter工具的使用,下次将展开介绍 。
 

【服务器遭受攻击后如何排查】


推荐阅读