關于DNSBin 

DNSBin是一款功能強大的DNS與服務器安全測試工具,該工具可以通過DNS來測試數據泄露,并在目標環境部署了嚴苛網絡安全限制的場景下幫助廣大研究人員測試遠程代碼執行(RCE)和XML外部實體注入(XXE)等安全漏洞。

該項目由兩個部分組成,第一個部分是Web服務器及其相關組件,它提供了一個基本的Web UI,這也適用于絕大多數的使用場景了。第二部分則是客戶端組件,客戶端提供了一個Python腳本,可以允許使用Web服務器并通過DNS實現雙向數據傳輸。

 工具安裝 

廣大研究人員可以使用下列命令將該項目源碼克隆至本地:

git clone https://github.com/ettic-team/dnsbin.git

 工具配置 

DNS

工具演示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”記錄;

Web托管

強烈建議使用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