Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Blackash-CVE-2017-0144 — CVE-2017-0144 | Kitploit
Outils/GitHubGitHub/firetemple/blackash-cve-2017-0144
Analyse des VulnérabilitésExploitationAnalyse ForensiqueAnalyse de MalwareTests d'IntrusionRenseignement sur les MenacesDétection d'IntrusionApprentissage et ÉducationRessources Organisées
GitHubfiretemple/blackash-cve-2017-0144

Blackash-CVE-2017-0144

CVE-2017-0144

159il y a 10 moisPas encore vérifié
Voir le dépôt

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

🌐 CVE-2017-0144 — EternalBlue : Vulnérabilité d'exécution de code à distance dans SMBv1 de Microsoft Windows

EternalBlue

« Un exploit. Des dizaines de familles de malwares. Des milliards de dégâts. »


🔍 Résumé en une ligne

CVE-2017-0144 est une vulnérabilité critique d'exécution de code à distance dans l'implémentation du serveur SMBv1 de Microsoft Windows. L'exploit connu sous le nom d'EternalBlue a abusé de cette faille et a été utilisé dans des attaques à fort impact (notamment WannaCry).


🔥 Top 10 des malwares utilisant EternalBlue (détaillé)

#MalwareTypePremière apparitionActeurDégâtsNotes
1WannaCryRançongiciel12 mai 2017Lazarus Group (RPDC)4–8 milliards $Killswitch : iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
2NotPetyaWiper (déguisé en rançongiciel)27 juin 2017Sandworm (Russie)10 milliards $+A utilisé Mimikatz + EternalBlue + PSEXEC
3Bad RabbitRançongiciel24 oct. 2017Indrik SpiderRégionalDrive-by via fausse mise à jour Flash
4UiwixRançongicielmai 2017InconnuFaiblePas de killswitch, plus discret que WannaCry
5EternalRocksVermai 2017InconnuMoyen7 outils NSA (dont DoublePulsar)
6AdylkuzzCryptomineurmai 2017InconnuÉlevé (silencieux)Miné du Monero avant WannaCry
7RetefeCheval de Troie bancaire2017–2018InconnuBanques UEA utilisé EternalBlue pour le mouvement latéral
8TrickBotMalware modulaire2017–2021Wizard SpiderMondialA déposé Ryuk via EternalBlue
9EmotetChargeur2017–2021TA542MondialUtilisé comme point d'entrée pour Cobalt Strike
10Clop / DridexRançongiciel2019–2025TA505Santé, GouvernementEncore actif en 2025

🧨 Évolution de l'exploit EternalBlue

eternelblue1
OutilDate de sortieFonctionnalités
EternalBlue (Original)Avr. 2017 (Shadow Brokers)RCE SMBv1
DoublePulsarAvr. 2017Implant backdoor (ring0)
EternalRomanceAvr. 2017Variante SMBv3
EternalChampionAvr. 2017Chemin SMB alternatif
Module MetasploitMai 2017exploit/windows/smb/ms17_010_eternalblue
FuzzBunchAvr. 2017Framework d'exploitation NSA
Impacket + PSEXEC2017–2025Exploitation SMB en Python
eternelblue2

🔍 Comment CVE-2017-0144 (EternalBlue) a été exploitée

Plongée technique étape par étape dans la RCE SMBv1

« Un paquet malformé. Un accès SYSTEM complet. Aucune connexion. Aucun clic. »


🎯 Flux d'exploitation TL;DR

[Attaquant] 
   │
   ├──▶ Envoie une requête **Trans2** SMBv1 fabriquée
   │       → Déclenche un **dépassement de tas** dans `srv!SrvOS2FeaListSizeToNt`
   │
   ├──▶ Écrase les pointeurs de fonction → **shellcode noyau**
   │
   └──▶ Exécute la backdoor **DoublePulsar** → **Payload Ring-0**
           (ex. WannaCry `mssecsvc.exe`)

🛠️ Prérequis pour l'exploitation

