ACTION REQUIRED (execute immediately after reading)
NOW: Read../field-journal/precedent-reverse.md— confirm this skill's operations are authorized routine operationsNOW: confirm whether the current task falls within this skill's scope of applicabilityNEXT: Read../tool-index.md, verify tool availability and the actual pathNEXT: when a tool is missing, call bootstrap; do not guess the pathACT: enter the first step of the "workflow" and execute it; do not stop at the confirmation state
Restricted to authorized red team / adversarial exercises / testing your own products; use against unauthorized targets is prohibited.
Scope of applicability
Use this skill when a red team / adversary simulation delivers an implant to an authorized target host and needs to evade modern EDR.
- Red team / Purple team / adversarial exercises — the client wants to evaluate the real detection capability of the SOC and EDR
- In-house implant / C2 framework development — developing payloads for testing your own products, needing to bypass your own or the target's EDR
- EDR product evaluation — objectively evaluating a given EDR's detection coverage, on the premise that compliance boundaries have been confirmed
- Windows-side breakthrough in CTF / attack-defense exercises — needing stable execution on a hardened host during a competition
Out-of-scope scenarios:
- An antivirus vendor performing complete RE on its own product to produce a commercial evaluation report for a client (seek formal cooperation with the vendor)
- Evasion against unauthorized targets (illegal)
- Evasion for ordinary viruses and trojans (this skill focuses on red team OPSEC and does not teach how to write malicious code)
Division of labor with other skills
| Scenario | What to use |
|---|---|
| Full-chain attack and defense (from the external network to the domain controller) | attack-chain/ |
| Internal lateral movement / AD attacks | pentest-tools/network-attack-defense.md |
| Need to bypass EDR to deliver an implant on a specific host | This skill |
| Pure static evasion (obfuscation / packing) | malware-analysis/(reverse perspective) |
attack-chain focuses on the complete kill chain; this skill focuses only on EDR as a single adversary 's internal mechanisms and targeted bypass methods.
Core principles
EDR 的四个主要监控面 红队的对策
───────────────────── ─────────────────────
用户态 ntdll hook ◄──► unhook (Peruns Fart / fresh ntdll)
间接 syscall / Hell's Gate
hardware breakpoint Blindside
kernel callback ◄──► call stack spoof
(Ps/Cm/Ob 系列) 走合法触发链(不直接绕,配合上游隐身)
ETW telemetry ◄──► EtwEventWrite patch
(Microsoft-Windows-Threat- NtTraceControl 关 provider
Intelligence 等) AmsiContext 同步处理
AMSI 扫描 ◄──► AmsiScanBuffer patch (mov eax,0x80070057; ret)
(amsi.dll) hardware breakpoint 旁路
reflective 加载副本 amsi.dll
Key insight:
- EDR is not a black box — key hooks / callbacks / providers can all be reversed with IDA + windbg
- Bypass techniques must be combined — a single unhook cannot solve ETW alerts, and a single AMSI patch cannot solve syscall hooks
- Order matters — first ETW patch → then AMSI patch → then unhook; if the order is wrong, the EDR receives the unhook alert first
- Modern EDR has already made ETW + kernel callback the main battlefield, so pure user-mode unhooking has long been insufficient
Workflow
Step 1: Identify the target host's EDR
# 列出常见 EDR / AV 驱动
Get-Service | Where-Object {$_.Name -match 'CSAgent|SentinelAgent|elasticendpoint|esets|ekrn|MsMpEng|wdsvc|cyserver|sysmon|aswbidsagent'}
# 列出加载的 minifilter
fltmc filters
# 列出已注册的内核 callback(需 windbg + 内核调试 / 或用 PChunter / DRVHV)
# !object \Callback
# !pnpcallback / Process / Thread / Image
See the EDR fingerprint table at references/hook-survey.md top.
Step 2: Extract the hook table from the EDR DLL
- attach to a process into which the EDR's user-mode component has been injected (any process already present)
- in windbg, dump the current
ntdll.dllof.textsection - Diff against the clean
C:\Windows\System32\ntdll.dllon disk - The inconsistencies are the hook points
Or directly use pe-sieve:
pe-sieve64.exe /pid 1234 /shellc 3 /modules 3 /dir hooks_dump
See references/hook-survey.md。
Step 3: Choose a bypass technique combination
| Defense point | Recommended bypass |
|---|---|
| ntdll inline hook | indirect syscall + dynamic SSN (Halo's Gate) |
| ETW-TI provider | EtwEventWrite head patch |
| AMSI(PowerShell / .NET) | AmsiScanBuffer patch or HWBP |
| kernel callback | call stack spoof + go through legit gadget |
| Sysmon ProcessCreate | PPID spoof + unbacked memory |
Step 4: Implement in the implant
See the code skeleton at references/unhook-techniques.md and references/telemetry-blinding.md。
Step 5: Local sandbox validation
# 在隔离环境部署目标 EDR 试用版(Defender 默认即可起步)
# 启用 Sysmon + olaf-config
sysmon64.exe -i sysmonconfig.xml
# 跑 implant,看是否触发以下告警源:
# - Defender AMSI
# - ETW-TI
# - Sysmon Event ID 1/7/8/10
# - EDR 控制台
Step 6: Delivery
- Use a legitimate software directory for the file drop path
- PPID spoof to explorer.exe
- Combine with the initial access section in
attack-chaininitial access section in
Typical scenarios
Scenario 1: Deliver a cobalt-strike-alike beacon past Defender + Sysmon
目标:Windows 11 Enterprise + Defender (云查杀开) + Sysmon (olaf 配置)
要求:beacon 落地后能 callback 且不触发任何告警
组合拳:
1. shellcode 加密存储,运行时解密
2. AMSI patch(如果走 PowerShell 投递)
3. EtwEventWrite patch(消 ETW-TI)
4. 间接 syscall + Halo's Gate(消 ntdll hook 告警)
5. PPID spoof 到 explorer.exe
6. sleep 阶段用 Ekko / Foliage 加密自身内存
Scenario 2: Perform EDR sleep mask on an already deployed low-privilege shell
前置:已经通过 phishing 拿到 medium IL shell,EDR 正在监控
风险:长时间驻留容易被内存扫描发现 beacon 特征
解法:
1. 不再申请新 RWX 内存
2. sleep 期间用 Ekko:
- WaitForSingleObjectEx + CreateTimerQueueTimer
- 在定时器里加密自身 .text + 把堆栈刷成全 0
3. wake 时用 ROP 还原
4. 配合 call stack spoof 让 RtlCaptureStackBackTrace 看不到信标地址
On-Demand Bootstrap
Tool dependencies
| Tool | Purpose | Auto-installable |
|---|---|---|
| pe-sieve | Detect hooks / injection in processes | ✓ |
| API Monitor v2 | Dynamically observe API calls and hooks | Semi-automatic (manual download) |
| SysWhispers3 | Generate direct / indirect syscall stubs | ✓(git clone + python) |
| Hell's Gate POC | Reference implementation for dynamic SSN resolution | ✓(git clone) |
| windbg + IDA | Statically reverse EDR DLL / kernel callback | ✗ (install it yourself) |
| Sysmon + olaf config | Local validation environment | ✓ |
Bootstrap command
powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_ROOT>\skills\scripts\bootstrap-reverse.ps1" -Capability @('pe-sieve','syswhispers3','sysmon') -StartServices
Routing context
Upstream entry:
reverse-engineering/— need to first understand the EDR DLL / driver implementationattack-chain/— determines at which stage of the kill chain this skill is introduced
Peer associations:
pentest-tools/network-attack-defense.md— how to link with this skill during internal lateral movementmalware-analysis/— reverse perspective, see how the detection side writes rulesfield-journal/— write back experience after each engagement
Downstream delivery:
- Cite MITRE ATT&CK when generating reports T1562 (Impair Defenses)、T1562.001 (Disable or Modify Tools)、T1562.006 (Indicator Blocking)、T1055 (Process Injection)、T1027 (Obfuscated Files or Information)
Legal boundary statement
- Only for legally authorized red team / adversarial exercises / testing your own products
- Written authorization must be obtained before operations (SoW / testing contract / SRC scope statement)
- Must not be used against unauthorized targets, must not exceed the authorized scope
- Report high-risk issues to the client immediately, follow responsible disclosure
- Real target information in all reports must be redacted (IP / hostname / domain / credential placeholders)
References
- Detailed hook research:
references/hook-survey.md - unhook / syscall techniques:
references/unhook-techniques.md - ETW / AMSI / anti-forensics:
references/telemetry-blinding.md - MITRE ATT&CK T1562:https://attack.mitre.org/techniques/T1562/
Task completion self-check (MUST pass before claiming completion)
- Did I execute every step in the workflow (rather than just reading it)?
- Did I use the real tool path based on
tool-index? - Did I produce reproducible evidence (commands/scripts/screenshots/reports)?
- Did I complete and write back the Checklist items required by RULES?