应急响应排查思路

当线上服务器发现异常以后,无非就是常见的几种现象:

Web入侵:挂马、篡改、Webshell
系统入侵:系统异常、RDP爆破、SSH爆破、主机漏洞
病毒木马:远控、后门、勒索软件
信息泄漏:刷裤、数据库登录(弱口令)
网络流量:频繁发包、批量请求、DDOS攻击

被黑之后可按照如下方法逐一操作

1.跟开发运维确认被黑机器的用途、重要程度,能否断网处理,如果不能,先做下白名单处理,限制源ip访问,防止黑客继续深入

2.查找进程, ps -ef 查找进程id,根据进程process-id查看 进程所在的路径 ls -al  /proc/process-id/exe 即可查找进程所在的文件绝对路径。也可以用lsof -p process-id 和 lsof -i listen-port|ip-address|

但需要注意如下点

  1)虽然通过ps,netstat可以查看进程和网络连接,但是很多时候,你使用ll,stat命令查看ps,netstat等文件的时候,发现这些常用命令都被黑客替换了,这样查看的时候是看不到恶意的进程的,需要从正常的机器上拷贝完整的命令到该机器上再执行即可

  pstree -a -pn 查看进程比较好看一些

  2)当遇到僵尸进程(多个进程互相守护,一个进程被杀死,另外一个进程立马启动,总也杀不死的情况),首先需要定位到可执行文件的路径,锁定常用的可执行文件路径,禁止新的文件生成,命令为:

       chattr +i  /usr/bin/ /usr/sbin/ /bin ...

  使该目录不可读不可写不可删除文件,同时修改恶意文件的权限为000  

     chmod 000 bad-binary-file

  3)当定位一个异常进程后,注意查看该进程的启动时间,假设的Feb 27  那么你就要注意查看一下常用的进程的文件的修改时间(如sshd),是否是Feb 27,这样可以简单的确认,sshd是否被植入了后门文件,命令如下:

   ls -al /bin /usr/bin /usr/sbin/ /sbin/ | grep "Feb 27"

3.查日志,通过查看常见的登陆日志确定黑客的攻击路径,ssh弱口令?中间件上传木马?等等,常见的日志文件

  1)nginx或者apache的access_log,使用grep命令过滤黑客日志,定位404状态码,500状态码等方法

  2)/var/log/secure 该日志记录了系统登陆成功和失败的日志,可利用cat /var/log/secure|grep "Accepted"或者cat /var/log/secure|grep "Failed"|wc -l 确定黑客爆破次数,登陆信息等,但是该日志很可能会被黑客删除,一种解决办法就是修改系统的登陆bash脚本,将系统的登陆信息以syslog的形式丢出去,即使黑客把日志删除了,登陆信息也可以查到

  3)last命令记录了系统最近被登陆的信息,也可能被删除,last命令读取的是 /var/log/wtmp文件,/var/run/utmp同样也保存了登陆信息,区别

  /var/log/wtmp文件中保存的是登录过本系统的用户的信息

  /var/run/utmp文件保存的是当前正在本系统中的用户的信息

  想要查看上面两个文件需要使用last -f /var/log/wtmp|/var/run/utmp

  lastlog命令,记录系统中所有用户最近一次登录信息。

  lastb命令,记录用户错误的登录列表 对应的数据源 /var/log/btmp

  4)history命令,如果黑客执行了history -c 命令,那么历史记录会被清楚,但是查看 cat ~/.bash_history还是可以查看历史命令,要想彻底删除历史记录,需要先执行history -c 然后history -w 这样~/.bash_history文件也会被清空了,

4.查最近更改过的文件,巧用find 命令参考另外一篇详解

5.查开机启动项和定时任务

开机启动项排查 

定时任务排查 http://www.cnblogs.com/Kevin-1967/p/7219120.html

6.后门排查

chkrootkit  www.chkrootkit.org 

rkhunter  rkhunter.sourceforge.net

原文地址:https://www.cnblogs.com/Kevin-1967/p/7241303.html