0x01 背景
公司同事反馈大数据平台不能访问,初步原因是由于环境变量被破坏,经过内部的简单讨论后,环境变量并非内部同事所为,由此判定可能是中病毒了。
0x02 发现病毒
病毒查杀一般都先查看进程,看看有没有不认识的进程,或资源占用较高的进程。果不其然进程“-bash”CPU占用1400%,明显有问题。
使用-p查看进程1732已打开的内容,首先/usr/bin/-bash(deleted)文件名称前面加“-”就很可疑,一般正常的文件名不会以“-”开头,因为“-”开头的文件不容易被查找和操作(知识点1),可疑点1。同时后面的括号显示已删除,一般正常的文件运行起来后不会自己删除的,可疑点2。
最后一行,该主机的57076端口连接了http://51.75.133.158
通过浏览器访问该ip地址居然可以打开,显示如下:
到这里已经很明确了,服务器中了联机挖矿病毒。
0x03 清理病毒
查看/usr/bin/-bash文件,并无此文件(通过上面lsof查看pid时就已经知道该文件已被删除),杀掉1732进程后重启服务器,结果发现该程序依然存在。
启动项1
查看chkconfig,发现可疑程序“pwnrig”,如下图:
通过百度搜索,该程序名大多指向了挖矿病毒,进一步验证了该程序是病毒程序,如下图:
接下来就是查看该程序的启动代码,如下图:
很明显/bin/-bash是从/bin/sysdr复制过去的,然后运行,最后再删除自己
启动项2
删除上图启动项之后,杀掉-bash进程,重启服务器,结果-bash程序还是存在,由此推断该程序还存在其它启动项,这很符合病毒的基本特征——有效的驻留。但是一般情况这样的驻留都是徒劳,因为病毒一旦被发现,再次启动特征依然存在,管理人员肯定会想尽办法删除。
查看.bash_profile发现同样的命令,复制à运行à删除,不过这次的源文件和上面的不同(/bin/bprofr),记录这两个文件名,然后删除该条记录。
计划任务
由于此次病毒清理的梳理过程与事发时间相隔较远,所以部分过程已丢失,无详细截图,但可以从清理脚本中看出,此次病毒在计划任务中也添加了驻留代码。
全局搜索
清理病毒时,最好做若干次全局搜索,同名的全局搜索,和近似名称的全局搜索,尽可能保证所有病毒文件被查找出来。
时间搜索
通过对此次病毒事件的分析,该病毒的入侵时间基本可以确定,所以配合全局搜索后,还需要对敏感目录下病毒入侵时间的文件进行筛选,尽可能全面地找出所有病毒文件。
病毒清理
通过对此次病毒文件的清理来看,我收回我上面说的那句“有效驻留都是徒劳”话[手动哭笑],这病毒文件也太TM多了吧!!!而且很多名称都不一样,这样很有可能导致病毒文件查找不全,进而导致清理不彻底。
chattr -ai -V /bin/bprofr rm -rf /bin/bprofr chattr -ai -V /bin/bprofo rm -rf /bin/bprofo chattr -ai -V /bin/sysdr rm -rf /bin/sysdr chattr -ai -V /usr/bin/-bash rm -rf /usr/bin/-bash rm -rf /run/systemd/generator.late/pwnrig.service rm -rf /etc/systemd/system/multi-user.target.wants/pwnrige.service rm -rf /etc/systemd/system/multi-user.target.wants/pwnrigl.service rm -rf /run/systemd/generator.late/runlevel5.target.wants/pwnrig.service rm -rf /run/systemd/generator.late/runlevel4.target.wants/pwnrig.service rm -rf /run/systemd/generator.late/runlevel3.target.wants/pwnrig.service rm -rf /run/systemd/generator.late/runlevel2.target.wants/pwnrig.service chattr -ai -V /etc/cron.daily/pwnrig chattr -ai -V /etc/rc.d/init.d/pwnrig chattr -ai -V /etc/systemd/system/pwnrige.service chattr -ai -V /etc/cron.hourly/pwnrig chattr -ai -V /etc/cron.d/pwnrig chattr -ai -V /etc/cron.monthly/pwnrig chattr -ai -V /etc/cron.weekly/pwnrig chattr -ai -V /usr/lib/systemd/system/pwnrigl.service rm -rf /etc/cron.daily/pwnrig rm -rf /etc/rc.d/init.d/pwnrig rm -rf /etc/systemd/system/pwnrige.service rm -rf /etc/cron.hourly/pwnrig rm -rf /etc/cron.d/pwnrig rm -rf /etc/cron.monthly/pwnrig rm -rf /etc/cron.weekly/pwnrig rm -rf /usr/lib/systemd/system/pwnrigl.service rm -rf /etc/rc.d/rc0.d/K60pwnrig rm -rf /etc/rc.d/rc1.d/K60pwnrig rm -rf /etc/rc.d/rc2.d/S90pwnrig rm -rf /etc/rc.d/rc3.d/S90pwnrig rm -rf /etc/rc.d/rc4.d/S90pwnrig rm -rf /etc/rc.d/rc5.d/S90pwnrig rm -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 显示版本信息。
来源:freebuf.com 2021-04-29 10:23:38 by: andiSEC
请登录后发表评论
注册