一个运行 Debian (Wheezy) Linux 系统的容器,使用了存在漏洞的 bind9 版本,用于展示 CVS-2015-5477。
此 Docker 容器基于 Debian Wheezy,并已修改为使用存在漏洞的 bind9 版本及其对应的附加依赖项。
使用 docker pull hmlio/vaas-cve-2015-5477 获取容器。
通过端口映射运行容器(为了达到最大程度的“我去!真糟糕!”效果,建议在前台启动容器而不作为后台进程):
docker run -p 53:53/udp hmlio/vaas-cve-2015-5477
你应该能够通过该容器进行 DNS 查询:
dig @<your-ip> hml.io any
在撰写本文时,概念验证漏洞利用代码可在此处获取。
在另一个终端窗口中,按如下方式运行漏洞利用程序:
python exploit.py <your-ip>
切换回启动容器(前台运行)的原始终端窗口,你应该能看到类似如下的内容:
04-Aug-2015 20:47:14.841 createfetch: hml.io DS
04-Aug-2015 20:47:14.886 createfetch: de DNSKEY
04-Aug-2015 20:48:54.130 message.c:2311: REQUIRE(*name == ((void *)0)) failed, back trace
04-Aug-2015 20:48:54.130 #0 0x7fa696e2fdd9 in ??
04-Aug-2015 20:48:54.130 #1 0x7fa695770f3a in ??
04-Aug-2015 20:48:54.130 #2 0x7fa69669806f in ??
04-Aug-2015 20:48:54.130 #3 0x7fa696723bd9 in ??
04-Aug-2015 20:48:54.130 #4 0x7fa696e40615 in ??
04-Aug-2015 20:48:54.130 #5 0x7fa696e26e71 in ??
04-Aug-2015 20:48:54.130 #6 0x7fa69578fe1d in ??
04-Aug-2015 20:48:54.130 #7 0x7fa695143b50 in ??
04-Aug-2015 20:48:54.130 #8 0x7fa694b2d95d in ??
04-Aug-2015 20:48:54.130 exiting (due to assertion failure)
Aborted (core dumped)
failed!