菜鳥拿webshell
阿新 • • 發佈:2019-01-07
通過幾次成功的拿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檔案到網站的目錄下看看,也是可以的。 以上都是自己長期實踐總結的經驗,完全是原創的,呼呼,累死我了。手都酸了。
首先我們要確定我們要檢測的網站,可以是自己定下的某個網站,也可以是自己通過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檔案到網站的目錄下看看,也是可以的。 以上都是自己長期實踐總結的經驗,完全是原創的,呼呼,累死我了。手都酸了。