[日常清理挂马教程] 记一次木马查杀过程详细记录

原创 小新  2018-04-24 14:39:24  阅读 110 次 评论 0 条

        声明一下哦,这篇文章并非小编本人所写的哦,是我在BT宝塔的论坛上转载过来的,因为这文章记录的非常好,也非常详细,转载呢?也是分享一下,也没有向原作者申请授权,如果原作者要发现了,不同意不授权的话,我会删除文章的,不过,原作者应该不会,我会原文章不动,不修改任何内容的转过来的。

        服务器被挂马,相信不少运维或者站长是头疼的事情,我以前也清理过服务器挂马的事情,以前挂马都是拿来做肉机,跳板,DDOS......现在多了一个挖矿,拿肉机来挖比特币、以太币之类的虚拟货币。下面的内容是我在BT宝塔论坛上看到的网友的一次记录。


[日常清理挂马教程] 记一次木马查杀过程详细记录


原文章链接:https://www.bt.cn/bbs/thread-12389-1-1.html

原作者:liang2580

原文章内容:

我今天上班午休的时候,一个朋友找我,说打开网站很慢,我访问了一下,不慢啊,后面我就去睡觉去了。睡醒之后我才发现了问题龌蹉。特征ps命令找不到进程,top能看到负载最高的一个程序是一个随机的10位字母的东西,kill掉之后自动再次出现一个随机10位字母的进程。
我此刻想想。龌蹉。这么难搞么? 我作为打不死的小强。我就不信了。执行一个命令。卡一下。朋友的机器是8核心16G的机器。
龌蹉。CPU跑到了百分之799 我说怎么这么卡。


这时候我想到一个问题居然是能自我开机启动,要么/etc/rc.d/{init.d,rc{1,2,3,4,5}.d}/下有启动脚本,要么有cron计划任务。
于是我发现crontab -l是正常,来到/etc/rc.d/init.d下发现了异常有10位字母的启动脚本,脚本内容如下

龌蹉。龌蹉 。一大坨的东西,吓死我了,那就随便查看一个吧。

[root@localhost rc6.d]# ls
K15pure-ftpd  K25nginx   K50netconsole  K79iprdump  K80iprupdate   K90ghpiscaobv  K90kakaipdban  K90olpcsfiisv  K90srshvadwgl  K90yhcbwmmbui  K90zhwxkkocsx
K25bt         K36mysqld  K50php-fpm-56  K80iprinit  K90eyshcjdmzg  K90jljpidvnbb  K90network     K90rlmqasojjo  K90vnessxebzv  K90ylvjsohrqi  K90zpwtmltusi


这tmd 的什么鬼玩意。一脸懵逼
看到这我真是佩服这帮人单用户启动模式都不放过啊,尼玛,你这是赶尽杀绝啊。。。。。。。
到了这里我天真的删除了几个这样的启动脚本,然后重启服务器,问题依旧。。。。。。。。。你妹啊。。。不带这样玩的。。。。rc0-rc6 都中木马
我此刻的心都崩溃了

于是我又很傻很天真的删除了这些启动脚本,并且kill了相关进程,希望的太阳没有升起,沉重的打击再次来临,木马再次自我复制自我运行了。。。。启动脚本再次出现了。。
我知道我进入了误区,重新想思路。。。
不知道为什么我瞬间想到了我遗漏了一个地方,cron,对。。。我是crontab -l 来查看的,还有个地方的cron任务不会在这个命令下出现/etc/cron.*


root@Xd9BdoAkG ~]# cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
*/3 * * * * root /etc/cron.hourly/gcc.sh


你妹啊 啊 啊 啊,不带这样玩的

[root@Xd9BdoAkG ~]# cat /etc/cron.hourly/gcc.sh
#!/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/X11R6/bin
for i in `cat /proc/net/dev|grep :|awk -F: {'print $1'}`; do ifconfig $i up& done
cp /lib/libudev.so /lib/libudev.so.6
/lib/libudev.so.6


妈的 真难受
删掉
mv /etc/crontab  /etc/crontab2 echo "" >/etc/crontab  && chattr +i /etc/crontab
mv /etc/cron.hourly/gcc.sh /etc/cron.hourly/gcc2.sh && rm -rf /etc/cron.hourly/gcc.sh


[root@Xd9BdoAkG ~]# cat /proc/net/dev|grep :|awk -F: {'print $1'}
     lo
    em1
    em2
    em3
    em4


我擦,看到这,再次shit,你还知道主动启动网络和外面联系啊。。。。

[root@Xd9BdoAkG ~]# file /lib/libudev.so
/lib/libudev.so: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), statically linked, for GNU/Linux 2.6.9, not stripped


居然不是脚本什么的,想看文件具体内容暂时是没时间了。。。。。。。
到了这里我们可以确认有几个地方有问题/lib/libudev.so /etc/cron.hourly/gcc.sh /etc/crontab /etc/rc.d/init.d/ /etc/rc.d/rc3.d/
由于对方发送大量数据包,所以开始采取iptables来封禁,发现这玩意直接把output是 state 为new的drop掉。。。。。。。。不想说了,已经被他玩够了,不在乎多一次。。
通过排查可以肯定/lib/libudev.so是主体。其他是协助运行和自我保护自我复制的实现。既然你是个程序还在系统上,我有root,还搞不定么。为了不再多拖时间,直接查杀了。。

[root@Xd9BdoAkG ~]# chmod 0000 /lib/libudev.so && rm -rf /lib/libudev.so && chattr +i /lib/


到了这里基本就差不多了。。。。。现在去重启服务器,

[root@Xd9BdoAkG ~]# top -b -n1 | head
top - 18:13:47 up 0 min,  1 user,  load average: 0.11, 0.03, 0.01
Tasks: 178 total,   2 running, 176 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.4%us,  1.6%sy,  0.0%ni, 95.7%id,  1.3%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  32827160k total,   486308k used, 32340852k free,     6864k buffers
Swap: 16482300k total,        0k used, 16482300k free,    28312k cached


        文章到这里也结束了,不知道原作者的一个流程有没有让你有一个查杀起到帮助呢?你有没有别的一个新的查杀思路呢?不妨留下你的留言。

本文地址:https://mxlog.com/fenxiang/1512.html
版权声明:本文为原创文章,版权归 小新 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?