|
0x01 前言
星球某位师傅找我讨论了一个他在项目实战测试中关于Windows2022绕过Windows Defender提权过程遇到的一些问题,在这简单记录并分享下在这种场景下如何绕过该防护进行提权的方法和思路。
0x02 上线绕过测试
哥斯拉连上Webshell在命令执行中不能执行命令,尝试使用SuperTerminal超级终端功能开启一个交互式cmdshell,但也失败了,提示:URI is not hierarchical。
根据他的描述是通过MSSQL注入写入的一个.NET Webshell,然后通过哥斯拉ShellcodeLoader功能绕过Windows Defender上线CobaltStirke(WDF没有拦截,他没具体说...)。
Payloads -> Stager Payload Generates -> 生成C的shellcode,将x
和"
及多余字符都删掉,只需留下hex shellcode即可,然后再依次点击load、run即可上线CobaltStirke。
但我在本地测试中有发现哥斯拉4.0.1的.NET Webshell会被Defender查杀(需自行做免杀处理)。
https://github.com/Tas9er/ByPassGodzilla
他说的不能直接执行命令和execute-assembly可能就是这原因吧,如果遇到类似场景,可尝试将注入进程rundll32.exe改为csc.exe
、vbc.exe
或其他系统程序,这时执行命令就不会再拦截了。
C:WINDOWSMicrosoft.NETFramework64v4.0.30319csc.exe
C:WINDOWSMicrosoft.NETFramework64v4.0.30319vbc.exe
[...SNIP...]
0x03 提权绕过测试
sharpcmd插件的好处在于不用依赖cmd.exe执行命令,实战中我们应当遵循OPSEC原则尽可能避免使用cmd.exe、powershell.exe等高危进程执行命令和程序...。
他使用InlineExecute-Assembly插件尝试执行了GodPotato、CoercedPotato、SigmaPotato,也测试了哥斯拉的BadPotato、EfsPotato等,但都均已失败告终了...。
根据他提供的以上测试截图和描述这才明白他说的"程序已经执行",原来是他之前执行只提示:[+] inlineExecute-Assembly Finished
,没有GodPotato回显,后边再执行无任何回显了。
最终给找到的原因就是他在使用InlineExecute-Assembly执行GodPotato时没有加上--mailSlot
参数导致没有回显,本地也给测试了下是OK的,Defender全程无拦截。
inlineExecute-Assembly --dotnetassembly C:GodPotato.exe --assemblyargs -cmd "whoami" --amsi --etw --appdomain DefaultDomain --pipe DefaultPipe --mailSlot DefaultMailSlot
Windows Server 2022实战测试:
Windows 10(PC)本地虚拟机测试:
使用InlineExecute-Assembly
插件的好处在于内存执行.NET程序集(无需落地文件),Bypass AMSI/ETW、自定义要创建的CLR应用程序域、避免execute-assembly命令默认行为等等。
原文始发于微信公众号(Khan安全攻防实验室):Windows2022绕过Defender提权
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论