Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2022-24903-Heap-based-buffer-overflow-Hand-On-Lab — CVE-2022-24903 Dépassement de tampon basé sur le tas | Kitploit
Outils/GitHubGitHub/andree554/cve-2022-24903-heap-based-buffer-overflow-hand-on-lab
Analyse des VulnérabilitésExploitationApprentissage et ÉducationExploitation de BinairesLabs et Pratique
GitHubandree554/cve-2022-24903-heap-based-buffer-overflow-hand-on-lab

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

CVE-2022-24903 Dépassement de tampon basé sur le tas

Voir le dépôt
10il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Laboratoire pratique CVE-2022-24903

Auteur : Andrew Beshay Mousa

Un atelier pratique illustrant la vulnérabilité de débordement de tampon du tas dans rsyslog.

rsyslog CVE Type Protocol

Un environnement de laboratoire pratique pour reproduire et comprendre la vulnérabilité de débordement de tampon du tas de rsyslog (CVE-2022-24903) via le cadrage à comptage d'octets (octet-counted framing) dans la réception syslog TCP.


Table des matières

  • Aperçu
  • Architecture du laboratoire
  • Prérequis
  • Détails de la vulnérabilité
  • Configuration du laboratoire
    • Machine cible (Ubuntu)
    • Machine attaquante (Kali)
  • Exploitation
  • Vérification
  • Dépannage
  • Atténuation
  • Références

Aperçu

CVE-2022-24903 est une vulnérabilité de débordement de tampon du tas dans le module de réception syslog TCP (imtcp) de rsyslog, lors de l'utilisation du cadrage à comptage d'octets (RFC 5425).

Un attaquant peut envoyer un message syslog TCP malveillant avec un préfixe de comptage d'octets excessivement long, ce qui amène rsyslog à écrire au-delà des limites d'un tampon alloué sur le tas, entraînant un déni de service (DoS) ou une corruption mémoire potentielle.

AttributValeur
Identifiant CVECVE-2022-24903
Versions concernéesrsyslog < 8.2204.1
VecteurRéseau
Port514/TCP
Moduleimtcp (entrée TCP)
ImpactDoS / Corruption du tas
RCE probable ?Non (évaluation du fournisseur)

Architecture du laboratoire

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

Machines virtuelles requises

VMOSRôleIPRAMCPU
CibleUbuntu 22.04Serveur rsyslog vulnérable192.168.56.201 Go1
AttaquantKali LinuxEnvoi de l'exploit192.168.56.102 Go1

Remarque : Vous pouvez utiliser n'importe quelle version d'Ubuntu (20.04, 22.04, 24.04) comme cible. Le point clé est d'installer manuellement le paquet .deb rsyslog 8.2001.0 vulnérable.


Prérequis

  • VirtualBox ou VMware Workstation
  • ISO Ubuntu 22.04 (~2 Go)
  • VM Kali Linux (~4 Go)
  • Réseau Host-Only configuré dans votre hyperviseur
  • Connaissances de base des commandes Linux et de Python

Détails de la vulnérabilité

Qu'est-ce que le cadrage à comptage d'octets ?

Dans syslog par TCP (RFC 5425), les messages sont préfixés par leur longueur en octets :

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

Le bug

Dans les versions vulnérables de rsyslog, l'analyseur de comptage d'octets :

  1. Accumule les chiffres dans un tampon de tas de taille fixe
  2. Ne vérifie pas les limites du tampon lors de l'écriture des chiffres
  3. Continue d'écrire les chiffres même après que le comptage d'octets dépasse la valeur maximale autorisée
// 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();
}

Résultat : L'envoi de 9999... (plus de 5000 chiffres) provoque un débordement du tampon de tas, corrompant la mémoire adjacente.

Pourquoi la RCE est difficile

  • Le débordement est limité aux caractères numériques uniquement (0-9)
  • L'analyseur s'arrête au premier caractère non numérique
  • Impossible d'injecter directement du shellcode
  • Le DoS est garanti ; la RCE est considérée comme peu probable par le fournisseur

Configuration du laboratoire

Étape 1 : Configurer le réseau Host-Only

Dans votre hyperviseur, créez un réseau Host-Only :

  • Sous-réseau : 192.168.56.0/24
  • DHCP : Désactivé (adresses IP statiques)

Connectez les deux machines virtuelles à ce réseau.


Étape 2 : Machine cible (Ubuntu)

2.1 Définir une adresse IP statique

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

Collez :

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

Appliquez :

sudo netplan apply

Vérifiez :

ip addr show | grep 192.168.56.20

2.2 Arrêter et supprimer la version moderne de 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 Télécharger et installer la version vulnérable de 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

Si vous obtenez une erreur de verrou dpkg :

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

Vérifiez la version :

rsyslogd -v | head -2

Sortie attendue :

rsyslogd  8.2001.0

2.4 Désactiver AppArmor (laboratoire uniquement)

AppArmor peut empêcher rsyslog de fonctionner correctement avec l'ancien paquet :

sudo systemctl stop apparmor
sudo systemctl disable apparmor

2.5 Configurer rsyslog pour TCP 514

sudo nano /etc/rsyslog.conf

Videz le fichier et collez :

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

2.6 Ouvrir le port du pare-feu

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

2.7 Démarrer rsyslog

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

Vérifiez l'écoute :

sudo ss -tlnp | grep 514

Sortie attendue :

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

Étape 3 : Machine attaquante (Kali)

3.1 Définir une adresse IP statique

sudo nano /etc/network/interfaces

Collez :

auto eth0
iface eth0 inet static
    address 192.168.56.10
    netmask 255.255.255.0

Ou si vous utilisez 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 Créer le script d'exploitation

cd ~/Desktop
nano exploit.py
Télécharger l’outil