菜鳥拿WebShell的經驗 |
發布時間: 2012/7/4 14:26:00 |
通過幾次成功的拿Webshell,發現自己有時也走了一些彎路,為了避免其他的朋友再在困惑中迷失方向,現在我將自己的一些經驗寫出來,希望對一些想學拿Webshell的朋友有一定的幫助。 首先我們要確定我們要檢測的網站,可以是自己定下的某個網站,也可以是自己通過Google或者Baidu搜索得到的,遇到ASP這樣的動態網站入侵成功率是最佳的。不詳細說了,這一步就是選定目標網站。 然后我們開始對網站進行檢測。仔細的看看這個網站的超鏈接尾部有沒有形如"ID=XXX(XXX代表數字)"的字符;如果有的話,我們可以對其進行如下的基本檢測:打開這個鏈接,在地址欄ID=XXX的后面加上“and 1=2”(不要加引號), 點擊提交后打開一個新的頁面,在這個頁面中如果顯示不正常,或者顯示什么錯誤的話,就說明存在注入漏洞了!我們就可以嘗試對其進行注入了! 在這里我們注意下,一般有2種數據庫的類型:ACCESS、MSSQL2種數據庫。我們先來說一下關于ACCESS數據庫的解破。 在這里我們可以使用工具猜測數據庫的內容(也可以手工猜測,但是太繁瑣了),這里我們就使用明小子工具里的“SQL注入猜解”。填上我們剛才手工檢測到的注入點,點擊檢測后程序開始檢測是否存在注入點,開始我們已經手工檢測過了,所以肯定是存在的了。然后就可以點擊“猜解表名”,將數據庫的表名給猜出 來,有了程序,我們進行這些操作將會很簡單;很快就會猜出所有的表名,接著選定我們要猜解的表名,用程序猜解該表名的列名,接著就可以再猜解記錄的內容。一般防范措施不當的網站就會被猜出用戶名密碼;接著我們用程序自帶的功能猜解后臺地址,猜到之后,用得到的用戶名密碼進行登陸;一般防范措施差的網站甚至可以直接用萬能的用戶名密碼’or’=’or’進行登陸。 登陸成功之后,我們進入后臺,進入后臺才是一切入侵的基本條件。正式開始我們的入侵。 首先看下有沒有數據庫備份的功能,如果有,我們來看看怎么得到Webshell。 1、用一句話木馬。通過各種方法,把這句話寫入到數據庫,再把寫入這句話的數據庫通過備份變成后綴為.asp的文件,當然要注意備份后的文件地址,然后進行訪問,如果顯示的是亂碼,那么就恭喜你了,基本上就成功了!在再本地用一個一句話木馬的客戶端進行連接,就連接出現亂碼的那個頁面地址,連成功之后,你就可以看見熟悉的WebShell了! 2、用圖片的上傳功能。我們把ASP木馬的后綴改成圖片的后綴名,如GIF、JPG、BMP之類的,進行上傳,上傳成功之后,會提示文件上傳成功,并且會給出文件的位置,如’UploadFiles/20080501012.gif’;但是,有的可能并不會提示,我們就要用WSockExpert對上傳的過程進行抓包,抓到上傳的路徑;然后,我們通過數據庫備份的功能,把gif等圖片的格式變成ASP格式的數據庫,進行訪問,這時候我們通常就可以看見我們的WebShell了!但是目前有的網站上傳功能會對這個進行檢測,如果備份的文件檢查不出屬于數據庫,則會提示“不合法的數據庫”,這時候我們該怎么辦呢?既然要檢測是否有數據庫特征,那我們把圖片加入數據庫特征不就可以了?對!事實就是如此,我們可以通過DOS的COPY命令給圖片加上數據庫特征,命令如下 “COPY 木馬圖片.gif+數據庫文件.mdb 合成后的文件.gif”這樣,我們合成后的圖片就會帶有數據庫的特征了! 但是,有的網站后臺我們找不到有數據庫備份的地方,上面的方法就不管用了,這時候我們該怎么辦呢?別急,事情總是有解決的辦法的。找到一個有上傳功能的頁面,隨便上傳個什么東西,用WSockExpert對上傳過程進行抓包,一般我們點擊上傳之后,在WSockExpert抓到的包中就會找到上傳的ASP頁面和相應的COOKIES了,當然我們在這里一定要先進入后臺,用管理員的賬號進行上傳,得到的COOKIES就是管理員的了,這個在后面可以用的上。我們再用明小子的上傳功能,選擇上傳的頁面,就是我們抓包得到的頁面,填上得到的COOKIES,選擇我們要上傳的木馬(要免殺哦!不然傳上去就給服務器刪了),點擊上傳,當程序提示成功時,我們就可以對自己的WebShell進行訪問了!如果失敗,就換換別的上傳的類型試試看。 有的時候我們可能真的一點拿不到某個網站的WebShell,我們這個時候就可以采用旁注的方法對屬于同一臺服務器的網站拿WebShell,然后提權拿到整臺服務器,再對我們的目標網站進行入侵就可以了。 以上是對ACCESS數據庫的分析和獲取webshell,下面,我對MSSQL數據庫來進行下分析。過去我也是先學ACCESS數據庫的解破,等到學MSSQL數據庫的時候就發現自己還是有很多的不懂,因此又走了不少的彎路,現在把MSSQL數據庫拿webshell的方法總結下,希望對才接觸webshell的朋友們有所幫助。 首先我們先檢測下該MSSQL數據庫的用戶權限,一般都是有2種,一種是SA(system admin)權限,這個權限是很大的;還有一種就是DB_OWNER權限,這個權限賦給用戶一些對數據庫的修改、刪除、新增數據表,執行大部分存儲過程的權限。但是涉及到一些系統敏感操作的權限不具備,這也是它與SA權限的唯一區別。 我們首先來尋找網站所在服務器上的目錄,可以使用啊D來查看目錄,來尋找網站的目錄,個人的經驗是在D、E、F盤的地方。 但是有的時候找不到怎么辦呢?我們只要上傳個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上傳到服務器上,然后執行cscript X:\lookweb.vbs,在回顯信息里我們就可以看見該服務器上相應網站與其對應的網站目錄,很方便的。網站目錄一目了然。 找到了網站的目錄 ,我們就可以使用差異備份來獲取webshell 我喜歡使用xiaolu寫的Getwebshell,其中的a就是我們過會一句話木馬要連接的密碼,一定要注意MSSQL數據庫是什么類型的,是字符型的還是數字型的。填寫好相應的地方,路徑一般都是網站的目錄,如“D:\wwwroot\”在后面寫上備份后的數據庫名稱,如ri.asp;點“BackupShell”系統就開始自動備份數據庫了。備份成功后我們就訪問我們備份的文件,當瀏覽器打開是亂碼的時候就成功了。我們用lake2的一句話鏈接下就可以了,注意要填寫密碼哦。到這里基本上就可以拿到webshell了; 不用差異備份,就直接找到網站的目錄,直接上傳webshell文件到網站的目錄下看看,也是可以的。 以上都是自己長期實踐總結的經驗,完全是原創的,呼呼,累死我了。手都酸了。 本文出自:億恩科技【www.artduck.net】 |