windowsInfiltrating Windows

🧠 Introduction

Microsoft domine depuis des décennies les marchés domestiques et professionnels de l'informatique. Avec l'évolution de Windows, notamment les améliorations d'Active Directory, l'intégration au cloud, le Windows Subsystem for Linux (WSL), etc., la surface d'attaque de l'écosystÚme Windows s'est considérablement agrandie.

Entre 2019 et 2024, pas moins de 3688 vulnérabilités ont été recensées dans les produits Microsoft. De nombreuses failles critiques ont été activement exploitées.

đŸ’„ Exploits Windows les Plus Connus

Vulnérabilité
Description

MS08-067

Failles SMB exploitées par Conficker et Stuxnet. Permet l'exécution distante de code sur de nombreuses versions de Windows.

EternalBlue

MS17-010, exploit SMBv1 issu des leaks Shadow Brokers (NSA). Utilisé par WannaCry et NotPetya.

PrintNightmare

Exécution de code via le spooler d'impression Windows avec élévation de privilÚges.

BlueKeep

CVE-2019-0708, exécution de code à distance via RDP. Affecte Windows 2000 à 2008 R2.

SigRed

CVE-2020-1350, faille DNS permettant de compromettre un contrĂŽleur de domaine.

SeriousSAM

CVE-2021-36934, mauvaise configuration d'accÚs aux fichiers du répertoire system32\config, exposant la base SAM (hashs de mots de passe).

Zerologon

CVE-2020-1472, faille critique dans le protocole MS-NRPC permettant de falsifier les authentifications sur le domaine Active Directory.

La connaissance et la compréhension de ces vulnérabilités sont essentielles pour les exploiter ou les mitiger efficacement dans des environnements professionnels.


🔍 MĂ©thodes d'Empreinte (Fingerprinting) & DĂ©tection Windows

Avant d'attaquer, il faut s'assurer que la cible est bien un systÚme Windows. Voici quelques méthodes simples d'identification.

⌚ Analyse du Time To Live (TTL)

Lors d'un ping ICMP, Windows répond typiquement avec un TTL de 128. Voici un exemple :

Ce TTL peut ĂȘtre diminuĂ© si des routeurs s'interposent, mais reste gĂ©nĂ©ralement au-dessus de 100 pour les hĂŽtes proches.

🚀 Scan d’OS avec Nmap

Nmap permet une identification de l'OS avec -O. Voici un exemple de résultat :

En cas de détection difficile, utiliser les options -A et -Pn pour améliorer les résultats.

📊 Analyse des ports ouverts

Certains ports sont typiques des machines Windows :

  • 135 (RPC)

  • 139 (NetBIOS)

  • 445 (SMB)

Voici un extrait de scan Nmap sur un hĂŽte Windows :

Les ports 902 et 912 indiquent ici une instance de VMware Workstation.


Pour obtenir plus d'informations sur les services, on peut utiliser le script banner.nse de Nmap :

Extrait de réponse :

Ces informations permettent d'affiner les recherches d'exploits spécifiques à un logiciel ou une version données.


🧹 Bats, DLLs & MSI Files, Oh My!

Lorsqu’il s’agit de crĂ©er des payloads pour des hĂŽtes Windows, de nombreuses options sont possibles. Parmi les formats courants utilisĂ©s :

  • DLLs

  • Fichiers batch (.bat)

  • Fichiers MSI

  • Scripts PowerShell

  • Scripts VBS

Tous ces fichiers ont un point commun : ils peuvent ĂȘtre exĂ©cutĂ©s sur la machine cible. Le choix du format dĂ©pendra notamment du vecteur de livraison retenu.

📩 Types de payloads à envisager

đŸ§© DLLs (Dynamic-Link Libraries)

Les fichiers DLL sont des bibliothĂšques partagĂ©es sous Windows. Ils permettent d’avoir un code modulaire et rĂ©utilisable entre plusieurs programmes. En tant que pentester, il est possible :

  • d’injecter une DLL malveillante dans un processus,

  • de dĂ©tourner une DLL vulnĂ©rable dĂ©jĂ  prĂ©sente.

Cela peut permettre d'obtenir des privilùges SYSTEM ou de contourner l’UAC (User Account Control).

📜 Batch files (.bat)

Les fichiers batch sont des scripts en langage DOS permettant d’automatiser des commandes. TrĂšs utilisĂ©s par les administrateurs systĂšme, ils peuvent :

  • ouvrir un port sur la machine victime,

  • Ă©tablir une connexion vers l’attaquant (reverse shell),

  • rĂ©aliser une Ă©numĂ©ration basique,

  • exfiltrer des informations.

đŸ§Ș VBScript (VBS)

Le VBScript est un langage de script basĂ© sur Visual Basic. Bien que dĂ©sactivĂ© sur la majoritĂ© des navigateurs modernes, il reste utilisĂ© dans des contextes d’attaque (phishing, macros Excel, etc.). Il s’exĂ©cute via le moteur de script Windows et permet d’automatiser l’exĂ©cution de code malveillant.

📩 MSI (Microsoft Installer)

Les fichiers .msi sont des bases de donnĂ©es d'installation utilisĂ©es par le systĂšme Windows Installer. Il est possible de crĂ©er un payload encapsulĂ© dans un fichier MSI et de l’exĂ©cuter sur la cible via :

⚡ PowerShell

PowerShell est à la fois un shell moderne et un langage de script intégré aux systÚmes Windows. Basé sur .NET, il permet :

  • d’exĂ©cuter du code arbitraire,

  • de gĂ©rer des objets Windows natifs,

  • de construire et d’exĂ©cuter des payloads dynamiques,

  • d’interagir avec l’OS Ă  bas niveau.

PowerShell est extrĂȘmement puissant pour obtenir une exĂ©cution de commande et un shell sur l’hĂŽte cible.


🧰 Outils, Tactiques & ProcĂ©dures pour la gĂ©nĂ©ration, le transfert et l'exĂ©cution de payloads

🔧 GĂ©nĂ©ration de payloads

Plusieurs outils permettent de générer des payloads compatibles Windows. Voici quelques ressources clés :

Ressource
Description

MSFVenom / Metasploit Framework

GénÚre des payloads, les encode et les intÚgre dans des fichiers exécutables. Outil polyvalent du pentester.

Payloads All The Things

Référentiel communautaire regroupant des exemples de payloads et des techniques de génération.

Mythic C2 Framework

Framework de Command & Control alternatif à Metasploit avec génération de payloads personnalisés.

Nishang

Collection d’outils offensifs PowerShell (implants, scripts d’énumĂ©ration, etc.).

Darkarmour

GénÚre des exécutables obfusqués pour échapper à la détection sur Windows.


🚚 Transfert & ExĂ©cution de payloads

DiffĂ©rentes mĂ©thodes peuvent ĂȘtre utilisĂ©es pour transfĂ©rer et exĂ©cuter un payload sur une cible Windows :

  • 📁 Impacket : Suite d’outils Python permettant d’interagir avec divers protocoles rĂ©seau (SMB, WMI, Kerberos, etc.). Outils comme smbclient, psexec.py, wmiexec.py permettent le dĂ©pĂŽt et l'exĂ©cution de fichiers Ă  distance.

  • 📘 Payloads All The Things : Contient de nombreux one-liners pour transfĂ©rer rapidement un fichier entre deux machines.

  • 🔗 SMB : Utilisable pour copier des fichiers vers des partages comme C$ ou admin$. Pratique dans un environnement Active Directory.

  • 🧹 ExĂ©cution distante via Metasploit : De nombreux modules exploit intĂ©grĂ©s Ă  Metasploit automatisent la crĂ©ation, le transfert et l’exĂ©cution du payload.

  • 🌐 Autres protocoles : HTTP, HTTPS, FTP, TFTP peuvent ĂȘtre utilisĂ©s selon les services disponibles sur la cible. Exemple :


