声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。 所有话题标签: #Web安全 #漏洞复现 #工具使用 #权限提升 #权限维持 #防护绕过 #内网安全 #实战案例 #其他笔记 #资源分享 #MSF |
前言
我们在进入Meterpreter会话后经常会遇到执行不了shell命令的情况,报出各种不一样的错误提示,执行不了shell命令的原因有很多,如常见的:1、cmd.exe文件被降权或删除;2、PHP Payload不支持shell命令;3、安装有WAF或反病毒软件等,笔者这里也只是记录了以前在实战和本地测试中遇到的几个例子,在实际渗透测试过程中还得根据自身经验去分析判断其原因!
(1) Payload没有正确执行
这应该是一些新手朋友刚学MSF时经常犯的一个错误,没有正确执行我们生成的Msf Payload,而是直接在浏览器URL中访问了监听的IP和端口 http://192.168.1.120:443 ,如图8-11-1。图8-11-1 直接访问监听IP:Port
(2) PHP Payload命令限制
Windows环境下通过php/meterpreter/reverse_tcp或php/meterpreter_reverse_tcp获取的会话很多命令和脚本都是执行不了的,如常用的ps、kill、shell、hashdump、mimikatz等,不过portfwd和execute可以执行,大家可以自己去测试一下! 不能执行shell命令的原因可能是与目标的Web中间件IIS/Apache/Nginx或权限IUSR/Admin/System等有关,笔者当前的测试环境如下:IIS7.5 + PHP5.3.0(IUSR),如图8-11-2。
Apache2.4.23 + PHP5.4.45(SYSTEM),如图8-11-3。
(3) cmd.exe被降权或删除
当cmd.exe文件被降权时在中国菜刀虚拟终端执行命令时就会提示“[Err] 拒绝访问”,这时我们虽然可以将Msf Payload上传至可读/写目录中来执行,但是在获取的Meterpreter会话中执行shell命令时会仍然会提示“Access is denied”拒绝访问,如图8-11-4、8-11-5。 图8-11-4 中国菜刀执行Msf Payload 图8-11-5 目标的cmd.exe文件被降权 XP/2003中将cmd.exe文件删除后在Meterpreter会话执行shell命令时也会出现报错,但是能够进入Cmdshell执行命令,它会自己在C:\Windows\System32\目录下生成一个cmd.exe,如图8-11-6。 图8-11-6 目标的cmd.exe文件被删除(4) WAF软件拦截命令执行
通过白名单方式绕过WAF获取Meteroreter会话后执行shell时仍然会提示“Access is denied”拒绝访问,因为D盾、云锁、安全狗、护卫神等防护软件会对执行命令的行为进行拦截,如图8-11-7、8-11-8、8-11-9。 但可尝试使用 ps、service_manager等命令来查看目标机器上是否存在WAF相关进程和服务,这里笔者只测试了D盾、网站安全狗和服务器安全狗, 图8-11-7 D盾-IIS防火墙命令执行防护 图8-11-8 服务器安全狗进程行为控制图8-11-9 网站安全狗禁止IIS执行程序
【往期TOP5】站库分离常规渗透思路总结MSSQL绕过360提权实战案例绕过360安全卫士提权实战案例记一次因“打码”不严的渗透测试TP-RCE绕过阿里云防护Getshell
如果对你有所帮助,点个分享、赞、在看呗!