菜鳥(niǎo)拿WebShell的經(jīng)驗(yàn) |
發(fā)布時(shí)間: 2012/7/4 14:26:00 |
通過(guò)幾次成功的拿Webshell,發(fā)現(xiàn)自己有時(shí)也走了一些彎路,為了避免其他的朋友再在困惑中迷失方向,現(xiàn)在我將自己的一些經(jīng)驗(yàn)寫(xiě)出來(lái),希望對(duì)一些想學(xué)拿Webshell的朋友有一定的幫助。 首先我們要確定我們要檢測(cè)的網(wǎng)站,可以是自己定下的某個(gè)網(wǎng)站,也可以是自己通過(guò)Google或者Baidu搜索得到的,遇到ASP這樣的動(dòng)態(tài)網(wǎng)站入侵成功率是最佳的。不詳細(xì)說(shuō)了,這一步就是選定目標(biāo)網(wǎng)站。 然后我們開(kāi)始對(duì)網(wǎng)站進(jìn)行檢測(cè)。仔細(xì)的看看這個(gè)網(wǎng)站的超鏈接尾部有沒(méi)有形如"ID=XXX(XXX代表數(shù)字)"的字符;如果有的話,我們可以對(duì)其進(jìn)行如下的基本檢測(cè):打開(kāi)這個(gè)鏈接,在地址欄ID=XXX的后面加上“and 1=2”(不要加引號(hào)), 點(diǎn)擊提交后打開(kāi)一個(gè)新的頁(yè)面,在這個(gè)頁(yè)面中如果顯示不正常,或者顯示什么錯(cuò)誤的話,就說(shuō)明存在注入漏洞了!我們就可以嘗試對(duì)其進(jìn)行注入了! 在這里我們注意下,一般有2種數(shù)據(jù)庫(kù)的類(lèi)型:ACCESS、MSSQL2種數(shù)據(jù)庫(kù)。我們先來(lái)說(shuō)一下關(guān)于ACCESS數(shù)據(jù)庫(kù)的解破。 在這里我們可以使用工具猜測(cè)數(shù)據(jù)庫(kù)的內(nèi)容(也可以手工猜測(cè),但是太繁瑣了),這里我們就使用明小子工具里的“SQL注入猜解”。填上我們剛才手工檢測(cè)到的注入點(diǎn),點(diǎn)擊檢測(cè)后程序開(kāi)始檢測(cè)是否存在注入點(diǎn),開(kāi)始我們已經(jīng)手工檢測(cè)過(guò)了,所以肯定是存在的了。然后就可以點(diǎn)擊“猜解表名”,將數(shù)據(jù)庫(kù)的表名給猜出 來(lái),有了程序,我們進(jìn)行這些操作將會(huì)很簡(jiǎn)單;很快就會(huì)猜出所有的表名,接著選定我們要猜解的表名,用程序猜解該表名的列名,接著就可以再猜解記錄的內(nèi)容。一般防范措施不當(dāng)?shù)木W(wǎng)站就會(huì)被猜出用戶名密碼;接著我們用程序自帶的功能猜解后臺(tái)地址,猜到之后,用得到的用戶名密碼進(jìn)行登陸;一般防范措施差的網(wǎng)站甚至可以直接用萬(wàn)能的用戶名密碼’or’=’or’進(jìn)行登陸。 登陸成功之后,我們進(jìn)入后臺(tái),進(jìn)入后臺(tái)才是一切入侵的基本條件。正式開(kāi)始我們的入侵。 首先看下有沒(méi)有數(shù)據(jù)庫(kù)備份的功能,如果有,我們來(lái)看看怎么得到Webshell。 1、用一句話木馬。通過(guò)各種方法,把這句話寫(xiě)入到數(shù)據(jù)庫(kù),再把寫(xiě)入這句話的數(shù)據(jù)庫(kù)通過(guò)備份變成后綴為.asp的文件,當(dāng)然要注意備份后的文件地址,然后進(jìn)行訪問(wèn),如果顯示的是亂碼,那么就恭喜你了,基本上就成功了!在再本地用一個(gè)一句話木馬的客戶端進(jìn)行連接,就連接出現(xiàn)亂碼的那個(gè)頁(yè)面地址,連成功之后,你就可以看見(jiàn)熟悉的WebShell了! 2、用圖片的上傳功能。我們把ASP木馬的后綴改成圖片的后綴名,如GIF、JPG、BMP之類(lèi)的,進(jìn)行上傳,上傳成功之后,會(huì)提示文件上傳成功,并且會(huì)給出文件的位置,如’UploadFiles/20080501012.gif’;但是,有的可能并不會(huì)提示,我們就要用WSockExpert對(duì)上傳的過(guò)程進(jìn)行抓包,抓到上傳的路徑;然后,我們通過(guò)數(shù)據(jù)庫(kù)備份的功能,把gif等圖片的格式變成ASP格式的數(shù)據(jù)庫(kù),進(jìn)行訪問(wèn),這時(shí)候我們通常就可以看見(jiàn)我們的WebShell了!但是目前有的網(wǎng)站上傳功能會(huì)對(duì)這個(gè)進(jìn)行檢測(cè),如果備份的文件檢查不出屬于數(shù)據(jù)庫(kù),則會(huì)提示“不合法的數(shù)據(jù)庫(kù)”,這時(shí)候我們?cè)撛趺崔k呢?既然要檢測(cè)是否有數(shù)據(jù)庫(kù)特征,那我們把圖片加入數(shù)據(jù)庫(kù)特征不就可以了?對(duì)!事實(shí)就是如此,我們可以通過(guò)DOS的COPY命令給圖片加上數(shù)據(jù)庫(kù)特征,命令如下 “COPY 木馬圖片.gif+數(shù)據(jù)庫(kù)文件.mdb 合成后的文件.gif”這樣,我們合成后的圖片就會(huì)帶有數(shù)據(jù)庫(kù)的特征了! 但是,有的網(wǎng)站后臺(tái)我們找不到有數(shù)據(jù)庫(kù)備份的地方,上面的方法就不管用了,這時(shí)候我們?cè)撛趺崔k呢?別急,事情總是有解決的辦法的。找到一個(gè)有上傳功能的頁(yè)面,隨便上傳個(gè)什么東西,用WSockExpert對(duì)上傳過(guò)程進(jìn)行抓包,一般我們點(diǎn)擊上傳之后,在WSockExpert抓到的包中就會(huì)找到上傳的ASP頁(yè)面和相應(yīng)的COOKIES了,當(dāng)然我們?cè)谶@里一定要先進(jìn)入后臺(tái),用管理員的賬號(hào)進(jìn)行上傳,得到的COOKIES就是管理員的了,這個(gè)在后面可以用的上。我們?cè)儆妹餍∽拥纳蟼鞴δ,選擇上傳的頁(yè)面,就是我們抓包得到的頁(yè)面,填上得到的COOKIES,選擇我們要上傳的木馬(要免殺哦!不然傳上去就給服務(wù)器刪了),點(diǎn)擊上傳,當(dāng)程序提示成功時(shí),我們就可以對(duì)自己的WebShell進(jìn)行訪問(wèn)了!如果失敗,就換換別的上傳的類(lèi)型試試看。 有的時(shí)候我們可能真的一點(diǎn)拿不到某個(gè)網(wǎng)站的WebShell,我們這個(gè)時(shí)候就可以采用旁注的方法對(duì)屬于同一臺(tái)服務(wù)器的網(wǎng)站拿WebShell,然后提權(quán)拿到整臺(tái)服務(wù)器,再對(duì)我們的目標(biāo)網(wǎng)站進(jìn)行入侵就可以了。 以上是對(duì)ACCESS數(shù)據(jù)庫(kù)的分析和獲取webshell,下面,我對(duì)MSSQL數(shù)據(jù)庫(kù)來(lái)進(jìn)行下分析。過(guò)去我也是先學(xué)ACCESS數(shù)據(jù)庫(kù)的解破,等到學(xué)MSSQL數(shù)據(jù)庫(kù)的時(shí)候就發(fā)現(xiàn)自己還是有很多的不懂,因此又走了不少的彎路,現(xiàn)在把MSSQL數(shù)據(jù)庫(kù)拿webshell的方法總結(jié)下,希望對(duì)才接觸webshell的朋友們有所幫助。 首先我們先檢測(cè)下該MSSQL數(shù)據(jù)庫(kù)的用戶權(quán)限,一般都是有2種,一種是SA(system admin)權(quán)限,這個(gè)權(quán)限是很大的;還有一種就是DB_OWNER權(quán)限,這個(gè)權(quán)限賦給用戶一些對(duì)數(shù)據(jù)庫(kù)的修改、刪除、新增數(shù)據(jù)表,執(zhí)行大部分存儲(chǔ)過(guò)程的權(quán)限。但是涉及到一些系統(tǒng)敏感操作的權(quán)限不具備,這也是它與SA權(quán)限的唯一區(qū)別。 我們首先來(lái)尋找網(wǎng)站所在服務(wù)器上的目錄,可以使用啊D來(lái)查看目錄,來(lái)尋找網(wǎng)站的目錄,個(gè)人的經(jīng)驗(yàn)是在D、E、F盤(pán)的地方。 但是有的時(shí)候找不到怎么辦呢?我們只要上傳個(gè)vbs文件就可以了,把下面的文件保存為lookweb.vbs: On Error Resume Next If (LCase(Right(WScript.Fullname,11))="wscript.exe") Then Msgbox Space(12) & "IIS Virtual Web Viewer" & Space(12) & Chr(13) & Space(9) & " Usage:Cscript vWeb.vbs",4096,"Lilo" WScript.Quit End If Set ObjService=GetObject("IIS://LocalHost/W3SVC") For Each obj3w In objservice If IsNumeric(obj3w.Name) Then Set OService=GetObject("IIS://LocalHost/W3SVC/" & obj3w.Name) Set VDirObj = OService.GetObject("IIsWebVirtualDir", "ROOT") If Err <> 0 Then WScript.Quit (1) WScript.Echo Chr(10) & "[" & OService.ServerComment & "]" For Each Binds In OService.ServerBindings Web = "{ " & Replace(Binds,":"," } { ") & " }" WScript.Echo Replace(Split(Replace(Web," ",""),"}{")(2),"}","") Next WScript.Echo "Path : " & VDirObj.Path End If Next 然后使用NBSI上傳到服務(wù)器上,然后執(zhí)行cscript X:\lookweb.vbs,在回顯信息里我們就可以看見(jiàn)該服務(wù)器上相應(yīng)網(wǎng)站與其對(duì)應(yīng)的網(wǎng)站目錄,很方便的。網(wǎng)站目錄一目了然。 找到了網(wǎng)站的目錄 ,我們就可以使用差異備份來(lái)獲取webshell 我喜歡使用xiaolu寫(xiě)的Getwebshell,其中的a就是我們過(guò)會(huì)一句話木馬要連接的密碼,一定要注意MSSQL數(shù)據(jù)庫(kù)是什么類(lèi)型的,是字符型的還是數(shù)字型的。填寫(xiě)好相應(yīng)的地方,路徑一般都是網(wǎng)站的目錄,如“D:\wwwroot\”在后面寫(xiě)上備份后的數(shù)據(jù)庫(kù)名稱(chēng),如ri.asp;點(diǎn)“BackupShell”系統(tǒng)就開(kāi)始自動(dòng)備份數(shù)據(jù)庫(kù)了。備份成功后我們就訪問(wèn)我們備份的文件,當(dāng)瀏覽器打開(kāi)是亂碼的時(shí)候就成功了。我們用lake2的一句話鏈接下就可以了,注意要填寫(xiě)密碼哦。到這里基本上就可以拿到webshell了; 不用差異備份,就直接找到網(wǎng)站的目錄,直接上傳webshell文件到網(wǎng)站的目錄下看看,也是可以的。 以上都是自己長(zhǎng)期實(shí)踐總結(jié)的經(jīng)驗(yàn),完全是原創(chuàng)的,呼呼,累死我了。手都酸了。 本文出自:億恩科技【xuefeilisp.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |