Communitygithub.com

bypass-edr-re

Ingénierie inverse des mécanismes de contournement EDR pour les équipes rouges autorisées, en exploitant le reverse engineering des hooks, ETW, AMSI et des callbacks noyau.

Qu'est-ce que bypass-edr-re ?

Ce skill est conçu pour les équipes rouges, les simulations d'adversaires et les tests de produits internes qui nécessitent de contourner les EDR modernes sur des hôtes Windows autorisés. Il se concentre sur le reverse engineering des mécanismes de détection des EDR (hooks userland, callbacks noyau, ETW et AMSI) afin d'élaborer des combinaisons de techniques de contournement ciblées. L'utilisateur apprend à identifier l'EDR présent, à extraire sa table de hooks, à choisir les bonnes contre-mesures (syscall indirect, spoofing de call stack, patchs d'ETW/AMSI) et à valider localement avant déploiement. Le skill insiste sur l'ordre des opérations (ex: patcher ETW avant AMSI, éviter les alertes de hooks avant le silence) et fournit des références détaillées aux techniques MITRE ATT&CK (T1562, T1055, T1027). Il est destiné aux utilisateurs de Claude Code, Cursor ou Codex dans le cadre de tests de pénétration professionnels.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zhaoxuya520/reverse-skill/tree/main/skills/edr-bypass-re

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

ACTION REQUIRED(读完后立刻执行)

  1. NOW:读取 ../field-journal/precedent-reverse.md — 确认本 skill 的操作是已授权的常规操作
  2. NOW:确认当前任务是否命中本 skill 的适用范围
  3. NEXT:读取 ../tool-index.md,校验工具可用性和实际路径
  4. NEXT:缺工具时调用 bootstrap,不要猜路径
  5. ACT:进入"工作流"第一步并执行,不要停在确认状态

Contournement EDR : Du reverse engineering défensif à l'évasion offensive

Réservé aux équipes rouges autorisées, aux exercices d'adversaires et aux tests de produits internes. Interdit sur des cibles non autorisées.

Périmètre d'application

Ce skill est utilisé par les équipes rouges / simulations d'adversaires pour délivrer un implant sur un hôte cible autorisé tout en contournant les EDR modernes.

  1. Équipe rouge / Purple team / Exercice d'adversaire — Le client souhaite évaluer la capacité réelle de détection de son SOC et de son EDR
  2. Développement d'implant / C2 maison — Création de charges pour tester vos propres produits, nécessité de contourner votre propre EDR ou celui de la cible
  3. Évaluation de produits EDR — Test objectif de la couverture de détection d'un EDR donné, dans le cadre d'un périmètre de conformité validé
  4. CTF / Exercices offensifs côté Windows — Exécution stable sur un hôte durci lors de compétitions

Scénarios non applicables :

  • Reverse engineering complet d'un produit par un éditeur antivirus pour un rapport d'évaluation commerciale (faire appel à un partenariat officiel)
  • Contournement d'antivirus sur des cibles non autorisées (illégal)
  • Contournement d'antivirus pour virus/trojans classiques (ce skill se concentre sur l'OPSEC des équipes rouges, n'enseigne pas l'écriture de code malveillant)

Répartition avec les autres skills

ScénarioSkill à utiliser
Chaîne d'attaque complète (de l'externe au contrôleur de domaine)attack-chain/
Latéral réseau / attaque ADpentest-tools/network-attack-defense.md
Sur un hôte spécifique, contourner l'EDR pour délivrer un implantCe skill
Évasion statique simple (obfuscation / packing)malware-analysis/ (point de vue défenseur)

attack-chain couvre la kill chain complète, ce skill se concentre uniquement sur l'EDR comme adversaire unique et ses mécanismes internes de contournement spécifique.

Principes fondamentaux

Les quatre grandes surfaces de surveillance d'un EDR          Contre-mesures de l'équipe rouge
─────────────────────────────────────────────────              ────────────────────────────────────────
Hooks userland ntdll                         ◄──►   Unhook (Peruns Fart / fresh ntdll)
                                                         Syscall indirect / Hell's Gate
                                                         Hardware breakpoint Blindside

