Aller au contenu principal
Expert Cybersécurité & IAv9.0
Centres de ressources conformité
Besoin d'un accompagnement expert ?
Devis personnalisé sous 24h — audit, conformité, incident
Checklists Sécurité — Audit & Durcissement
Formats disponibles
📄 PDF 📊 Excel 🌐 Web

11 checklists professionnelles couvrant 2 200+ points de contrôle. Téléchargement gratuit, aucune inscription.

AMSI Bypass

hacking

Définition

AMSI (Antimalware Scan Interface) est un mécanisme de Microsoft introduit dans Windows 10 qui permet aux solutions de sécurité de scanner le contenu des scripts (PowerShell, VBScript, JScript, Office macros, .NET) avant leur exécution. Les bypasses AMSI permettent de contourner cette inspection pour exécuter des payloads malveillants qui seraient normalement détectés et bloqués. AMSI fonctionne via une API qui expose le contenu des scripts à tous les providers antivirus enregistrés avant l'exécution. Les points d'instrumentation incluent PowerShell, le moteur de scripts Windows (WScript), les applications .NET (via AMSI.dll), Office VBA, et certains interpréteurs tiers. Le scan est effectué en mémoire sur le contenu réel du script, contournant les défenses basées sur les fichiers sur disque. Les techniques de bypass AMSI se divisent en plusieurs catégories : la corruption de mémoire (patcher en mémoire la fonction AmsiScanBuffer ou AmsiOpenSession pour toujours retourner AMSI_RESULT_CLEAN), le forçage d'erreur (provoquer une exception dans le contexte AMSI pour qu'il désactive l'inspection), l'obfuscation (transformer le code pour qu'il ne corresponde plus aux signatures connues tout en restant fonctionnel), le chunking (diviser le code en petites pièces qui ne déclenchent pas de détection individuellement), et les DLL hijacking (remplacer amsi.dll par une version bienveillante). Des techniques emblématiques incluent : la méthode 'amsi.fail' (patching de l'instruction de retour d'AmsiScanBuffer), les downgrade attacks (forcer PowerShell v2 qui ne supporte pas AMSI), et des obfuscations basées sur la concaténation de chaînes, l'encodage Base64/ROT13, et l'utilisation de caractères Unicode équivalents. Des outils comme AMSITrigger aident à identifier les parties d'un script qui déclenchent AMSI. La course-poursuite entre les bypasses AMSI et les mises à jour des signatures est continue : Microsoft et les éditeurs AV publient régulièrement des signatures pour les techniques de bypass connues, forçant les attaquants à développer de nouvelles approches d'obfuscation.

Fonctionnement

Le patching d'AmsiScanBuffer en mémoire est la technique la plus directe : localiser l'adresse de la fonction dans amsi.dll chargée, utiliser VirtualProtect pour rendre la région mémoire modifiable, écraser les premiers octets de la fonction avec mov eax, 0x80070057; ret (retourne E_INVALIDARG, indiquant qu'AMSI ne peut pas scanner), puis restaurer les permissions. Cette approche nécessite des privilèges suffisants pour modifier la mémoire du processus PowerShell.

Exploitation offensive

Le bypass AMSI est souvent le premier module exécuté dans un payload PowerShell malveillant avant de déployer des outils de post-exploitation comme PowerView, PowerSploit, ou des agents C2. Sans bypass AMSI, les fonctions critiques comme Invoke-Mimikatz ou Invoke-BloodHound sont immédiatement détectées et bloquées. Le bypass ouvre la voie à l'exécution de n'importe quel outil offensif en PowerShell.

Détection et mitigation

Microsoft Defender met régulièrement à jour ses signatures pour les bypasses AMSI connus. La surveillance des événements PowerShell (Script Block Logging, Module Logging, Transcription) permet de capturer le code réel exécuté même après bypass. Les EDR avec ETW (Event Tracing for Windows) peuvent détecter les modifications de mémoire dans les processus PowerShell. La restriction de PowerShell (Constrained Language Mode via AppLocker/WDAC) limite les capacités disponibles même après bypass.

Articles liés

Un projet cybersécurité ?

Expert dispo · Réponse 24h

Devis