
Invoke-ArgFuscator est un module PowerShell open-source et multiplateforme qui permet de générer des lignes de commande obfusquées pour les exécutables natifs courants du système.
░█░█▄░█░█▒█░▄▀▄░█▄▀▒██▀░▒░ ▄▀▄▒█▀▄░▄▀▒▒█▀░█▒█░▄▀▀░▄▀▀▒▄▀▄░▀█▀░▄▀▄▒█▀▄░ ░█░█▒▀█░▀▄▀░▀▄▀░█▒█░█▄▄░▀▀░█▀█░█▀▄░▀▄█░█▀░▀▄█▒▄██░▀▄▄░█▀█░▒█▒░▀▄▀░█▀▄░
Invoke-ArgFuscator est un module PowerShell open source et multiplateforme qui permet de générer des lignes de commande obscurcies pour les exécutables natifs courants du système sous Windows, Linux et macOS.
👉 Utilisez la version interactive d'ArgFuscator sur ArgFuscator.net 🚀
L'obfuscation de ligne de commande (T1027.010) consiste à masquer l'intention réelle d'une commande par la manipulation de la ligne de commande d'un processus. Sous Windows, Linux et macOS, de nombreuses applications analysent les arguments de ligne de commande qui leur sont passés de manière inattendue, ce qui conduit à des situations où l'insertion, la suppression et/ou la substitution de certains caractères ne modifie pas le flux d'exécution du programme. Une obfuscation de ligne de commande réussie est susceptible de dérouter les mesures défensives telles que les logiciels antivirus (AV) et EDR, et dans certains cas de contourner complètement la détection.
Bien que des recherches antérieures aient mis en évidence les risques de l'obfuscation de ligne de commande, principalement avec des exemples anecdotiques d'applications (natives du système) vulnérables, il existe un vide de connaissances autour de cette technique. Ce projet vise à combler ce manque en fournissant une ressource centralisée qui documente et démontre diverses techniques d'obfuscation de ligne de commande, et recense la sensibilité des applications populaires pour chacune d'elles.
Ce module fonctionne sur tout système d'exploitation prenant en charge PowerShell/pwsh, y compris Windows, macOS et Linux.
brew est préinstallé, exécutez brew install powershell/tap/powershell pour installer la dernière version de PowerShell. Pour d'autres options d'installation, reportez-vous à la documentation de Microsoft.Le moyen le plus simple d'installer ce module est la commande PowerShell suivante :
Install-Module -Name Invoke-ArgFuscator
Pour utiliser le module, appelez la fonction Invoke-ArgFuscator dans PowerShell, par exemple :
a. Pour passer une ligne de commande que vous souhaitez obscurcir comme argument de ligne de commande (en supposant qu'elle soit prise en charge par ArgFuscator.net) :
# Windows
powershell /c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
b. Pour utiliser vos propres fichiers de modèle1 :
# Windows
powershell /c "Invoke-ArgFuscator -InputFile path\to\file.json"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -InputFile path/to/file.json"
Clonez ce dépôt sur votre appareil.
Appelez Invoke-ArgFuscator.ps1 via PowerShell, par exemple :
a. Pour exécuter en mode interactif, transmettez le chemin d'un fichier de modèle1 via l'entrée standard (stdin) :
# Windows
powershell .\Invoke-ArgFuscator.ps1
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1
b. Pour transmettre le chemin du fichier de modèle1 comme argument de ligne de commande :
# Windows
powershell .\Invoke-ArgFuscator.ps1 -InputFile "path\to\file.json"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -InputFile "path/to/file.json"
c. Pour passer une ligne de commande que vous souhaitez obscurcir comme argument de ligne de commande :
Notez que cela nécessite que le dossier models/ soit présent dans le même dossier que Invoke-ArgFuscator.ps1.
# Windows
powershell .\Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
Étant donné qu'Invoke-ArgFuscator est un module PowerShell, vous pouvez ajouter les fonctionnalités de ce projet à votre propre projet PowerShell.
Pour tirer parti d'Invoke-ArgFuscator, ajoutez
Import-Module Invoke-ArgFuscator
à votre fichier PowerShell, puis appelez-la de l'une des manières suivantes :
Invoke-ArgFuscator -InputFile $InputFile -n $n
Invoke-ArgFuscator -Command $Command -Platform $Platform -n $n
avec
$InputFile une string contenant un chemin de fichier (relatif/absolu) vers le fichier de modèle, $Profile un entier supérieur ou égal à 0 représentant l'index de profil dans le chemin de fichier fourni qui doit être ciblé (facultatif), et $n un integer supérieur à 0 pour le nombre d'équivalents de ligne de commande obscurcis à produire (facultatif) ; ou,$Command une string contenant la ligne de commande que vous souhaitez obscurcir, $Platform une string avec la plateforme concernée (par exemple windows, facultatif), et $n un integer supérieur à 0 pour le nombre d'équivalents de ligne de commande obscurcis à produire (facultatif).Ils peuvent être générés via ArgFuscator.net à l'aide de l'option « Téléchargement », ou téléchargés depuis GitHub. ↩ ↩2 ↩3