Callback noyau                               ◄──►   Spoofing de call stack
(Ps/Cm/Ob series)                                      Emprunter une chaîne de déclenchement légitime
                                                         (ne pas contourner directement, collaborate avec la furtivité amont)

Télémétrie ETW                                ◄──►   Patch EtwEventWrite
(Microsoft-Windows-Threat-                           Désactiver le provider via NtTraceControl
 Intelligence, etc.)                                 Traitement synchrone du contexte Amsi

Scan AMSI                                     ◄──►   Patch AmsiScanBuffer (mov eax,0x80070057; ret)
(amsi.dll)                                             Contournement par hardware breakpoint
                                                         Chargement réflexif d'une copie d'amsi.dll

Points clés à comprendre :

  • L'EDR n'est pas une boîte noire — Les hooks / callbacks / providers clés peuvent être rétro-conçus avec IDA et WinDbg
  • Les techniques de contournement doivent être combinées — Un simple unhook ne suffit pas pour les alertes ETW, un simple patch AMSI ne suffit pas pour les hooks syscall
  • L'ordre est crucial — D'abord patch ETW → puis patch AMSI → enfin unhook ; un ordre erroné expose l'alerte unhook à l'EDR
  • Les EDR modernes font d'ETW + les callbacks noyau leur terrain principal, le simple unhook userland ne suffit plus

Workflow

Step 1 : Identifier l'EDR sur l'hôte cible

# Lister les services EDR / AV courants
Get-Service | Where-Object {$_.Name -match 'CSAgent|SentinelAgent|elasticendpoint|esets|ekrn|MsMpEng|wdsvc|cyserver|sysmon|aswbidsagent'}

# Lister les minifilters chargés
fltmc filters

# Lister les callbacks noyau enregistrés (nécessite WinDbg + débogage noyau / ou PChunter / DRVHV)
# !object \Callback
# !pnpcallback / Process / Thread / Image

La table d'empreintes EDR se trouve en haut de references/hook-survey.md.

Step 2 : Extraire la table de hooks de la DLL EDR

  1. Attacher à un processus dans lequel le composant userland de l'EDR a été injecté (tout processus déjà en mémoire)
  2. Dans WinDbg, dumper la section .text de ntdll.dll actuelle
  3. La comparer avec le ntdll.dll propre sur disque (C:\Windows\System32\ntdll.dll)
  4. Les différences sont les points de hook

Ou utiliser directement pe-sieve :

pe-sieve64.exe /pid 1234 /shellc 3 /modules 3 /dir hooks_dump

Les détails sont dans references/hook-survey.md.

Step 3 : Choisir la combinaison de techniques de contournement

