今天要體驗的工具位於Kali的09-Sniffing & Spoofing
分類,這類的工具主要用於攔截資訊,然後竄改後欺騙目標使其誤認溝通對象或是混淆來源。
dnschef
是用於DNS代理,可以偽造域名進行攔截,比如說把往google.com
的流量都攔截下來,不轉發到真實的主機,而是轉發到攻擊者自己架設的主機。在介紹工具之前,先介紹一下測試環境
主機 | 角色 | IP位址 |
---|---|---|
Windows PC | 使用者端 | 192.168.1.70 |
Kali Linux | dnschef代理DNS | 192.168.1.76 |
靶機 | 自架假網站 | 192.168.1.86 |
接下來目標是讓使用者端用瀏覽器前往google
時,會去到我們自行架設的假網站
首先要在Kali設定dnschef
,用法如下
dnschef --fakeip 192.168.1.86 --fakedomains google.com --interface=192.168.1.76
fakedomains
可以用逗號隔開,表示這些域名都會被fakeip
192.168.1.86所取代,而interface
是指定DNS listener,這裡指的就是Kali這台的介面
執行結果如下,可以看到幾個重點
DNSChef
在192.168.1.76
上運行google.com
的流量將會被導向192.168.1.86
指定的假主機IP位址 _ _ __
| | version 0.4 | | / _|
__| |_ __ ___ ___| |__ ___| |_
/ _` | '_ \/ __|/ __| '_ \ / _ \ _|
| (_| | | | \__ \ (__| | | | __/ |
\__,_|_| |_|___/\___|_| |_|\___|_|
iphelix@thesprawl.org
(10:30:23) [*] DNSChef started on interface: 192.168.1.76
(10:30:23) [*] Using the following nameservers: 8.8.8.8
(10:30:23) [*] Cooking A replies to point to 192.168.1.86 matching: google.com
運行後也要記得修改/etc/resolv.conf
,在最上方加入一筆
nameservers 192.168.1.76
然後用ping google.com
測試一下,可以確定目前google.com認到的IP已經變成了我們指定的假IP了
PING google.com (192.168.1.86) 56(84) bytes of data.
64 bytes from 192.168.1.86 (192.168.1.86): icmp_seq=1 ttl=64 time=0.762 ms
64 bytes from 192.168.1.86 (192.168.1.86): icmp_seq=2 ttl=64 time=0.644 ms
靶機的建立可以參考Day2靶機建立這篇流程,如果建立過,那直接開啟VM就可以了,主要是提供HTTP網站,在這個測試情境裡扮演攻擊者的假網站。
Windows只要設定好DNS伺服器,指定為dnschef
正在運行的DNS代理
設定完成後,可以用命令提示字元ping google.com
確認
Ping google.com [192.168.1.76] (使用 32 位元組的資料):
回覆自 192.168.1.76: 位元組=32 時間<1ms TTL=64
回覆自 192.168.1.76: 位元組=32 時間<1ms TTL=64
回覆自 192.168.1.76: 位元組=32 時間<1ms TTL=64
回覆自 192.168.1.76: 位元組=32 時間<1ms TTL=64
用瀏覽器前往google.com
可以發現不是平常熟悉的搜尋頁面,而是靶機上所架設的網站
dnschef
除了可以模擬DNS欺騙之外,在某些測試情境下也特別好用,例如在手機網路環境測試時,如果想要暫時修改hosts去連測試站台時,可能需要經過root才有辦法,在某些模擬器環境也是,即使能夠模擬root,但也因為唯讀而無法去修改hosts文件,這些狀況就可以利用DNS代理的方式來進行測試。