
Outil post-exploitation pour masquer des processus aux applications de surveillance.
#ProcessHider
Cet outil est autorisé à être utilisé uniquement pour des tests de pénétration et autres activités de type white-hat. Toute utilisation illégale est absolument interdite !
ProcessHider est un outil de post-exploitation conçu pour masquer des processus des outils de surveillance tels que le Gestionnaire de tâches et Process Explorer, empêchant ainsi les administrateurs de découvrir les processus de la charge utile. L'outil fonctionne sur les versions 32 et 64 bits, en détectant lui-même la version du système d'exploitation et en utilisant la version appropriée de l'outil.
ProcessHider est disponible sous forme de fichier EXE ou de script Powershell.
Cet outil est sous licence BSD-3 :
Copyright (c) 2016, M00nRise
Tous droits réservés.
Par la présente, une autorisation est accordée, gratuitement, à toute personne obtenant une copie de ce logiciel et des fichiers de documentation associés (le « Logiciel »), de traiter le Logiciel sans restriction, y compris, sans limitation, les droits d'utiliser, de copier, de modifier, de fusionner, de publier, de distribuer, de sous-licencier et/ou de vendre des copies du Logiciel, et de permettre aux personnes à qui le Logiciel est fourni de le faire, sous réserve des conditions suivantes :
L'avis de copyright ci-dessus et cet avis d'autorisation doivent être inclus dans toutes les copies ou parties substantielles du Logiciel.
LE LOGICIEL EST FOURNI « EN L'ÉTAT », SANS GARANTIE D'AUCUNE SORTE, EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES DE QUALITÉ MARCHANDE, D'ADÉQUATION À UN USAGE PARTICULIER ET D'ABSENCE DE CONTREFAÇON. EN AUCUN CAS, LES AUTEURS OU TITULAIRES DU COPYRIGHT NE POURRONT ÊTRE TENUS RESPONSABLES DE TOUTE RÉCLAMATION, DOMMAGE OU AUTRE RESPONSABILITÉ, QUE CE SOIT DANS LE CADRE D'UNE ACTION CONTRACTUELLE, DÉLICTUELLE OU AUTRE, DÉCOULANT DE, OU EN LIEN AVEC LE LOGICIEL OU SON UTILISATION, OU D'AUTRES OPÉRATIONS EFFECTUÉES AVEC LE LOGICIEL.
Pour construire le projet, utilisez "build-me.bat" qui se trouve dans le répertoire racine. Il existe deux versions du script complet : EXE et Powershell.
Pour utiliser l'EXE, appelez le fichier principal, ProcessHider, qui se trouve sous MainFile, à partir de cmd, en utilisant les options suivantes :
Pour utiliser le Powershell, utilisez Powershell\Output\fullScript.ps1, avec les mêmes arguments que l'EXE.
Exemple d'utilisation :
`ProcessHider -i 5454,3672 -n "chrome.exe,notepad.exe" -x "cmd.exe"`
Note : vous devez utiliser au moins l'une des options -i ou -n. Le cacheur s'assurera de se masquer également.
Le projet utilise les bibliothèques et projets suivants :
Le script findvs est tiré de EasyHook : https://easyhook.github.io/
Invoke-ReflectivePEInjection par clymb3r, disponible sur https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.ps1
Xgetopt par Hans Dietrich, disponible sur http://www.codeproject.com/Articles/1940/XGetopt-A-Unix-compatible-getopt-for-MFC-and-Win32
NtHookEngine par Daniel Pistelli, disponible sur http://www.codeproject.com/Articles/21414/Powerful-x-x-Mini-Hook-Engine
ReflectiveDLLInjection par Stephen Fewer de Harmony Security, disponible sur https://github.com/stephenfewer/ReflectiveDLLInjection
« Easy way to set up global API hooks » par Sergey Podobry, Apriorit Inc, disponible sur http://www.codeproject.com/Articles/49319/Easy-way-to-set-up-global-API-hooks
Il n'y a aucune dépendance ni sur ces bibliothèques ni sur le runtime VC++, car elles sont toutes liées statiquement.
D'abord, le cacheur vérifie si le système d'exploitation est 32 bits ou 64 bits, et choisit la version appropriée à utiliser. Ensuite, il lance un démon, qui recherche l'un des outils de surveillance interdits. Lorsqu'il en trouve un - il utilise l'injection de DLL pour lancer la charge utile - qui accroche l'appel à NtQuerySystemInformation - la méthode utilisée par les outils du système pour énumérer les processus actifs, et supprime chacun des processus spécifiés (ainsi que le démon) des résultats.
Les contributions sont les bienvenues. Assurez-vous que lorsque vous travaillez sur les scripts Powershell, ne travaillez pas sur le "fullScript" mais plutôt sur le "daemon-integration" et "Invoke-ReflectivePEInjectionLite", car le script de construction utilise ces fichiers comme sources pour le fullScript/