binary-lockEncoders

Les encoders dans Metasploit sont utilisés pour modifier la forme du payload sans en altérer la fonctionnalité. Leur rôle principal est d’aider à contourner :

  • Les mécanismes de détection (antivirus, IDS/IPS)

  • Les contraintes liées à certains caractères interdits dans le flux d’exploitation

Un encoder agit en transformant le code machine du payload en une autre représentation, puis en le décodant une fois exécuté sur la cible.


🎯 Objectifs des encoders

  • Évasion : tenter de contourner les solutions de sécurité qui reconnaissent des signatures binaires connues.

  • Compatibilité : adapter le payload pour éviter des caractères problématiques (ex. \x00, \x0a).

  • Obfuscation : complexifier la détection et l’analyse du payload par des défenses automatisées.

👉 Attention : les encoders ne garantissent pas toujours l’évasion, surtout contre des solutions modernes. Leur efficacité dépend du contexte.


⚙️ Utilisation des encoders

📋 Lister les encoders disponibles

msf6 > show encoders

Exemple de sortie :

Name                    Rank       Description
----                    ----       -----------
x86/shikata_ga_nai      excellent  Polymorphic XOR Additive Feedback Encoder
x86/countdown           normal     Single-byte XOR Countdown Encoder
x86/jmp_call_additive   normal     èJump/Call Additive Encoder

🔧 Sélection d’un encoder

Un encoder est défini comme une option lors de la configuration du payload.

Exemple :

Il est aussi possible de définir le nombre d’itérations d’encodage :

👉 Plus d’itérations = obfuscation accrue, mais aussi risque d’instabilité.


🔬 Exemple d’utilisation

  1. Sélection d’un exploit :

  1. Choix du payload :

  1. Application d’un encoder :

  1. Lancement de l’attaque :

Résultat : le payload est encodé avant d’être injecté dans la cible.


🛡️ Limites et remarques

  • Les encoders ne sont pas une solution universelle contre les antivirus modernes.

  • Certains systèmes de sécurité utilisent des analyses comportementales qui détectent l’activité du payload, même encodé.

  • Trop d’itérations peuvent rendre le payload instable ou plus volumineux.

  • L’encodage est surtout utile pour des contextes précis (bypass de caractères interdits, évasion basique).


Last updated