Glossaire débutant
Cette page donne les mots importants avant d'entrer dans les pages techniques. Elle sert de lecture rapide quand un terme revient dans le code, dans les logs ou dans une autre page. Les définitions restent courtes. Les explications complètes sont dans Références techniques.
| Terme | Définition courte | Dans ce projet |
|---|---|---|
| Kernel | Partie centrale de Linux. Il gère le matériel, la mémoire, les processus, les fichiers et le réseau. | wlkom.ko s'exécute dans le kernel. Une erreur peut donc bloquer toute la VM. |
| Userland | Programmes classiques lancés par un utilisateur ou par le système. | Flask, React, /bin/sh, tar, base64, freecloude.py et freecloude.sh sont en userland. |
Module .ko | Fichier kernel chargeable dynamiquement, sans recompiler tout Linux. | wlkom.ko est compilé côté attaquant puis chargé côté victime avec insmod. |
| Syscall | Appel système: frontière entre userland et kernel. | Le module intercepte des syscalls de lecture, listing et accès par chemin. |
getdents | Syscall qui renvoie les entrées d'un dossier. | Le hook retire les fichiers et dossiers liés à wlkom avant que ls ou find les voient. |
read | Syscall qui lit des octets depuis un fichier ou un descripteur. | Le hook retire certaines lignes de persistance dans les fichiers texte sensibles. |
openat | Syscall qui ouvre un fichier en partant d'un dossier de référence. | Le hook refuse l'ouverture directe de chemins protégés comme /opt/wlkom_data. |
statx / fstatat | Syscalls qui lisent les métadonnées d'un fichier. | Les hooks empêchent de découvrir l'existence des chemins protégés par simple test. |
mmap | Mécanisme qui mappe un fichier directement en mémoire. | Le module refuse mmap sur les fichiers de persistance pour éviter de contourner read. |
ftrace | Infrastructure Linux de tracing pouvant rediriger une fonction kernel. | Utilisée pour détourner les syscalls sans patcher directement une table système. |
kprobe | Mécanisme pour instrumenter temporairement une fonction kernel. | Sert surtout à retrouver kallsyms_lookup_name et résoudre les symboles nécessaires. |
pt_regs | Structure qui contient les registres CPU au moment d'un appel. | Les hooks lisent di, si, dx, r10, r8 pour récupérer les arguments des syscalls. |
uaccess | Famille d'API pour copier entre mémoire userland et mémoire kernel. | copy_from_user, copy_to_user et clear_user évitent de toucher un pointeur userland brut. |
struct file | Objet kernel représentant un fichier ouvert. | fdget() permet de retrouver le fichier derrière un file descriptor. |
d_path | Fonction qui transforme un chemin kernel en texte lisible. | Sert à savoir si un fd pointe vers /opt/wlkom_data ou vers un fichier de persistance. |
vermagic | Chaîne de compatibilité intégrée dans un module kernel. | Si vermagic ne correspond pas au noyau victime, insmod refuse le module. |
call_usermodehelper | API kernel qui lance un programme userland. | Le module lance /bin/sh -c pour exécuter les commandes, transferts et screenshots. |
kthread | Thread créé et piloté par le kernel. | wlkom_network_thread maintient la connexion reverse vers l'attaquant. |
user_path_at | API kernel qui résout un chemin userland en objet VFS. | Sert à détecter les symlinks et les chemins relatifs vers les zones protégées. |
GFP_KERNEL | Mode d'allocation mémoire normal côté kernel. | Utilisé par kmalloc, kzalloc, kvzalloc et __get_free_page. |
| Connexion reverse | La machine contrôlée initie la connexion vers le contrôleur. | La victime contacte 192.168.100.1:4444. Elle n'ouvre pas de port d'écoute. |
| Persistance | Mécanisme qui fait revenir le programme après reboot. | modules-load.d recharge wlkom, et modprobe.d redonne IP, port et mot de passe. |
| C2 | Command and Control: canal de pilotage entre l'attaquant et l'implant. | Le dashboard envoie des commandes au module via TCP chiffré. |
| Chunk | Morceau d'un fichier ou d'un flux. | Upload et download sont découpés pour rester sous les limites de buffer du module. |
| Offset crypto | Position courante dans un chiffrement de flux. | Les offsets évitent de casser le XOR quand TCP fragmente ou regroupe les messages. |
modules-load.d | Configuration systemd qui liste des modules à charger au boot. | Le fichier wlkom.conf contient la ligne wlkom. |
modprobe.d | Configuration qui donne des options à modprobe. | Le fichier wlkom.conf donne attacker_ip, command_port et password. |
Lecture conseillée
Après ce glossaire, lire Cycle de vie pour comprendre le scénario complet, puis Références techniques pour les détails noyau.