
Post-Exploitation-Tool zum Verstecken von Prozessen vor Überwachungsanwendungen
#ProcessHider
Dieses Tool darf nur für Penetrationstests und andere White-Hat-Aktivitäten verwendet werden. Eine illegale Nutzung ist absolut verboten!
ProcessHider ist ein Post-Exploitation-Tool, das entwickelt wurde, um Prozesse vor Überwachungswerkzeugen wie dem Task-Manager und dem Process Explorer zu verstecken und so zu verhindern, dass Administratoren die Prozesse der Payload entdecken. Das Tool funktioniert sowohl auf 32- als auch auf 64-Bit-Versionen, indem es selbstständig die Betriebssystemversion erkennt und die richtige Version des Tools verwendet.
ProcessHider ist als EXE-Datei oder als PowerShell-Skript verfügbar.
Dieses Tool steht unter der BSD-3-Lizenz:
Copyright (c) 2016, M00nRise
Alle Rechte vorbehalten.
Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, kostenlos die Erlaubnis erteilt, die Software ohne Einschränkung zu nutzen, einschließlich und ohne Einschränkung der Rechte zur Verwendung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Weitergabe, Unterlizenzierung und/oder zum Verkauf von Kopien der Software und um Personen, denen die Software zur Verfügung gestellt wird, dies unter folgenden Bedingungen zu gestatten:
Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD OHNE MÄNGELGEWÄHR BEREITGESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF GEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER HAFTBAR FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE VERPFLICHTUNGEN, OB AUS VERTRAG, UNERLAUBTER HANDLUNG ODER ANDERWEITIG, DIE SICH AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ERGEBEN.
Um das Projekt zu erstellen, verwenden Sie „build-me.bat”, das sich im Stammverzeichnis befindet. Es gibt zwei Versionen des vollständigen Skripts: EXE und PowerShell.
Um die EXE zu verwenden, rufen Sie die Hauptdatei ProcessHider (unter MainFile) von der Eingabeaufforderung aus mit den folgenden Optionen auf:
-i – Prozess-IDs angeben, die versteckt werden sollen, durch Kommas getrennt (ohne Leerzeichen!)-n – Prozessnamen angeben, die versteckt werden sollen, durch Kommas getrennt (wieder ohne Leerzeichen)-x – zu vermeidende Überwachungsanwendungen angeben, zusätzlich zu den Standardanwendungen (powershell.exe, taskmgr.exe, procexp.exe, procexp64.exe, perfmon.exe)Um PowerShell zu verwenden, nutzen Sie „Powershell\Output\fullScript.ps1” mit denselben Argumenten wie bei der EXE.
Beispiel zur Verwendung:
`ProcessHider -i 5454,3672 -n "chrome.exe,notepad.exe" -x "cmd.exe"`
Hinweis: Sie müssen mindestens eine der Optionen -i oder -n verwenden. Der Hider stellt sicher, dass er sich selbst ebenfalls verbirgt.
Das Projekt verwendet die folgenden Bibliotheken und Projekte:
Das findvs-Skript stammt von EasyHook: https://easyhook.github.io/
Invoke-ReflectivePEInjection von clymb3r, verfügbar unter https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.ps1
Xgetopt von Hans Dietrich, verfügbar unter http://www.codeproject.com/Articles/1940/XGetopt-A-Unix-compatible-getopt-for-MFC-and-Win32
NtHookEngine von Daniel Pistelli, verfügbar unter http://www.codeproject.com/Articles/21414/Powerful-x-x-Mini-Hook-Engine
ReflectiveDLLInjection von Stephen Fewer von Harmony Security, verfügbar unter https://github.com/stephenfewer/ReflectiveDLLInjection
„Easy way to set up global API hooks” von Sergey Podobry, Apriorit Inc, verfügbar unter http://www.codeproject.com/Articles/49319/Easy-way-to-set-up-global-API-hooks
Es besteht keine Abhängigkeit von diesen Bibliotheken oder der VC++-Laufzeit, da alle statisch verknüpft sind.
Zunächst prüft der Hider, ob das Betriebssystem 32-Bit oder 64-Bit ist, und wählt die entsprechende Version aus. Dann startet er einen Daemon, der nach einem der verbotenen Überwachungswerkzeuge sucht. Wenn eines gefunden wird, verwendet er DLL-Injection, um die Payload zu starten – welche den Aufruf von NtQuerySystemInformation hookt (die Methode, die die Betriebssystemtools zur Auflistung aktiver Prozesse verwenden) und jeden der angegebenen Prozesse (sowie den Daemon) aus den Ergebnissen löscht.
Beiträge sind sehr willkommen. Stellen Sie sicher, dass Sie bei der Arbeit an den PowerShell-Skripten nicht am „fullScript”, sondern an „daemon-integration” und „Invoke-ReflectivePEInjectionLite” arbeiten, da das Build-Skript diese Dateien als Quellen für das fullScript/ verwendet.