🔎 Exemple de compromission : EternalBlue sur Windows Server 2016

🔱 ÉnumĂ©ration de la cible

L'étape d'énumération est cruciale dans toute chaßne d'exploitation. Avant de tenter une quelconque attaque, il est primordial de comprendre l'environnement cible. Dans ce cas, la cible est une machine Windows dont l'adresse IP est <IP CIBLE>.

⚖ Scan Nmap avancĂ©

Résultats clés :

  • Port 80 (HTTP) : Microsoft IIS 10.0

  • Ports 135, 139, 445 (SMB/RPC) : Services Windows standards (SMB, NetBIOS, RPC)

  • Nom NetBIOS : SHELLS-WINBLUE

  • OS : Windows Server 2016 Standard 14393

  • Workgroup : WORKGROUP

  • Message signing SMB : DĂ©sactivĂ© (risquĂ©)

⚠ Indice de vulnĂ©rabilitĂ© possible : MS17-010 (EternalBlue), connu pour affecter Windows Server 2008 Ă  2016.


🔼 Identification de la vulnĂ©rabilitĂ© MS17-010

🧰 Scan via Metasploit

Lancement de Metasploit et utilisation du module de vérification pour MS17-010.

Résultat attendu :


🚀 Exploitation de MS17-010 avec Metasploit

đŸ€– Recherche et sĂ©lection de l'exploit

Nous choisissons ici :

⚖ Configuration de l'exploit et du payload

Le payload par défaut est : windows/meterpreter/reverse_tcp

🔍 VĂ©rification des options

S'assurer que les champs suivants sont bien renseignés :

  • RHOSTS

  • LHOST

  • LPORT


🔹 ExĂ©cution de l'exploit

Une fois tous les paramĂštres en place :

Si l'exploitation réussit, un shell Meterpreter s'ouvre :

Cela signifie que l'accĂšs Ă  distance Ă  la machine cible est effectif.


🔒 Points de vigilance

  • MS17-010 est une faille critique exploitĂ©e dans le cadre d'attaques rĂ©elles (ex : WannaCry).

  • L'utilisation de psexec implique que l'attaquant puisse exĂ©cuter du code en tant qu'administrateur (privilĂšges SYSTEM).

  • Un antivirus ou un EDR peut dĂ©tecter l'exploit ou le payload si non obfusquĂ©.


📅 RĂ©capitulatif

Étape
Outil
Objectif

Scan des ports

Nmap

Détecter les services exposés

Détection MS17-010

Metasploit (auxiliary)

Identifier la vulnérabilité

Exploitation

Metasploit (exploit + payload)

Obtenir un shell Meterpreter


đŸ”č Conclusion

La reconnaissance d’un systĂšme Windows est une Ă©tape essentielle dans toute phase d’infiltration. Elle permet de prĂ©parer efficacement les prochaines Ă©tapes d’attaque : choix des exploits, crĂ©ation de payloads adaptĂ©s, et Ă©valuation de la surface d’attaque.


📚 Ressources utiles


What file type is a text-based DOS script used to perform tasks from the cli? (answer with the file extension, e.g. '.something')

Comme mentionné dans le cours, l'extension associée aux scripts DOS est le .bat.


What Windows exploit was dropped as a part of the Shadow Brokers leak? (Format: ms bulletin number, e.g. MSxx-xxx)

L'exploit Windows drop dans le cardre de la fuite de Shadow Brokers est EternalBlue (MS17-010).


Gain a shell on the vulnerable target, then submit the contents of the flag.txt file that can be found in C:\

Lancement de Metasploit :

Une fois lancer, nous recherchons les exploit en lien avec eternalblue :

Nous choisissons alors l'exploit numéro 10 (exploit/windows/smb/ms17_010_psexec), modifions les options et accedons à notre cible :

Nous obtenons alors le flag attendu :


Last updated