ld.so privesc exploit example
Last updated
Last updated
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
在以下部分,您可以找到我们将用于准备环境的文件代码
在您的机器上在同一文件夹中创建这些文件
编译库:gcc -shared -o libcustom.so -fPIC libcustom.c
复制libcustom.so
到/usr/lib
:sudo cp libcustom.so /usr/lib
(root权限)
编译可执行文件:gcc sharedvuln.c -o sharedvuln -lcustom
检查_libcustom.so_是否从_/usr/lib_被加载,并且您可以执行该二进制文件。
在这个场景中,我们假设某人已经在 /etc/ld.so.conf/ 文件中创建了一个漏洞条目:
易受攻击的文件夹是 /home/ubuntu/lib(我们有可写访问权限)。 下载并编译以下代码到该路径:
现在我们已经在错误配置的路径中创建了恶意的 libcustom 库,我们需要等待重启或等待 root 用户执行 ldconfig
(如果您可以作为 sudo 执行此二进制文件,或者它具有 suid 位,您将能够自己执行它)。
一旦发生这种情况,请重新检查 sharevuln
可执行文件从哪里加载 libcustom.so
库:
如您所见,它是从 /home/ubuntu/lib
加载的,如果任何用户执行它,将会执行一个 shell:
注意,在这个例子中我们没有提升权限,但通过修改执行的命令并等待root或其他特权用户执行易受攻击的二进制文件,我们将能够提升权限。
在前面的例子中,我们伪造了一个错误配置,其中管理员在/etc/ld.so.conf.d/
中的配置文件内设置了一个非特权文件夹。
但是还有其他错误配置可能导致相同的漏洞,如果你在/etc/ld.so.conf.d
中的某个配置文件、/etc/ld.so.conf.d
文件夹或/etc/ld.so.conf
文件中具有写权限,你可以配置相同的漏洞并加以利用。
假设你对ldconfig
具有sudo权限。
你可以指示ldconfig
从哪里加载配置文件,因此我们可以利用它使ldconfig
加载任意文件夹。
所以,让我们创建加载"/tmp"所需的文件和文件夹:
现在,如前面的漏洞所示,在 /tmp
中创建恶意库。
最后,让我们加载路径并检查二进制文件从哪里加载库:
正如您所看到的,拥有 ldconfig
的 sudo 权限,您可以利用相同的漏洞。
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)