DNSBin是一款功能强大的DNS与服务器安全测试工具,该工具可以通过DNS来测试数据泄露,并在目标环境部署了严苛网络安全限制的场景下帮助广大研究人员测试远程代码执行(RCE)和XML外部实体注入(XXE)等安全漏洞。
该项目由两个部分组成,第一个部分是Web服务器及其相关组件,它提供了一个基本的Web UI,这也适用于绝大多数的使用场景了。第二部分则是客户端组件,客户端提供了一个Python/ target=_blank class=infotextkey>Python脚本,可以允许使用Web服务器并通过DNS实现双向数据传输。
广大研究人员可以使用下列命令将该项目源码克隆至本地:
git clone https://Github.com/ettic-team/dnsbin.git
工具演示Demo所使用的服务器当前DNS配置如下。请注意,该配置已经过了长时间的反复测试,因此设置的可能过于复杂:
1、为域名“dns1.zhack.ca”添加一条指向“192.99.55.194”的“a”记录;
2、为域名“ns1.zhack.ca”添加一个指向“192.99.55.194”的“a”记录;
3、为域名“d.zhack.ca”添加一条“NS”记录,值为“dns1.zhack.ca”;
4、为域名“d.zhack.ca”添加一个值为“ns1.zhack.cab”的“NS”记录;
强烈建议使用Node.JS模块“forever”来启动DNS接收器和WebSocket端点:
forever start index.js
对于前端,文件“index.html”可以托管在你选择的Web服务器上,请确保WebSocket URL指向你的服务器即可。
客户端脚本要求在两端都安装“dnspython”。无论是发送还是接收数据,都必须首先在受限区域外的计算机上启动脚本。脚本将为广大研究人员提供一个唯一的令牌,当你在受限区域内的计算机上运行脚本时,必须传递该令牌。
设备外:
echo test12345 | python mAIn.py -f- -d out -t-
设备内:
python main.py -f- -d in -t TOKEN_THE_FIRST_COMMAND_GAVE_YOU
设备外:
python main.py -f- -d in -t-
设备内:
echo test12345 | python main.py -f- -d out -t TOKEN_THE_FIRST_COMMAND_GAVE_YOU
使用Demo:【点我尝试】
DNSBin:【GitHub传送门】
http://dnsbin.zhack.ca/
https://www.npmjs.com/package/forever
https://github.com/rthalley/dnspython
本文作者:Alpha_h4ck, 转载请注明来自FreeBuf.COM