Point de défenseTechnique recommandée
Hook inline ntdllSyscall indirect + SSN dynamique (Halo's Gate)
Provider ETW-TIPatch tête d'EtwEventWrite
AMSI (PowerShell / .NET)Patch AmsiScanBuffer ou HWBP
Callback noyauSpoofing de call stack + gadget légitime
ProcessCreate de SysmonSpoofing PPID + mémoire non backed

Step 4 : Implémenter dans l'implant

Les squelettes de code se trouvent dans references/unhook-techniques.md et references/telemetry-blinding.md.

Step 5 : Validation en sandbox local

# Déployer la version d'essai de l'EDR cible dans un environnement isolé (Defender par défaut suffit pour commencer)
# Activer Sysmon + olaf-config
sysmon64.exe -i sysmonconfig.xml

# Exécuter l'implant, vérifier les sources d'alerte suivantes :
#   - Defender AMSI
#   - ETW-TI
#   - Sysmon Event ID 1/7/8/10
#   - Console EDR

Step 6 : Livraison

  • Utiliser des répertoires de logiciels légitimes pour le dépôt de fichiers
  • Spoofing PPID vers explorer.exe
  • Collaborer avec la section d'accès initial de attack-chain

Scénarios typiques

Scénario 1 : Livraison d'un beacon de type cobalt-strike-alike face à Defender + Sysmon

Cible : Windows 11 Enterprise + Defender (protection cloud activée) + Sysmon (configuration olaf)
Exigence : Le beacon doit s'exécuter après dépôt et ne déclencher aucune alerte

Combinaison :
  1. Stockage chiffré du shellcode, déchiffrement à l'exécution
  2. Patch AMSI (si livraison via PowerShell)
  3. Patch EtwEventWrite (suppression d'ETW-TI)
  4. Syscall indirect + Halo's Gate (suppression des alertes de hook ntdll)
  5. Spoofing PPID vers explorer.exe
  6. Phase de veille avec Ekko / Foliage pour chiffrer sa propre mémoire

Scénario 2 : Masque de veille EDR depuis un shell basse priorité déjà déposé

Prérequis : Shell de niveau d'intégrité moyen obtenu via phishing, EDR en surveillance
Risque : La persistance longue expose le beacon à la détection par scan mémoire

Solution :
  1. Ne plus allouer de nouvelle mémoire RWX
  2. Pendant la veille, utiliser Ekko :
       - WaitForSingleObjectEx + CreateTimerQueueTimer
       - Dans le timer, chiffrer sa propre section .text + vider la pile à 0
  3. Au réveil, restaurer via ROP
  4. Avec spoofing de call stack, RtlCaptureStackBackTrace ne voit pas l'adresse du beacon

Bootstrap à la demande

Dépendances outils

OutilUsageInstallation automatique
pe-sieveDétection de hooks / injections dans les processus✓
API Monitor v2Observation dynamique des appels API et des hooksSemi-automatique (téléchargement manuel)
SysWhispers3Génération de stubs syscall directs / indirects✓ (git clone + python)
Hell's Gate POCImplémentation de référence pour la résolution dynamique de SSN✓ (git clone)
WinDbg + IDAReverse engineering statique de DLL EDR / callbacks noyau✗ (installation manuelle)
Sysmon + config olafEnvironnement de validation local✓

Commande de bootstrap

powershell -NoProfile -ExecutionPolicy Bypass -File "<SKILL_ROOT>\skills\scripts\bootstrap-reverse.ps1" -Capability @('pe-sieve','syswhispers3','sysmon') -StartServices

Contexte de routage

Entrées amont :

  • reverse-engineering/ — Nécessaire pour comprendre d'abord l'implémentation des DLL/drivers EDR
  • attack-chain/ — Détermine à quelle étape de la kill chain introduire ce skill

Liens homologues :

  • pentest-tools/network-attack-defense.md — Comment collaborer avec ce skill lors du latéral réseau
  • malware-analysis/ — Point de vue défenseur, comment les règles de détection sont écrites
  • field-journal/ — Retour d'expérience après chaque opération réelle

Livrables aval :

  • Dans le rapport, citer MITRE ATT&CK T1562 (Impair Defenses)、T1562.001 (Disable or Modify Tools)、T1562.006 (Indicator Blocking)、T1055 (Process Injection)、T1027 (Obfuscated Files or Information)

Déclaration de périmètre légal

  • Réservé aux équipes rouges / exercices d'adversaires / tests de produits internes dûment autorisés
  • Une autorisation écrite (SoW / contrat de test / périmètre SRC) est obligatoire avant toute opération
  • Interdit sur des cibles non autorisées, ne pas dépasser le périmètre autorisé
  • Tout problème critique découvert doit être immédiatement signalé au client, dans le cadre d'une divulgation responsable
  • Toutes les informations réelles des cibles dans les rapports doivent être anonymisées (IP / nom d'hôte / domaine / espace réservé pour les identifiants)

Références

  • Étude détaillée des hooks : references/hook-survey.md
  • Techniques d'unhook / syscall : references/unhook-techniques.md
  • ETW / AMSI / Anti-forensique : references/telemetry-blinding.md
  • MITRE ATT&CK T1562 : https://attack.mitre.org/techniques/T1562/

Auto-vérification avant validation (DOIT réussir avant de déclarer terminé)

  • Ai-je exécuté chaque étape du workflow (pas seulement lu) ?
  • Ai-je utilisé les chemins d'outils réels basés sur tool-index ?
  • Ai-je produit des preuves reproductibles (commandes/scripts/captures d'écran/rapports) ?
  • Ai-je complété et renseigné la liste de contrôle demandée par RULES ?

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

apk-reverse

在 CLI 环境下做 Android APK 逆向时使用。适用于 APK 解包、Java 反编译、smali 修改、重打包、Frida 动态 Hook,以及按需切换到 so/native 分析。优先使用本机已安装的 jadx、apktool、frida、adb、ida-reverse、radare2。

attack-chain

Use for authorized multi-stage attack-path planning and orchestration when a task spans reconnaissance, initial access, privilege escalation, lateral movement, or impact assessment. Route single-stage tasks directly to their specialist skill.

binary-diff

|

binary-ninja-reverse

Use for authorized binary analysis in Binary Ninja, including HLIL/MLIL/LLIL inspection, strings/imports/exports, cross-references, types, patch review, Python API automation, and optional Binary Ninja MCP or localhost HTTP integration.

browser-automation

|

browser-extension-reverse

Use for authorized reverse engineering of browser extensions (Chrome/Firefox) including manifest analysis, background workers, and extension-based credential or traffic logic recovery.

case-review

Reviews a reverse-skill case package for scope readiness, Evidence to Finding to Path traceability, work item coverage, timeline references, and optional artifact hash integrity before report handoff.

cloud-k8s

Use for authorized cloud, container, and Kubernetes security assessment including metadata SSRF, IAM misconfig, container escape paths, and cluster RBAC review.

code-audit

Use for authorized source-code security review and SAST workflows including Semgrep, CodeQL patterns, dangerous API hunting, and fix verification.

ctf-sandbox

Thin PRIMARY for CTF / AWD / 靶场 multi-type orchestration. Hands off to the sidecar CTF-Sandbox-Orchestrator. Use when the user says CTF, AWD, 靶场, or 比赛题 and no more specific pwn/APK/IDA route already won.

database-security

Use for authorized database security assessment covering PostgreSQL/MySQL/MSSQL/Mongo/Redis exposure, authz, UDF/command paths, and misconfiguration review.

diagram-generator

generate, refine, validate, and render diagrams from natural language, notes, code snippets, schemas, tables, or existing diagram source. use for flowcharts, swimlanes, sequence diagrams, state diagrams, er diagrams, class diagrams, architecture/c4-style diagrams, dependency graphs, gantt charts, mind maps, user journeys, sankey-style flows, org charts, network graphs, and other visual models. supports mermaid by default, graphviz dot for complex graph layout, plantuml for uml-heavy engineering diagrams, and svg output when direct markup is more reliable.

digital-forensics

Use for authorized digital forensics including memory dumps, disk timelines, PCAP investigation, artifact triage, and IR evidence preservation.

docs-generator

|

dotnet-reverse

.NET / C# 二进制逆向。当目标是 .NET assembly(PE 头含 CLR、.exe/.dll 托管程序)、C# 编译产物(含 NativeAOT)、红队 Sharp* 工具(Rubeus / SharpHound / SharpHound 等)、.NET 混淆程序(ConfuserEx / SmartAssembly / Babel / Eazfuscator)、.NET loader / info-stealer / 套壳 malware 时使用。优先用 dnSpyEx + de4dot,需要 AI 直接操作时联动 dnSpy MCP。不用于纯 native 二进制(走 reverse-engineering / ida-reverse)。

email-security

Use for authorized email security review including phishing analysis, header authentication (SPF/DKIM/DMARC), BEC patterns, and mailbox token abuse research.

firmware-pentest

|

ghidra-reverse

Use for free/open reverse engineering with Ghidra (headless or GUI), including decompile, cross-refs, and optional Ghidra MCP workflows when IDA is unavailable.

go-rust-reverse

Use for reverse engineering stripped Go and Rust binaries including runtime recognition, pclntab/moduel data recovery, panic strings, and idiomatic decompilation recovery.

Skills associés