
Инструмент пост-эксплуатации для сокрытия процессов от мониторинговых приложений
#ProcessHider
Этот инструмент разрешено использовать только для тестирования на проникновение и других видов белых шляп. Незаконное использование строго запрещено!
ProcessHider — это инструмент пост-эксплуатации, предназначенный для сокрытия процессов от средств мониторинга, таких как Task Manager и Process Explorer, тем самым предотвращая обнаружение процессов полезной нагрузки администраторами. Инструмент работает как на 32-битных, так и на 64-битных версиях, автоматически определяя версию ОС и используя соответствующую версию инструмента.
ProcessHider доступен в виде EXE-файла или скрипта PowerShell.
Этот инструмент распространяется под лицензией BSD-3:
Copyright (c) 2016, M00nRise
Все права защищены.
Настоящим предоставляется разрешение, бесплатно, любому лицу, получившему копию данного программного обеспечения и сопутствующей документации (далее — «Программное обеспечение»), на использование Программного обеспечения без ограничений, включая, без ограничения, права на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также на разрешение лицам, которым Программное обеспечение предоставлено, делать это при соблюдении следующих условий:
Указанное выше уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ КОММЕРЧЕСКОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ КОНКРЕТНОЙ ЦЕЛИ И ОТСУТСТВИЯ НАРУШЕНИЙ. НИ В КОЕМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, КАК В СВЯЗИ С ДОГОВОРОМ, ДЕЛИКТОМ ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ИЗ ИСПОЛЬЗОВАНИЯ ИЛИ ДРУГИХ ДЕЙСТВИЙ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.
Чтобы собрать проект, используйте «build-me.bat», находящийся в корневом каталоге. Существуют две версии полного скрипта: EXE и PowerShell.
Чтобы использовать EXE, вызовите основной файл ProcessHider, который находится в MainFile, из командной строки, используя следующие параметры:
Чтобы использовать PowerShell, используйте Powershell\Output\fullScript.ps1 с теми же аргументами, что и для EXE.
Пример использования:
`ProcessHider -i 5454,3672 -n "chrome.exe,notepad.exe" -x "cmd.exe"`
Примечание: необходимо использовать хотя бы один из параметров -i или -n. Хайдер позаботится о том, чтобы скрыть и сам себя.
Проект использует следующие библиотеки и проекты:
Скрипт findvs взят из EasyHook: https://easyhook.github.io/
Invoke-ReflectivePEInjection от clymb3r, доступен по адресу https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.ps1
Xgetopt от Hans Dietrich, доступен по адресу http://www.codeproject.com/Articles/1940/XGetopt-A-Unix-compatible-getopt-for-MFC-and-Win32
NtHookEngine от Daniel Pistelli, доступен по адресу http://www.codeproject.com/Articles/21414/Powerful-x-x-Mini-Hook-Engine
ReflectiveDLLInjection от Stephen Fewer из Harmony Security, доступен по адресу https://github.com/stephenfewer/ReflectiveDLLInjection
«Easy way to set up global API hooks» от Sergey Podobry, Apriorit Inc, доступен по адресу http://www.codeproject.com/Articles/49319/Easy-way-to-set-up-global-API-hooks
Нет зависимости ни от этих библиотек, ни от VC++ runtime, так как все они статически слинкованы
Сначала хайдер проверяет, является ли ОС 32- или 64-битной, и выбирает соответствующую версию для использования. Затем он запускает демон, который ищет одно из запрещённых средств мониторинга. Когда находит — использует внедрение DLL для запуска полезной нагрузки, которая перехватывает вызов NtQuerySystemInformation — метод, используемый средствами ОС для перечисления активных процессов, и удаляет каждый из указанных процессов (а также демон) из результатов.
Вклад приветствуется. При работе со скриптами PowerShell убедитесь, что вы работаете не с «fullScript», а с «daemon-integration» и «Invoke-ReflectivePEInjectionLite», так как скрипт сборки использует эти файлы как источники для fullScript/