Hoy os traemos un interesante proyecto llamado shadow-rs, diseñado para crear un rootkit en el kernel de Windows utilizando el lenguaje Rust. El objetivo es demostrar técnicas avanzadas para el desarrollo de rootkits, aprovechando las características de seguridad y rendimiento del lenguaje Rust.
Características
- Process (Hide / Unhide) ✅
- Process Signature (PP / PPL) ✅
- Process Protection (Anti-Kill / Dumping) ✅
- Elevate Process to System ✅
- Terminate Process ✅
- Lists protected and hidden processes currently on the system ✅
- Thread (Hide / Unhide) ✅
- Thread Protection (Anti-Kill) ✅
- Lists protected and hidden threads currently on the system ✅
- Driver (Hide / Unhide) ✅
- Enumerate Driver ✅
- Support for mapping the driver in memory ✅
- DSE (Enable / Disable) ✅
- Keylogger (Start / Stop) ✅
- List / Remove / Restore Callbacks
- PsSetCreateProcessNotifyRoutine ✅
- PsSetCreateThreadNotifyRoutine ✅
- PsSetLoadImageNotifyRoutine ✅
- CmRegisterCallbackEx ✅
- ObRegisterCallbacks (PsProcessType / PsThreadType) ✅
- Listing currently removed callbacks ✅
- Enumerate Module ✅
- Registry Protection (Anti-Deletion e Overwriting) ✅
- Process Injection - Shellcode (ZwCreateThreadEx) ✅
- APC Injection - Shellcode ✅
- DLL Injection (ZwCreateThreadEx) ✅
Intrucciones de compilación
Para compilar el proyecto, asegúrate de tener instalada la toolchain de Rust.
Driver
Para compilar el driver, primero ve a la carpeta driver y luego ejecuta el siguiente comando (cuando realices la primera compilación, debes ser administrador, pero después no será necesario):
cargo make default --release
Este driver se puede mapear usando kdmapper entre otras herramientas, por ejemplo, para poner soporte de mapeo, usa el comando:
cargo make default --release --features mapper
Cliente
Para crear el cliente, primero ve a la carpeta client y luego ejecuta el siguiente comando:
cargo build --release
Dado que algunas características del rootkit no son compatibles debido al mapeo del controlador, utiliza el siguiente comando para crear el cliente solo con los comandos que se pueden ejecutar con el mapping:
cargo build --release --features mapper
Intrucciones de instalación
Habilitar el modo de prueba o el modo de firma de prueba
bcdedit /set testsigning on
[Opcional] Depuración mediante Windbg
bcdedit /debug on
bcdedit /dbgsettings net hostip:<IP> port:<PORT>
Crear/iniciar servicio
Puede utilizar el Service Control Manager o el OSR Driver Loader para cargar el controlador.
Más info y desarrollo de proyecto en https://github.com/joaoviictorti/shadow-rs
Comentarios
Publicar un comentario