记一次Linux木马清除过程
前段时间公司发生了一起服务器入侵事件,在此分享给大家也顺便理顺下linux入侵应急响应思路。 一、事件描述 某天监控同事反馈有台机器cpu飙高到2000%,可能机器已经被黑。于是登录上去查看,果然有个进程名为"HT8sUy71"的进程在作祟,这一看名字就不大可能是正常进程。 二、处理过程 2.1 查杀病毒进程 cpu占用率如此之高,基本可判断为挖矿程序无疑了,使用在线威胁情报系统对进程进行检测,不出所料,得出的标签是coinminer。这种挖矿进程一般都有自动重启机制,可能是某个进程的子进程,也可能在cron定时任务里出现。 首先,检查cron定时任务,发现/var/spool/cron/crontabs/root和/etc/cron.d/tomcat文件修改时间有变化,但是内容却无改动。 然后,使用ps -ef进行查找主进程,并无收获。同时发现此挖矿进程正在和“172.105.114.84”这个ip的8443端口进行通信,可能是黑客的一台远控服务器。 之后,lsof查看此进程在操作哪些文件,也无实际收获。 推测一定是有某个主进程在工作,so,继续通过ps和netstat查找监听所监听端口的异常。果不其然,看到异常进程,正在批量爆破,看来是被当做肉鸡了。同时使用lsof查看此进程文件,发现在调用/root/.ddg/4003.db文件,貌似是个加密的社工库。 判断是此程序即是主程序,kill掉挖矿进程后,使用strace -T -tt -e strace=full进行跟踪,发现主进程先对挖矿进程增加可执行权限,之后拉起进程。 那么现在kill掉主进程吧,发生个小插曲,发现主进程pid一直在变化,好吧,直接killall osryfa3。 至此,算是暂时消停一下,简单总结一下此病毒特征,其一方面释放挖矿病毒进行挖矿,同时又对公网ssh服务进行爆破以扩大感染面。在这里同时给了我一个提醒,或许这台服务器就是通过ssh爆破被入侵的。 2.2 查找入侵痕迹 一般情况下,入侵可能有以下几种方式: a.各种弱口令爆破 b.系统漏洞的利用 c.应用漏洞的利用 上面说了,可能是通过ssh爆破被入侵的,我们先来验证一下。 查看登录日志,发现异常(下图是已经过滤掉正常登录的日志),基本可断定是通过ssh爆破入侵了,也可以断定ssh的访问控制已经失效。
结合以上ip查看爆破日志,确认以上ip的用户不是同一个人,是刚好有这么多ip同时爆破了root账户,而且最短的爆破时间只花了1分钟。想来这个root账户必然是个弱密码了。继续查找Failed日志的最早时间如下:
基本可断定在这之前有人动过访问控制策略了,询问运维人员无果。 stats查看iptables、/etc/hosts.allow和/etc/hosts.deny文件状态,结合.bash_history命令,一切真相大白,一言难尽,你们自己体会。 2.3 病毒文件的清理 首先,使用stat查看上面两个进程的修改时间,大约在7月8号早上6点多,而ssh系统最早爆破时间是7月6号16:41。 然后,结合这两个时间来查找敏感目录中被修改过的系统文件,进行检查修复和清除。
最后 ,使用chkrootkit、clamav、rkhunter一通查杀,当然,还是重装系统最保险。 三、总结 首先啰嗦一下,关于linux主机,高危端口真得万万不能全网开放。看了日志后,发现黑客真是时时刻刻在爆破啊。 关于linux入侵的排查思路,总结如下: 1、查看异常进程活动-查找是否有异常进程和端口占用 1.1查找占用cpu最多的进程,相关命令:运行top命令后,键入大写字母P按cpu排序; 1.2查找占用内存最多的进程,相关命令:运行top命令后,键入大写字母M
1.3查找进程文件:
1.4跟踪异常进程运行情况:
1.5查看进程打开的文件
1.6 查看进程端口情况
2、查看账号安全 2.1查看是否有存在新增异常账号: a.查找特权用户
b.查找可以远程登录的账号信息
(编辑:ASP站长网) |