ExigenceDétails
CibleWindows avec SMBv1 activé (par défaut avant Windows 10)
Port ouvert445/TCP (ou 139/TCP via NetBIOS)
Pas d'authentificationNon authentifié — aucun nom d'utilisateur/mot de passe requis
Architecturex86 ou x64 (les deux supportées)
État du correctifNon corrigé (avant MS17-010)

🚀 Phases d'exploitation (7 étapes)

Phase 1 : Négociation du protocole SMB

SMB_COM_NEGOTIATE → Le client envoie la liste des dialectes
Le serveur répond : SMBv1 supporté → Continuer

Pourquoi ? Confirme que SMBv1 est actif.


Phase 2 : Tree Connect vers IPC$

eternelblue3
\\CIBLE\IPC$ → Partage anonyme pour les pipes SMB

Objectif : Établir une session pour envoyer des requêtes de transaction.


Phase 3 : Session Setup Trans2 (principale)

  • Utilise SMB_COM_TRANSACTION2 (0x32)
  • Sous-commande : SESSION_SETUP
  • Configure une structure FEALIST avec une taille malformée
FEALIST {
    SizeOfListInBytes = 0xFFFF (ou grande valeur)
    ...
}

Déclenchement du bug : SrvOS2FeaListSizeToNt() fait confiance à cette taille sans vérification des limites.


Phase 4 : Requête Trans2 secondaire (dépassement)

  • Envoie plusieurs paquets secondaires
  • Chacun contient un FEALIST surdimensionné + FEA (attributs étendus de fichier)
eternelblue4
FEA {
    AttributeNameLength = 0x00
    AttributeName = "A" * 0x1000  → Tampon en dépassement
}

Heap Spray : Alloue de gros blocs pour contrôler la disposition mémoire.


Phase 5 : Dépassement de tampon dans le noyau

srv!SrvOS2FeaListSizeToNt(
    PFEALIST FeaList,      // contrôlé par l'attaquant
    PULONG pNtFeaListSize  // pointeur de sortie
)
{
    // Aucune validation de FeaList->SizeOfListInBytes
    memcpy(dest, src, FeaList->SizeOfListInBytes);  // BOOM
}

Résultat :

  • Dépassement de tas → Écrase les objets noyau adjacents
  • Cible : SRVNET_BUFFER ou POOL_HEADER
  • Écrase les pointeurs de fonction (ex. routine Free)

Phase 6 : Exécution du shellcode noyau

  • L'attaquant contrôle RIP/EIP via le pointeur de fonction écrasé
  • Saute vers le shellcode dans le pool non paginé

Actions du shellcode :

  1. Transition Ring-0 → Ring-3 (via KeUserModeCallback)
  2. Alloue de la mémoire en mode utilisateur
  3. Télécharge/installe la charge utile (ex. mssecsvc.exe)
  4. Installe la backdoor DoublePulsar

Phase 7 : Implant de la backdoor DoublePulsar

eternelblue6
  • Injecte un pilote noyau (clé XOR 0x00120034)
  • Écoute les paquets SMB magiques :
    • Ping : 0x0002C001
    • Exec : 0x0002C002 + payload

Exemple WannaCry :

EternalBlue → DoublePulsar → mssecsvc.exe → tasksche.exe → Chiffre les fichiers

🧨 Structure du paquet d'exploit (simplifiée)

En-tête SMB
└── Commande : 0x32 (TRANSACTION2)
    └── Setup : 0x000E (SESSION_SETUP)
        └── Paramètre : TotalDataCount = 0x1000
            └── Données : 
                [FEALIST]
                  SizeOfListInBytes = 0x1100
                  [FEA #1] NameLen=0, Name="A"*0x1000
                  [FEA #2] ...
                [GROOM x100] → Spray du tas
                [OVERFLOW] → Écrase le pool
                [SHELLCODE] → x64 ring0

🛠️ Outils d'exploitation réels

Télécharger l’outil