Exploitation des vulnérabilités et mise en œuvre de la prévention des vulnérabilités
Construction d'une application de détection de vulnérabilité CVE-2017-8464
CONTENU:
PARTIE 1: VUE D'ENSEMBLE DE CVE-2017-8464
CONCEPT DE FICHIER LNK CRÉATION D'UN SYSTÈME VULNÉRABLE À CVE-2017-8464 OUTIL D'ATTAQUE DE LA VULNÉRABILITÉ CVE-2017-8464PARTIE 2: UTILISATION DE METASPLOIT POUR EXPLOITER CVE-2017-8464
2.1. MODÈLE D'EXPLOITATION DE CVE-2017-8464
2.2. EXÉCUTION DE L'EXPLOITATION DE CVE-2017-8464
PARTIE 3: CONSTRUCTION D'UN OUTIL DE DÉTECTION DE CVE-2017-8464 BASÉ SUR PYTHON
3.1. ANALYSE DE LA SIGNATURE DE CVE-2017-8464 À PARTIR DES PAQUETS RÉSEAU CAPTURÉS
3.2. FONCTION DE DÉTECTION DE L'EXPLOITATION DE CVE-2017-8464 BASÉE SUR L'ANALYSE DE LA SIGNATURE DES PAQUETS RÉSEAU
CONCLUSION
**
PARTIE 1: VUE D'ENSEMBLE DE CVE-2017-8464
LNK est un fichier système - Raccourci Windows, au format binaire développé par Microsoft.

Figure 1: Icône de raccourci sous Windows
Un fichier LNK est un raccourci ou un "lien" utilisé par Windows comme référence vers un fichier source, un dossier ou une application, similaire à un alias sur la plateforme Macintosh. Il contient le type de cible du raccourci, l'emplacement et le nom du fichier, ainsi que les programmes qui ouvrent les fichiers cibles et un raccourci optionnel. Les fichiers peuvent être créés dans Windows en cliquant avec le bouton droit sur un fichier, un dossier ou un exécutable, puis en sélectionnant 'Créer un raccourci'.
L'exploitation de cette vulnérabilité dans Microsoft Windows permet à un attaquant d'exécuter du code à distance si l'icône d'un raccourci (créé de manière spéciale) est affichée.

Figure 2: Création manuelle d'un raccourci exécutant le téléchargement et l'exécution du code d'attaque via un fichier .LNK
Le composant vulnérable est lié à la pile réseau. Une telle vulnérabilité est souvent appelée 'exploitable à distance' et peut être considérée comme une attaque exploitable au niveau du protocole ou sur plusieurs sauts réseau (par exemple, via un ou plusieurs routeurs).
Les systèmes affectés par la vulnérabilité CVE-2017-8464 sont Windows Shell dans Microsoft Windows Server 2008 SP2 et R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold et R2, Windows RT 8.1, Windows 10 Gold, 1511, 1607, 1703 et Windows Server 2016. Cela permet à un utilisateur local ou à un attaquant distant d'exécuter du code arbitraire via un fichier .LNK créé manuellement, qui n'est pas correctement traité lors de l'affichage de l'icône dans l'Explorateur Windows ou toute autre application analysant l'icône du raccourci. Aussi appelée 'vulnérabilité d'exécution de code à distance LNK'.
La mise à jour de sécurité corrige la vulnérabilité en réparant la validation correcte de la référence de l'icône du raccourci. Microsoft Windows a publié une mise à jour pour cette vulnérabilité en juin 2017. Cette vulnérabilité n'affecte pas les versions Windows XP et antérieures.
Metasploit
Metasploit Framework est un environnement utilisé pour tester, attaquer et exploiter les vulnérabilités des services en ligne de commande. Cet outil est disponible sur Kali Linux version VMware.

Figure 3: Outil Metasploit
Armitage
Outil à interface graphique basé sur le projet Metasploit.

Figure 4: Outil Armitage.
PARTIE 2: UTILISATION DE METASPLOIT POUR EXPLOITER CVE-2017-8464
2.1. MODÈLE D'EXPLOITATION DE CVE-2017-8464
Machine victime – Windows 7 Pro

Figure 5: Version du système d'exploitation de la victime

Figure 6: Adresse IP de la machine victime
Machine attaquante – Kali Linux – Utilisation de l'outil Metasploit.

Figure 7: Adresse IP de la machine attaquante
Le réseau actif est VMnet8 sous-réseau 192.168.169.0
2.2. EXÉCUTION DE L'EXPLOITATION DE CVE-2017-8464

Figure 8: Création du payload et écoute de la connexion TCP vers la machine attaquante

