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-2023-38831 — CVE-2023-38831 - WinRAR | Kitploit
Outils/GitHubGitHub/mishra0230/cve-2023-38831
Analyse des VulnérabilitésExploitationExploitation d'Applications WebAnalyse ForensiqueAnalyse de MalwareTests d'IntrusionRenseignement sur les MenacesArticles et RechercheApprentissage et ÉducationRéponse aux IncidentsExploitation de Binaires
3il y a 7 moisPas encore vérifié
GitHub
mishra0230/cve-2023-38831

CVE-2023-38831

CVE-2023-38831 - WinRAR

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

Logique de détection pour l'exploit CVE-2023-38831 WinRAR

Ce dépôt contient une logique de détection pour CVE-2023-38831 (exploit WinRAR de falsification de fichier ZIP / double extension) avec des requêtes brutes / blocs de code et des noms de fournisseurs ETW spécifiques + ID d'événements. Une version vulnérable de WinRAR (< 6.23) sur le système cible

Résumé comportemental

CVE-2023-38831 est exploité lorsque :

  • L'utilisateur ouvre un ZIP malveillant dans WinRAR

  • L'archive contient :

    ● Un fichier leurre (par ex., invoice.pdf )

    ● Un répertoire avec le même nom (par ex., invoice.pdf \ )

    ● À l'intérieur du répertoire, "deux" fichiers avec le même nom mais des noms légèrement différents (pour un fichier, un espace et se terminant par n'importe quelle extension ; par exemple, si le 1er fichier est un "invoice.pdf " alors le 2e peut être un script ou exécutable comme "invoice.pdf .cmd")

  • WinRAR exécute le script ou l'exécutable au lieu d'ouvrir le document (“PDF” dans ce cas)

  • Cette exécution est déclenchée via l'appel de la fonction ShellExecuteExW pour exécuter le fichier, en passant shExecInfo (ShellExecute via Explorer)

  • WinRAR génère un processus enfant (cmd, powershell, mshta, wscript, exe, selon ce qui est présent dans le dossier)

  • L'exécution se produit souvent depuis Temp / AppData / le chemin d'extraction

Résumé de l'attaque

Résumé du flux L'utilisateur ouvre l'archive

root@kitploit:~
  ↓
  
WinRAR affiche le fichier leurre

  ↓
  
L'utilisateur double-clique sur le document

  ↓
  
WinRAR extrait le répertoire avec le même nom
  ↓
  
Exécutable écrit dans *.pdf\*.pdf .exe
  ↓
  
ShellExecute via Explorer
  ↓
  
ImageLoad de l'exécutable

  ↓
  
Exécution de la charge utile

Télécharger l’outil

Pourquoi ce flux est important pour la détection

root@kitploit:~
●	Aucune utilisation de macro

●	Aucune dépendance à la création de processus

●	L'exploit repose sur le masquage du système de fichiers

●	Signal à haute confiance et faible bruit

