Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
heartbleed-lab — Lab autonome Heartbleed (CVE-2014-0160) : compile OpenSSL 1.0.1f vulnérable dans Docker et inclut un PoC Python de fuite mémoire pour des tests autorisés. | Kitploit
Outils/GitHubGitHub/ayushsinha322/heartbleed-lab
Criminalistique MémoireAnalyse des VulnérabilitésExploitationSécurité WebCryptographieTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubayushsinha322/heartbleed-lab

heartbleed-lab

Lab autonome Heartbleed (CVE-2014-0160) : compile OpenSSL 1.0.1f vulnérable dans Docker et inclut un PoC Python de fuite mémoire pour des tests autorisés.

Voir le dépôt
il y a 10 heuresPas 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

heartbleed-lab

Un petit laboratoire autonome pour CVE-2014-0160 (Heartbleed) — la surlecture du heartbeat TLS dans OpenSSL 1.0.1–1.0.1f. Il compile l'OpenSSL réellement vulnérable à partir des sources amont épinglées dans un conteneur jetable, le sert, et inclut un client proof-of-concept qui fuit la mémoire vive du processus.

Usage en laboratoire autorisé uniquement. Tout ici cible localhost / un conteneur que vous exécutez vous-même. Ne pointez pas le PoC vers un hôte que vous ne possédez pas et pour lequel vous n'avez pas l'autorisation explicite de tester — l'utilisation non autorisée de Heartbleed contre des systèmes en production est un délit dans la plupart des juridictions. Heartbleed a été corrigé dans OpenSSL 1.0.1g (avril 2014) ; ce laboratoire existe pour comprendre le bug, pas pour attaquer qui que ce soit.

Contenu

CheminDescription
DockerfileCompile OpenSSL 1.0.1f à partir des sources amont épinglées par somme de contrôle avec les heartbeats activés, génère un certificat jetable et exécute openssl s_server — le véritable serveur vulnérable.
exploit/heartbleed.pyPoC en Python 3. Envoie un heartbeat malformé et affiche en hexadécimal la mémoire que le serveur renvoie. Sort avec le code 0 si la cible est vulnérable, 1 si elle est corrigée.
demo/server.pyUne simulation naïve en Python pur — aucun OpenSSL impliqué. Il renvoie aveuglément 64 Ko et ne fuit rien de réel ; conservé uniquement pour montrer la forme d'une réponse en surlecture.
demo/gen-cert.shRégénère le certificat localhost jetable pour la démo.

Aucune clé privée n'est versionnée — les certificats sont générés localement (voir .gitignore).

Exécuter la vraie chose

root@kitploit:~
# 1. Build and start the vulnerable server (needs Docker)
docker build -t heartbleed-lab .
docker run --rm -p 8443:8443 heartbleed-lab

# 2. In another terminal, bleed it
python3 exploit/heartbleed.py 127.0.0.1 -p 8443

Un serveur vulnérable affiche un hexdump de la mémoire fuitée. Relancez le PoC plusieurs fois — chaque requête renvoie une tranche différente du tas, ce qui explique précisément pourquoi Heartbleed était si dangereux : les cookies de session, les données de formulaire et le matériel de clé privée y résident tous.

La simulation (facultatif)

root@kitploit:~
cd demo
./gen-cert.sh
python3 server.py

Ce n'est pas la CVE — c'est un stub pédagogique qui répond toujours avec 64 Ko de A.

Comment fonctionne le bug

La requête heartbeat TLS transporte une charge utile plus un champ de longueur. OpenSSL vulnérable fait confiance à la longueur fournie par l'attaquant et memcpy autant d'octets depuis le tampon de la requête vers la réponse — mais la requête n'a jamais contenu autant de données, donc la copie lit au-delà dans la mémoire adjacente du processus. Le correctif dans 1.0.1g est une vérification de bornes : if (1 + 2 + payload + 16 > s->s3->rrec.length) return 0; — abandonner silencieusement tout heartbeat qui prétend plus que ce qui a été réellement envoyé.

Remédiation

  • Mettre à niveau vers OpenSSL ≥ 1.0.1g, ou compiler avec -DOPENSSL_NO_HEARTBEATS.
  • Après exposition, considérez que les clés privées ont fuité : réémettez les certificats et révoquez les anciens, puis renouvelez tout jeton de session ou identifiant ayant transité par le serveur.
Télécharger l’outil