菜鳥拿WebShell的經驗

通過幾次成功的拿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文件到網站的目錄下看看,也是可以的。

  以上都是自己長期實踐總結的經驗,完全是原創的,呼呼,累死我了。手都酸了。
發佈了180 篇原創文章 · 獲贊 84 · 訪問量 111萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章