# Cobalt Strike DNS Beacon 的使用和原理
1. DNS木馬
DNS木馬因為隱蔽性好,在受害者不會開放任何端口,可以規避防火牆協議,走的是53端口 (服務器),防火牆不會攔截,缺點是響應慢。
2. DNS Beacon 的工作過程
當受害者請求域名對應的ip地址時(通過 shell 或者 釣魚),會從根域名DNS服務器,一級域名DNS服務器,二級域名DNS服務器...依次向下尋找,直到我們的團隊服務器,同時充當DNS服務器,將Beacon返回給團隊服務器。DNS響應告訴Beacon休眠或者連接到團隊服務器來下載任務。DNS響應同時也告訴Beacon如何從團隊服務器下載任務。
3. DNS Beacon 類型
- windows/beacon_dns/reserve_http(傳輸數據小)
有效載荷通過HTTP連接分階段。當您創建此偵聽器時,請注意您正在配置主機和端口。Cobalt Strike 將使用通過 HTTP 分階段執行此有效負載。當您選擇設置此有效負載時,Cobalt Strike 在端口53上建立起 DNS 服務器。
- beacon_dns/reserve_http(支持命令切換到該模式:mode dns)
將使用http為通信方式,並且使用 DNS A 記錄數據通道。
- beacon_dns/reserve_dns_txt(支持命令切換到該模式:mode dns-txt)
改為使用 DNS TXT 記錄數據通道。DNS TXT 記錄是默認的數據通道。
- windows/beacon_dns/reverse_dns_txt(傳輸數據大)
有效負載使用 DNS TXT 記錄下載和分級混合 HTTP 和 DNS Beacon。當您創建此偵聽器時,請注意,您正在配置該有效負載將用於HTTP通信的端口。再次,Cobalt Strike在53端口建立起一個DNS服務器。
以上都是非持續性的工作。
4. DNS 域名解析中的一些記錄
-
A 記錄
將域名指向一個 IPv4 地址。
-
CNAME 記錄:
將一個域名指向另外一個域名。實現與被指向域名相同的訪問效果。
-
MX 記錄:
建立電子郵箱服務,指向郵箱服務器地址。一般會根據郵箱服務商提供的 MX 記錄填寫。
-
NS 記錄:
域名解析服務器記錄,將一個子域名指定某個域名服務器解析(就是把子域名交給自己解析)
-
TXT 記錄:
任意填寫,可為空。一般做一些驗證記錄時會使用。
-
SOA 記錄:
SOA 為起始授權機構記錄。指明 NS 記錄中哪一台是主服務器。
5. 過程
-
先在自己的 vps 上添加 A 記錄和 NS 記錄:
-
開啟 Cobalt Strike 服務器,注意端口要在防火牆中開放。
-
將攻擊機(這里是 Kali)連接到 Cobalt Strike 服務器中。
-
添加監聽器:
設置的端口依舊要在防火牆中開放。
-
添加完成后,測試子域名解析是否正常,注意要在防火牆中開放 53 端口,並且協議一定要選擇 UDP(DNS 服務器走的是 UDP)
c1 下的子域名(包括 c1 本身)都交給了 test 處理
-
生成 Web 腳本傳遞:
-
在受害者機器上執行(這里是 win7)