Figure 9: Création d'un fichier .lnk exécutant automatiquement le code malveillant

Figure 10: Informations de configuration du payload

Figure 11: Création du fichier .lnk accompagné du code malveillant

Figure 12: Copie de tout le code malveillant sur USB

Figure 13: La victime branche une clé USB contenant un fichier .lnk vulnérable avec code malveillant

Figure 14: L'attaquant a exploité avec succès et pénétré la machine victime
**
PARTIE 3: CONSTRUCTION D'UN OUTIL DE DÉTECTION DE CVE-2017-8464 BASÉ SUR PYTHON
3.1. ANALYSE DE LA SIGNATURE DE CVE-2017-8464 À PARTIR DES PAQUETS RÉSEAU CAPTURÉS

Figure 15: Paquet d'attaque sur la vulnérabilité CVE-2017-8464 capturé

Figure 16: Paquet avec le drapeau PSH après une connexion TCP réussie à l'attaquant

Figure 17: Indicateur suspect dans le paquet capturé envoyé par l'attaquant à la victime.
PE File Format (Portable Executable File Format): là định dạng file riêng của Win32. Tất cả các file có thể thực thi được trên Win32 như: *.EXE, *.DLL (32 bit),*.COM,*.NET, *.CPL,… đều là định dạng PE; ngoại trừ các tập tin VxDs và *.DLL (16 bit).

Figure 18: Structure du fichier PE.
DOS MZ Header
Tous les fichiers PE commencent par un simple en-tête DOS MZ. Il occupe les 64 premiers octets. Cette zone est utilisée dans le cas où le programme s'exécute sous DOS.
e_magic: Signature du fichier PE, valeur : 4Dh, 5Ah (caractères 'MZ', nom du fondateur de MS-DOS : Mark Zbikowsky). Cette valeur marque un en-tête DOS valide et permet l'exécution ultérieure.

Figure 19: Signature du fichier PE dans le paquet capturé
e_lfanew: est un DWORD situé à la fin de l'en-tête DOS, contenant le décalage de l'en-tête PE par rapport au début du fichier.
DOS STUB
Le DOS Stub est simplement un petit programme EXE DOS qui affiche un message d'erreur, servant à assurer la compatibilité avec Windows 16 bits.

Figure 20: Informations dans le paquet DOS STUB capturé envoyé par l'attaquant à la victime
PE Header
L'en-tête PE est en fait la structure IMAGE_NT_HEADERS contenant les informations nécessaires pour que le chargeur charge le fichier en mémoire.
Signature: est un DWORD commençant l'en-tête PE contenant la signature PE : 50h, 45h, 00h, 00

Figure 21: Informations de e_lfanew indiquant la partie Signature de l'en-tête PE.
SECTION TABLE
La table des sections est le composant situé après l'en-tête PE, comprenant un tableau de structures IMAGE_SECTION_HEADER.

Figure 22: Contenu de la table des sections dans le paquet capturé

Figure 23: Enregistrement de la signature et des informations liées au code malveillant dans un fichier CSV
3.2. FONCTION DE DÉTECTION DE L'EXPLOITATION DE CVE-2017-8464 BASÉE SUR L'ANALYSE DE LA SIGNATURE DES PAQUETS RÉSEAU

Figure 24: Fonction de récupération des informations du protocole du paquet

Figure 25: Fonction de récupération des informations du champ info du paquet

Figure 26: Fonction de conversion des paquets de Pcap en fichier CSV

Figure 27: Fonction de vérification du code malveillant sur le trafic réseau

Figure 28: Boucle de capture du trafic et de vérification du code malveillant
* Test du fonctionnement du programme via l'exécution de l'exploitation.

Figure 29: Lancement du programme de surveillance sur la machine réelle

Figure 30: Détection et alerte lors de l'écoute du trafic réseau

Figure 31: Dossier du programme de surveillance CVE-2017-8464

Figure 32: Dossier packet avec les fichiers enregistrant les paquets après chaque conversion lors de la capture

Figure 33: Toutes les alertes enregistrées dans le journal
CONCLUSION
Grâce au processus d'exploitation et de construction du programme de détection de la vulnérabilité CVE-2017-8464, l'étudiant comprend comment exploiter une vulnérabilité, puis analyser la signature ainsi que les comportements du code malveillant lié à cette vulnérabilité. Cette analyse du comportement et de la signature permet à l'étudiant d'écrire son propre programme pour collecter, analyser et traiter automatiquement les informations de surveillance de la sécurité réseau afin d'émettre des alertes de détection de code malveillant.