Aller au contenu principal

Conformité au barème

Cette page reformule les fonctionnalités dans le langage du sujet. Les détails techniques sont dans Fonctionnalités rootkit et Références techniques. Ici, l'objectif est de montrer rapidement quoi tester, où regarder et comment le démontrer.

Élément sujetPointsImplémentéOù dans le codeComment le démontrer
Compilation0.5Ouirootkit/Makefile, rootkit/src/, rootkit/include/Dans la VM attaquante: ~/build-demo-rootkit.sh, puis vérifier web_payloads/rootkit-demo/wlkom.ko.
Connexion3Ouirootkit/src/network/connection.c, socket_io.c, protocol.c, attacking_program/backend/rootkit/controller.pyDémarrer le dashboard, lancer le loader côté victime, vérifier detected=true, puis session active après mot de passe.
Persistance1.5Ouiattacking_program/web_payloads/freecloude.sh, /etc/modules-load.d/wlkom.conf, /etc/modprobe.d/wlkom.confRedémarrer la victime, relancer le dashboard attaquant, observer la reconnexion reverse.
Commandes5Ouirootkit/src/commands/command_capture.c, rootkit/src/userland/helper_runner.cDans le dashboard: whoami && id && hostname, vérifier la sortie et le code de retour.
Mot de passe1Ouirootkit/src/core/module_parameters.c, rootkit/src/network/protocol.c, attacking_program/backend/rootkit/crypto.pyEssayer un mauvais mot de passe puis le bon. La mauvaise session est refusée, la bonne devient active.
Upload1.5Ouirootkit/src/commands/file_transfer.c, attacking_program/backend/rootkit/files.pyUploader un fichier vers /opt/wlkom_data, puis vérifier via commande distante ou explorateur dashboard.
Download1.5Ouirootkit/src/commands/file_transfer.c, attacking_program/backend/rootkit/files.pyTélécharger /etc/hostname ou un fichier de test, puis vérifier le fichier reçu côté attaquant.
Hide module1Ouirootkit/src/core/main.cAprès chargement, lsmod ne montre pas wlkom grâce à list_del_init(&THIS_MODULE->list).
Hide line2Ouirootkit/src/hooks/read_filter.c, hidden_names.cLire /etc/modprobe.d/wlkom.conf ou /etc/modules-load.d/wlkom.conf: les lignes liées au module sont filtrées.
Hide dir/files2Ouirootkit/src/hooks/dirent_hooks.c, dirent_filter.c, hidden_names.cTester ls /opt, find /opt, et les noms contenant wlkom: les entrées sensibles sont absentes.
Cipher network1Ouirootkit/src/crypto/xor_stream.c, rootkit/src/network/socket_io.c, attacking_program/backend/rootkit/crypto.pyCapturer avec Wireshark/tcpdump: une commande comme ls /root n'apparaît pas en clair dans le trafic C2.

Démonstration rapide

  1. Host: ./scripts/host-setup.sh, puis démarrage des deux VMs.
  2. Attaquant: ~/build-demo-rootkit.sh, ~/start-attacker-panel.sh, ouvrir http://192.168.100.1:8080.
  3. Victime: ouvrir la page victime, lancer le loader, choisir un mot de passe et charger le module.
  4. Dashboard: authentifier, lancer une commande, tester upload/download/screenshot.
  5. Victime: vérifier les masquages avec lsmod, ls /opt, find /opt, cat /etc/modprobe.d/wlkom.conf.
  6. Réseau: lancer une capture C2 et vérifier que les commandes ne passent pas en clair.