记一次绕过安全狗和360提权案例

VSole2022-08-29 16:37:40

0x01 前言

最近遇到这样一个场景:目标仅支持ASP脚本,而且还存在网站安全狗和360安全卫士,目前存在的两个问题。

安全狗"禁止IIS执行程序"限制了命令执行;360"进程防护"拦截了执行木马和提权、抓明文等;

这篇文章我们就来分享下在这种场景下的绕过思路,以及在测试中遇到的一些问题。

0x02 绕过安全狗命令执行限制

找一个能过安全狗的免杀ASP Webshell,我用的是几年前做的一个ASP图片马,没想到居然还能过。

中国蚁剑连接,编码器选择用insert_percent,否则可能会连接失败。

连上后发现在虚拟终端中执行不了命令,提示:ActiveX 部件不能创建对象

这是因为wscript.shell命令执行组件被卸载了,试了下shell.application组件,结果发现也不行。

在虚拟机装了一个网站安全狗IIS版,并进行了一些测试,最后发现是安全狗【网站防护->行为防护->危险组件防护】给拦截了,默认规则就有wscript.shell、shell.application

之前我们遇到这种只支持ASP脚本,WScript.Shell、Shell.Application组件被卸载而无法执行命令的都是直接放弃了,因为当时那会确实没有更好的绕过方法。

现在可以用中国蚁剑As-Exploits执行自定义Payload来上线MSF,这种方式是加载到w3wp.exe内存中运行的,不依赖于Wscript.shell、Shell.Application。

这里不仅获取到了目标主机会话,而且也解决了WScript.Shell、Shell.Application组件被卸载而无法执行命令的问题,通过shell命令就能执行系统命令了。

注:不过我们还是得注意下安全狗【网站防护->行为防护->禁止IIS执行程序】,这功能也会拦截命令和程序的执行,得通过网站安全狗中的内置白名单来绕过。


execute -Hc -i -f "c:\windows\system32\cmd.exe" -a "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe"

sysinfo看了下系统基本信息,可以看到目标系统为x64,而获取的主机会话为x86,这是因为iis应用池设置启用了32,所以我们在利用加载w3wp.exe内存上线时也必须用x86的Payload。

注:ASP/ASP.NET脚本木马上线、冰蝎/哥斯拉/中国蚁剑/中国菜刀的shellcode加载和自定义代码执行等上线方式都是直接加载到w3wp.exe内存中运行的,得根据iis应用池位数选择对应Payload。

0x03 绕过360执行木马/提权等

ms16_075_reflection、ms16_075_reflection_juicy模块提权时发现报错了,这是因为当前会话与目标主机位数不一样,需要先将当前x86会话迁移至x64进程。

看了下进程列表中只有一个x86的w3wp.exe,没有其他可用于迁移的x64进程,不过有看见MSSQL数据库相关进程,所以我们可以通过执行sqlps.exe得到一个可迁移的x64进程。


x86:C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exex64:C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\SQLPS.exe

cd切换到sqlps.exe文件所在目录,ls -S查看sqlps.exe文件是否存在,然后再用execute执行sqlps.exe即可得到一个可迁移的x64进程,注意得加网站安全狗内置白名单文件执行。

meterpreter > cd "C:\\Program Files (x86)\\Microsoft SQL Server\\100\\Tools\\Binn\\"meterpreter > ls -S "sqlps"meterpreter > execute -Hc -f "sqlps.exe" -a "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\csc.exe"meterpreter > ps -c

migrate迁移至刚执行的sqlps.exe进程,接着我们再利用ms16_075_reflection、ms16_075_reflection_juicy模块都能直接获取到目标主机System权限,而且也不会再报错了。

当我们执行进程迁移跳出IIS的w3wp.exe进程后就已经完全绕过了安全狗"禁止IIS执行程序"限制命令执行,这时可以直接通过执行shell命令进入执行系统命令了。

0x04 注意事项

为什么我不在绕过安全狗命令执行后直接在命令行下进行提权?因为目标主机还存在360,大概率还会拦截我们执行提权EXP和木马上线等行为,即使是免杀的也会被拦,实战中自己去测试一下

shelliis
本作品采用《CC 协议》,转载必须注明作者和本文链接
与Web Shell相比,利用IIS 扩展能让后门更加隐蔽,通常很难检测到其安装的确切位置,并且使用与合法模块相同的结构,为攻击者提供了近乎完美的持久性机制。随后,恶意 IIS 模块允许攻击者从系统内存中获取凭证,从受害者的网络和受感染设备收集信息,并提供更多有效负载。
攻击者越来越多地将 Internet 信息服务 (IIS) 扩展用作服务器的隐蔽后门,这些后门隐藏在目标环境的深处,并为攻击者提供了持久的持久性机制。虽然之前已经发表了关于特定事件和变体的研究,但对于攻击者如何利用 IIS 平台作为后门通常知之甚少。
威胁参与者越来越多地滥用互联网信息服务(IIS)对后门服务器的扩展,作为建立“持久性机制”的手段。这是根据微软365 Defender研究团队发出的新警告,该团队表示“IIS后门也更难检测,因为它们大多与目标应用程序使用的合法模块位于同一目录中,并且遵循与干净模块相同的代码结构。”
采用这种方法的攻击链首先将托管应用程序中的一个关键漏洞武器化以进行初始访问,使用此立足点将脚本 Web shell 作为第一阶段的有效负载
微软警告威胁行为者越来越多地滥用 Internet 信息服务 (IIS) 扩展来在服务器中建立隐蔽的后门并在目标网络中保持持久性。 IIS 后门也很难检测,因为它们遵循与合法且无害的模块相同的代码结构。
SentinelOne发现MOVEit文件传输服务器应用程序中的CVE-2023-34362漏洞遭到了野外(ITW)攻击。
Server: Microsoft-IIS/10.0 X-AspNet-Version: 4.0. waf:某不知名waf
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严
之前有看到goby反制和松鼠A师傅蚁剑反制的文章,再想到之前写过sqlmap的shell免杀,觉得思路其实差不多,就写一篇sqlmap的反制吧。
VSole
网络安全专家