
Herramienta de post-explotación para ocultar procesos de aplicaciones de monitoreo
#ProcessHider
Esta herramienta está permitida solo para pruebas de penetración y otras actividades de sombrero blanco. ¡El uso ilegal está absolutamente prohibido!
ProcessHider es una herramienta de post-explotación diseñada para ocultar procesos de herramientas de monitoreo como el Administrador de tareas y Process Explorer, evitando así que los administradores descubran los procesos del payload. La herramienta funciona tanto en versiones de 32 como de 64 bits, detectando automáticamente la versión del sistema operativo y utilizando la versión correcta de la herramienta.
ProcessHider está disponible como un archivo EXE o como un script de Powershell.
Esta herramienta está bajo la licencia BSD-3:
Copyright (c) 2016, M00nRise
Todos los derechos reservados.
Por la presente se otorga permiso, libre de cargos, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el "Software"), para tratar el Software sin restricción, incluidos, sin limitación, los derechos de usar, copiar, modificar, fusionar, publicar, distribuir, sublicenciar y/o vender copias del Software, y para permitir a las personas a las que se les proporcione el Software hacer lo mismo, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso deberán incluirse en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO PERO NO LIMITADO A GARANTÍAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. EN NINGÚN CASO LOS AUTORES O TITULARES DEL COPYRIGHT SERÁN RESPONSABLES POR NINGÚN RECLAMO, DAÑO U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRA MANERA, DERIVADA DE, FUERA DE O EN CONEXIÓN CON EL SOFTWARE O EL USO U OTRO TIPO DE ACCIONES EN EL SOFTWARE.
Para compilar el proyecto, use "build-me.bat" que se encuentra en el directorio raíz. Hay dos versiones del script completo: EXE y Powershell.
Para usar el EXE, llame al archivo principal, ProcessHider, que está en MainFile, desde cmd, usando las siguientes opciones:
Para usar Powershell, use Powershell\Output\fullScript.ps1, con los mismos argumentos que el exe.
Ejemplo de uso:
`ProcessHider -i 5454,3672 -n "chrome.exe,notepad.exe" -x "cmd.exe"`
Nota: debe usar al menos uno de -i o -n. El ocultador se asegurará de ocultarse a sí mismo también.
El proyecto utiliza las siguientes bibliotecas y proyectos:
El script findvs está tomado de EasyHook: https://easyhook.github.io/
Invoke-ReflectivePEInjection de clymb3r, disponible en https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.ps1
Xgetopt de Hans Dietrich, disponible en http://www.codeproject.com/Articles/1940/XGetopt-A-Unix-compatible-getopt-for-MFC-and-Win32
NtHookEngine de Daniel Pistelli, disponible en http://www.codeproject.com/Articles/21414/Powerful-x-x-Mini-Hook-Engine
ReflectiveDLLInjection de Stephen Fewer de Harmony Security, disponible en https://github.com/stephenfewer/ReflectiveDLLInjection
"Easy way to set up global API hooks" de Sergey Podobry, Apriorit Inc, disponible en http://www.codeproject.com/Articles/49319/Easy-way-to-set-up-global-API-hooks
No hay dependencia de ninguna de esas bibliotecas ni del runtime de VC++, ya que todas están enlazadas estáticamente.
Primero, el ocultador verifica si el sistema operativo es de 32 o 64 bits, y elige la versión correcta para usar. Luego, lanza un demonio que busca una de las herramientas de monitoreo prohibidas. Cuando encuentra una, utiliza la inyección de DLL para lanzar el payload — que engancha la llamada a NtQuerySystemInformation, el método que las herramientas del sistema operativo utilizan para enumerar procesos activos, y elimina cada uno de los procesos especificados (y el demonio) de los resultados.
Las contribuciones son muy bienvenidas. Asegúrese de que al trabajar en los scripts de Powershell, no trabaje en el "fullScript" sino en "daemon-integration" e "Invoke-ReflectivePEInjectionLite", ya que el script de compilación utiliza estos archivos como fuentes para fullScript/