记一次挖矿木马清理
时间:2021-04-02 作者:安帝科技
01背景
某客户反映大数据平台不能访问,初步原因是由于环境变量被破坏,经过内部的简单讨论后,环境变量并非内部同事所为,由此判定可能是中病毒了。
02发现病毒
病毒查杀一般都先查看进程,看看有没有不认识的进程,或资源占用较高的进程。果不其然进程“-bash”CPU占用1400%,明显有问题。
使用-p查看进程1732已打开的内容,首先/usr/bin/-bash(deleted)文件名称前面加“-”就很可疑,一般正常的文件名不会以“-”开头,因为“-”开头的文件不容易被查找和操作(知识点1),可疑点1。同时后面的括号显示已删除,一般正常的文件运行起来后不会自己删除的,可疑点2。
最后一行,该主机的57076端口连接了158.ip-51-75-133.eu:http。
通过浏览器访问该ip地址居然可以打开,显示如下:
到这里已经很明确了,服务器中了联机挖矿木马。
03清理病毒
查看/usr/bin/-bash文件,并无此文件(通过上面lsof查看pid时就已经知道该文件已被删除),杀掉1732进程后重启服务器,结果发现该程序依然存在。
启动项1
查看chkconfig,发现可疑程序“pwnrig”,如下图:
通过百度搜索,该程序名大多指向了挖矿木马,进一步验证了该程序是病毒程序,如下图:
接下来就是查看该程序的启动代码,如下图:
很明显/bin/-bash是从/bin/sysdr复制过去的,然后运行,最后再删除自己。
启动项2
删除上图启动项之后,杀掉-bash进程,重启服务器,结果-bash程序还是存在,由此推断该程序还存在其它启动项,这很符合病毒的基本特征——有效的驻留。但是一般情况这样的驻留都是徒劳,因为病毒一旦被发现,再次启动特征依然存在,管理人员肯定会想尽办法删除。
查看.bash_profile发现同样的命令,复制→运行→删除,不过这次的源文件和上面的不同(/bin/bprofr),记录这两个文件名,然后删除该条记录。
计划任务
由于此次病毒清理的梳理过程与事发时间相隔较远,所以部分过程已丢失,无详细截图,但可以从清理脚本中看出,此次病毒在计划任务中也添加了驻留代码。
全局搜索
清理病毒时,最好做若干次全局搜索,同名的全局搜索,和近似名称的全局搜索,尽可能保证所有病毒文件被查找出来。
时间搜索
通过对此次病毒事件的分析,该病毒的入侵时间基本可以确定,所以配合全局搜索后,还需要对敏感目录下病毒入侵时间的文件进行筛选,尽可能全面地找出所有病毒文件。
病毒清理
通过对此次病毒文件的清理来看,此处收回上面说的那句“有效驻留都是徒劳”话[手动哭笑],这病毒文件也太多了吧!!!而且很多名称都不一样,这样很有可能导致病毒文件查找不全,进而导致清理不彻底。
chattr -ai -V /bin/bprofrrm -rf /bin/bprofr
chattr -ai -V /bin/bproform -rf /bin/bprofo
chattr -ai -V /bin/sysdrrm -rf /bin/sysdr
chattr -ai -V /usr/bin/-bashrm -rf /usr/bin/-bash
rm -rf /run/systemd/generator.late/pwnrig.servicerm -rf /etc/systemd/system/multi-user.target.wants/pwnrige.servicerm -rf /etc/systemd/system/multi-user.target.wants/pwnrigl.service
rm -rf /run/systemd/generator.late/runlevel5.target.wants/pwnrig.servicerm -rf /run/systemd/generator.late/runlevel4.target.wants/pwnrig.servicerm -rf /run/systemd/generator.late/runlevel3.target.wants/pwnrig.servicerm -rf /run/systemd/generator.late/runlevel2.target.wants/pwnrig.service
chattr -ai -V /etc/cron.daily/pwnrigchattr -ai -V /etc/rc.d/init.d/pwnrigchattr -ai -V /etc/systemd/system/pwnrige.servicechattr -ai -V /etc/cron.hourly/pwnrigchattr -ai -V /etc/cron.d/pwnrigchattr -ai -V /etc/cron.monthly/pwnrigchattr -ai -V /etc/cron.weekly/pwnrigchattr -ai -V /usr/lib/systemd/system/pwnrigl.service
rm -rf /etc/cron.daily/pwnrigrm -rf /etc/rc.d/init.d/pwnrigrm -rf /etc/systemd/system/pwnrige.servicerm -rf /etc/cron.hourly/pwnrigrm -rf /etc/cron.d/pwnrigrm -rf /etc/cron.monthly/pwnrigrm -rf /etc/cron.weekly/pwnrigrm -rf /usr/lib/systemd/system/pwnrigl.service
rm -rf /etc/rc.d/rc0.d/K60pwnrigrm -rf /etc/rc.d/rc1.d/K60pwnrigrm -rf /etc/rc.d/rc2.d/S90pwnrigrm -rf /etc/rc.d/rc3.d/S90pwnrigrm -rf /etc/rc.d/rc4.d/S90pwnrigrm -rf /etc/rc.d/rc5.d/S90pwnrigrm -rf /etc/rc.d/rc6.d/K60pwnrig
/sys/fs/cgroup/devices/system.slice/pwnrige.service/sys/fs/cgroup/systemd/system.slice/pwnrig.service/sys/fs/cgroup/systemd/system.slice/pwnrige.service
/etc/systemd/system/multi-user.target.wants/pwnrige.service/etc/systemd/system/multi-user.target.wants/pwnrigl.service/etc/systemd/system/pwnrige.service/etc/rc.d/init.d/pwnrig/etc/cron.hourly/pwnrig/etc/cron.d/pwnrig/etc/cron.monthly/pwnrig/etc/cron.weekly/pwnrig/usr/lib/systemd/system/pwnrigl.service
/sys/fs/cgroup/devices/system.slice/pwnrige.service/sys/fs/cgroup/systemd/system.slice/pwnrige.service/etc/rc.d/rc0.d/K60pwnrig/etc/rc.d/rc1.d/K60pwnrig/etc/rc.d/rc2.d/S90pwnrig/etc/rc.d/rc3.d/S90pwnrig/etc/rc.d/rc4.d/S90pwnrig/etc/rc.d/rc5.d/S90pwnrig
/etc/systemd/system/pwnrige.service/usr/lib/systemd/system/pwnrigl.service
知识点1
通过vim -test.txt创建“-test.txt”文件时,vim会把“-t”当成参数。
grep也同样。
touch也同样。
cat也同样。
find也同样。
知识点2
chattr命令用于改变文件的属性,这些属性共有以下8种模式:
a:让文件或目录仅供附加用途;
b:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。
lsattr命令用于显示文件属性,参数如下:
a:显示所有文件和目录,包括以”.”为名称开头字符的额外内建,现行目录”.”与上层目录”..”;
d:显示,目录名称,而非其内容;
l:此参数目前没有任何作用;
R:递归处理,将指定目录下的所有文件及子目录一并处理;
v:显示文件或目录版本;
V:显示版本信息。