Détails techniques importants

  • Les fichiers sont écrits dans une structure spéciale

    Par exemple, avoir deux objets (fichier/répertoire) avec le même nom. Lorsque vous avez un fichier et un répertoire avec le même nom dans un fichier d'archive et que vous souhaitez ouvrir le fichier temporairement en double-cliquant dessus (fichier cible) dans le fichier d'archive ouvert, WinRAR extrait ce fichier pour vous. Il extrait également tous les fichiers ayant le même nom que le fichier cible. Tous sont écrits dans un répertoire temporaire dans le chemin %tmp%.

    root@kitploit:~
      	| Nom du fichier/répertoire                                          | Chemin d'extraction                                                                   |
      	
      	| ------------------------------------------------------ | --------------------------------------------------------------------------------- |
      	
      	| CLASSIFIED_DOCUMENTS.txt <–fichier cible cliqué dessus   | `C:\Users\UsersName\AppData\Loca\Temp\Rar$DIa8432.13968\CLASSIFIED_DOCUMENTS.txt\`|
      	
      	| CLASSIFIED_DOCUMENTS.txt .cmd <– le fichier dans le répertoire | `C:\Users\UsersName\AppData\Loca\Temp\Rar$DIa8432.13968\CLASSIFIED_DOCUMENTS.txt\`|
      	
    
  • S'il y a deux fichiers dans un répertoire temporaire (décompression) avec le même nom mais des tailles différentes (par exemple, 20k et 12k) et que vous ouvrez l'archive et ouvrez le premier fichier, 1.txt, qui fait 20k octets, WinRAR vous demandera de remplacer un fichier par le second fichier, 1.txt, qui fait 10k. Si vous cliquez sur "Oui", seul le second fichier, 1.txt, s'ouvrira. Cette condition peut être ajoutée pour exclusion.

Point important pour la logique de détection

  • Exécution de processus déclenchée depuis un chemin d'extraction ZIP ou un répertoire temporaire, avec une extension trompeuse ou un dossier se faisant passer pour un fichier

  • Lorsque WinRAR libère un fichier pour décompression dans le répertoire temporaire, il doit contenir deux fichiers avec le même nom mais des noms légèrement différents (un espace et se terminant par n'importe quelle extension), comme le nom du fichier principal avec un “ ” (CLASSIFIED_DOCUMENTS.pdf ) à la fin de son nom, puis un “.cmd” (CLASSIFIED_DOCUMENTS.pdf .cmd).

  • Lorsque WinRAR charge une DLL et appelle la fonction ShellExecuteExA, le paramètre "pExecInfo" a un chemin avec un espace et se terminant par n'importe quelle extension, comme "CLASSIFIED_DOCUMENTS.pdf .cmd."

  • Fournisseurs ETW et philosophie de détection (ETW uniquement) Fournisseurs ETW

    root@kitploit:~
      	| But                    | Fournisseur ETW                          |
      	
      	| -------------------------- | ------------------------------------- |
      	
      	| Création de processus           | `Microsoft-Windows-Kernel-Process`    |
      	
      	| Visibilité de la ligne de commande    | `Microsoft-Windows-Security-Auditing` |
      	
      	| Opérations sur les fichiers (optionnel) | `Microsoft-Windows-Kernel-File`       |
      	
    
     La détection reposera sur (si pas de ProcessStart, CreateProcess ou logique parent/enfant de type EDR) :
     
      	●	ETW du système de fichiers
      	
      	●	ETW du Shell / Explorer
      	
      	●	Chargement d'image ETW (optionnel, hors création)
      	
      	●	Ligne de commande ETW (optionnel)
      	
      
     Fournisseurs ETW principaux
     
      	| But                    | Fournisseur ETW                          |
      	
      	| -------------------------- | ------------------------------------- |
      	
      	| Création de répertoire         | `Microsoft-Windows-Kernel-File`       |
      	
      	| Création d'EXE               | `Microsoft-Windows-Kernel-File`       |
      	
      	| Exécution du Shell            | `Microsoft.Windows.ShellExecute`      |
      	
      	| Chargement d'image                 | `Microsoft-Windows-Kernel-Image`      |
      	
      	| Explorateur                   | `Microsoft-Windows-Explorer`          |
      	
      	| Shell                      | `Microsoft-Windows-Shell-Core`        |	
    

Logique de détection brute

root@kitploit:~
À un niveau élevé, la logique détecte :

			●	WinRAR.exe initiant des écritures de fichiers

			●	Création à la fois d'un répertoire et d'un fichier avec le même nom de base

			●	Extension exécutable apparaissant après renommage ou écrasement

			●	Séquence se produisant dans une fenêtre temporelle étroite (<2s)

Ce modèle est extrêmement rare dans les workflows bénins mais central dans le chemin d'exécution de l'exploit.

			●	La règle évite intentionnellement :

			●	L'inspection de la ligne de commande

			●	Le suivi des processus enfants

			●	Le hachage complet des fichiers

Détection de la logique de base

La détection de la logique de base est mentionnée ci-dessous, avec un niveau de confiance et une brève justification.

1.Chargement d'image (Confirmation d'exécution)

root@kitploit:~
Raison : Cela confirme l'exécution réelle sans télémétrie de création de processus.

Logique de détection :

	Chargeur Windows :
		
		●	Mappe Invoice.pdf .exe en mémoire
		
	Signal ETW :
		
		●	ImageLoad
		
		●	Chemin de l'image :
		
		●	*.pdf\*.pdf .exe	
		
	

2. Règle de détection (API ShellExecuteExA) - Logique de règle haute fidélité

root@kitploit:~
Règle de détection générique basée sur la télémétrie ci-dessous :

			●	Événements de création de fichiers par un WinRar.exe
			
			●	Événements de chargement d'image pour WinRar.exe chargeant une DLL Shell32.dll et commençant à utiliser une API (ShellExecuteExA|W) avec les paramètres.
			
			●	Cette fonction prend un argument nommé SHELLEXECUTEINFO, qui est une structure. Comme vous le voyez, cette structure a de nombreux champs, mais deux sont importants pour nous : lpVerb et lpFile.
				
			●	lpVerb - Il indique que si vous définissez LpVerb sur NULL, ShellExecuteExA|W utilise le verbe par défaut s'il est disponible, sinon il exécute le verbe « open ». Et le verbe « open » ouvre ou exécute le fichier.
			
			●	lpFile - lpFile est le chemin du fichier utilisé dans ShellExecuteExA pour exécuter le verbe, et maintenant vous pouvez remarquer le caractère espace (0x20) à la fin du chemin du fichier.
			             
			
Note:
	1- Shell32.dll : C'est là que ShellExecuteExA est définie. Elle contient la logique pour analyser la structure SHELLEXECUTEINFO et déterminer comment traiter la requête (par ex., ouvrir un document, exécuter un EXE, ou afficher une boîte de dialogue de propriétés)
			
	2- Voici comment fonctionne la vulnérabilité : La vulnérabilité est ici. WinRAR a supprimé l'espace du nom de fichier lors de l'écriture mais a oublié d'appliquer cette modification à la liste d'extraction. Ainsi, le nom du fichier cible n'a pas changé et l'espace est toujours dans le nom du fichier. Aussi, je peux dire que ShellExecuteExA ouvre le fichier « CLASSIFIED_DOCUMENTS.pdf .cmd ». Le « .cmd » n'a pas d'importance pour ShellExecuteExA et il exécute simplement un fichier avec le nom « CLASSIFIED_DOCUMENTS.pdf » dans ce chemin.
        			
Logique de détection (Logique de règle haute fidélité) :

	●	SQL-Based :\\Detection_Logic\\SQL-based-ShellExecute.txt
	
	●	KQL (ProcessCommandLine):\\Detection_Logic\\KQL-API-ProcessCommandLine.txt
	
	●	Pseudocode Detection Logic :\\Detection_Logic\\SQL-API-ShellExecute.txt

Note : Vous pouvez créer une logique de détection selon les normes ci-dessus. J'ajoute également un script Python simple pour obtenir des événements qui vous aideront dans la rédaction de votre règle de détection. Également ajouté ce qui est utile lors de la création d'une règle basée sur ETW.

	 
		| Fournisseur                              | ID d'événement                                  | ID d'événement / Tâche             |
		                                                                       
		| ------------------------------------- | ----------------------------------------- | --------------------------- |
		                                                                       
		| `Microsoft-Windows-Shell-Core`        | {30336983-0362-4540-9E69-14844E6A3B7A}    | Event ID 1 (Execute)        |
		
		| `Microsoft-Windows-Kernel-Process`    | {22FB2AD3-E163-4078-8C2A-801648437D2D}    | Image Load / Process Start  |


		
		

3. Logique de règle haute fidélité pour l'exploitation de CVE-2023-38831 WinRAR

root@kitploit:~
	- Raison : Alerter lorsqu'un exécutable est créé ou chargé depuis un répertoire dont le nom se termine par une extension de document, et que l'exécution est initiée via les API Explorer/Shell.			
	- Logique de détection en pseudocode (Logique de règle haute fidélité) - \\Detection_Logic\\WinRAR-CVE-2023-38831-Exploitation.txt				

4. Règle de détection EDR (basée sur ETW)

root@kitploit:~
	Règle de détection EDR générique basée sur la télémétrie ci-dessous :	 
	
			●	Événements de création de fichiers
			
			●	Exécution du Shell / invocation de l'Explorateur
			
			●	Événements de chargement d'image (optionnel mais fort)
			
	Logique de détection : \\Detection_Logic\\EDR-Detection-ETW-based.txt
	

5. Requête KQL sans DeviceProcessEvents (si l'endpoint le supporte)

root@kitploit:~
		Raison : Cette version fonctionne sans dépendre de DeviceProcessEvents 
		
		Logique de détection : \\Detection_Logic\\KQL-Detection-without-DeviceProcessEvents.txt
		
   

6. Signal d'exécution du Shell (si activé et supporté)

root@kitploit:~
		Raison : Cela renforce la confiance lorsqu'il est corrélé avec la création de fichiers.
		
		Logique de détection : \\Detection_Logic\\Shell-Execution-Signal.txt	
		

7. Adapté au SOC (Flux de triage)

root@kitploit:~
		Raison : Cette règle a été créée pour chaque étape découverte lors d'une attaque.
		
		Logique de détection : \\Detection_Logic\\SOC-Friendly.txt
		
		

Logique de détection alternative

(Alerte / Si inclus ProcessStart, CreateProcess, ou logique parent/enfant de type EDR)

1.Détecter lorsque winrar.exe crée un répertoire/fichier suspect, surtout depuis temp ou les chemins d'extraction d'archive et exécute un fichier suspect créé en utilisant une version vulnérable de WinRAR

root@kitploit:~
Raison : Créez des règles en fonction des événements que votre produit gère, tels que l'accès, l'événement ou le cloud.

Logique de détection :\\Detection_Logic\\Gen-Pseudocode-Detection-Logic.txt

2.Détecter lorsque winrar.exe génère un processus enfant suspect, surtout depuis temp ou les chemins d'extraction d'archive

root@kitploit:~
	Logique de détection :
	
		Endpoint : \\Detection_Logic\\winrar-spawns-suspicious-child-process.txt
		
		Règle Sigma : \\Detection_Logic\\Sigma-Rule-WinRAR Exploit.txt
			

3. Alerte basée sur le fournisseur ETW (Création de processus)

root@kitploit:~
		| Fournisseur                              | ID d'événement                    |
		
		| ------------------------------------- | --------------------------- |
		
		| `Microsoft-Windows-Security-Auditing` | 4688 (Process Creation)     |
		

	Logique de détection
	
		●	Processus parent = winrar.exe
		
		●	Nouveau processus = moteur de script ou exécutable
		
		●	CommandLine inclut Temp/AppData

4. Requête KQL avec DeviceProcessEvents (si l'endpoint le supporte)

root@kitploit:~
		Raison : Si nous voulons développer en utilisant DeviceProcessEvents 
		
		Logique de détection : \\Detection_Logic\\KQL-Detection-with-DeviceProcessEvents.txt
		

5. Indicateur d'attaque (vous pouvez ajouter une alerte à haute confiance)

root@kitploit:~
	En respectant les conditions ci-dessous, vous pouvez ajouter une règle IOA ou de liste de surveillance pour l'alerte.

	| Indicateur                          | Confiance |
	
	| ---------------------------------- | ---------- |
	
	| winrar.exe spawning cmd/powershell |  Haute     |
	
	| Exécution depuis Temp/AppData        |  Haute     |
	
	| `.cmd/.bat /.exe ` execution       |  Haute     |
	
	| ZIP à double extension ouvert        |  Moyenne   |

Liste de surveillance

Créez une liste de surveillance pour deux fichiers avec le même nom dans un répertoire créé par une version vulnérable de WinRAR (< 6.23) :

Comme vous ne pouvez pas avoir deux fichiers avec le même nom dans un répertoire, ni un répertoire et un fichier avec le même nom.

Mais c'est possible dans les logiciels de compression comme WinRAR/7zip. Dans un fichier compressé, peu importe que vous ayez des fichiers avec le même nom, les fichiers sont écrits dans une structure spéciale.

Ainsi, vous pouvez avoir deux objets (Fichier/Répertoire) avec le même nom dans un fichier ZIP/RAR.

Exclusions ( Déclencheurs légitimes )

root@kitploit:~
	Déclencheurs probablement légitimes
	
		●	cmd.exe généré par les installateurs auto-extractibles de 7-Zip/WinRAR
		
		●	powershell.exe lancé par des outils de mise à jour de logiciels d'entreprise conditionnés dans RAR
		
		●	rundll32.exe utilisé par les installateurs de pilotes d'imprimante ou de GPU

	Logique d'exclusion (exemple)
	
		AND NOT (
		  ChildImage IN (cmd.exe, powershell.exe, rundll32.exe)
		  AND
		  CommandLine CONTAINS (
			"setup.exe",
			"install.cmd",
			"driverinstall",
			"vendorupdate"
		  )
		)
			

Opportunité de corrélation

root@kitploit:~
	Cela préserve la détection de l'exploit tout en supprimant les comportements d'installateur connus.
	Télémétrie des fichiers d'archive (événements du système de fichiers) — Corréler cette règle avec l'activité d'extraction RAR/ZIP (par ex., création de fichiers .cmd/.bat/.exe immédiatement avant l'exécution, surtout depuis des répertoires d'extraction WinRAR comme Rar$EX*) augmenterait considérablement la confiance et réduirait les faux positifs en prouvant que l'exécution a directement suivi l'extraction de l'archive.
	
	

Cartographie MITRE ATT&CK

root@kitploit:~
	T1204.002 – Exécution utilisateur : Fichier malveillant
	T1059 – Interpréteur de commandes et de scripts
	T1036 – Masquage (double extension)

Avertissement

root@kitploit:~
Ce code de détection est uniquement à des fins éducatives et de test autorisé.  
Ne l'utilisez pas sur des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de tester.

Références

  • Blog de Group-IB : CVE-2023-38831 WinRAR Zero-Day
  • Analyse Github de B1tg : CVE-2023-38831
  • Preuve de concept Github de B1tg pour WinRAR Exploit CVE-2023-38831
  • Preuve de concept Github pour CVE-2023-38831 WinRAR Exploit
  • Github de rapid7 pour le module metasploit
  • Module Metasploit Github