
Ferramenta de pós-exploração para ocultar processos de aplicações de monitoramento
#ProcessHider
Esta ferramenta é permitida apenas para testes de penetração e outras atividades de white-hat. O uso ilegal é absolutamente proibido!
ProcessHider é uma ferramenta de pós-exploração projetada para ocultar processos de ferramentas de monitoramento como Gerenciador de Tarefas e Process Explorer, impedindo assim que os administradores descubram processos de payload. A ferramenta funciona em versões de 32 e 64 bits, detectando automaticamente a versão do SO e usando a versão correta da ferramenta.
ProcessHider está disponível como arquivo EXE ou como script Powershell.
Esta ferramenta está sob a licença BSD-3:
Copyright (c) 2016, M00nRise
Todos os direitos reservados.
É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrição, incluindo, sem limitação, os direitos de usar, copiar, modificar, fundir, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e permitir que as pessoas a quem o Software é fornecido o façam, sujeitas às seguintes condições:
O aviso de copyright acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.
O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM GARANTIA DE QUALQUER TIPO, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIALIZAÇÃO, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU TITULARES DOS DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER RECLAMAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.
Para construir o projeto, use "build-me.bat" que está no diretório raiz. Existem duas versões do script completo: EXE e Powershell.
Para usar o EXE, chame o arquivo principal, ProcessHider, que está em MainFile, a partir do cmd, usando as seguintes opções:
Para usar o Powershell, use Powershell\Output\fullScript.ps1, com os mesmos argumentos que o exe.
Exemplo de uso:
`ProcessHider -i 5454,3672 -n "chrome.exe,notepad.exe" -x "cmd.exe"`
Nota: você precisa usar pelo menos um de -i ou -n. O ocultador garantirá que também se oculte.
O projeto utiliza as seguintes bibliotecas e projetos:
O script findvs foi extraído do EasyHook: https://easyhook.github.io/
Invoke-ReflectivePEInjection por clymb3r, disponível em https://github.com/PowerShellMafia/PowerSploit/blob/master/CodeExecution/Invoke-ReflectivePEInjection.ps1
Xgetopt por Hans Dietrich, disponível em http://www.codeproject.com/Articles/1940/XGetopt-A-Unix-compatible-getopt-for-MFC-and-Win32
NtHookEngine por Daniel Pistelli, disponível em http://www.codeproject.com/Articles/21414/Powerful-x-x-Mini-Hook-Engine
ReflectiveDLLInjection por Stephen Fewer da Harmony Security, disponível em https://github.com/stephenfewer/ReflectiveDLLInjection
"Easy way to set up global API hooks" por Sergey Podobry, Apriorit Inc, disponível em http://www.codeproject.com/Articles/49319/Easy-way-to-set-up-global-API-hooks
Não há dependência dessas bibliotecas nem do runtime VC++, pois todas estão vinculadas estaticamente
Primeiro, o ocultador verifica se o SO é de 32 ou 64 bits e escolhe a versão correta a ser usada. Em seguida, inicia um daemon, que procura por uma das ferramentas de monitoramento proibidas. Quando encontra uma - usa injeção de DLL para lançar o payload - que hooka a chamada para NtQuerySystemInformation - o método que as ferramentas do SO usam para enumerar processos ativos, e exclui cada um dos processos especificados (e o daemon) dos resultados.
Contribuições são muito bem-vindas. Certifique-se de que, ao trabalhar nos scripts powershell, não trabalhe no "fullScript", mas sim no "daemon-integration" e "Invoke-ReflectivePEInjectionLite", pois o script de construção usa esses arquivos como fontes para o fullScript/