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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/ayushsinha322/heartbleed-lab
Криминалистика памятиАнализ уязвимостейЭксплуатацияВеб-безопасностьКриптографияТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
GitHub
ayushsinha322/heartbleed-lab

heartbleed-lab

Автономная лаборатория Heartbleed (CVE-2014-0160): собирает уязвимый OpenSSL 1.0.1f в Docker и включает Python PoC для утечки памяти, предназначенный для авторизованного тестирования.

Репозиторий
10 часов назадЕщё не проверено

heartbleed-lab

Небольшая автономная лаборатория для CVE-2014-0160 (Heartbleed) — переполнение при чтении в heartbeat-расширении TLS в OpenSSL 1.0.1–1.0.1f. Она собирает действительно уязвимый OpenSSL из зафиксированного upstream-исходника в одноразовом контейнере, запускает его и включает клиент proof-of-concept, который утекает живую память процесса.

Только для авторизованного использования в лаборатории. Всё здесь нацелено на localhost / контейнер, который вы запускаете сами. Не направляйте PoC на любой хост, которым вы не владеете и на тестирование которого у вас нет явного разрешения — неавторизованное использование Heartbleed против живых систем является преступлением в большинстве юрисдикций. Heartbleed был исправлен в OpenSSL 1.0.1g (апрель 2014); эта лаборатория существует, чтобы понять баг, а не атаковать кого-либо.

Что внутри

ПутьЧто это
DockerfileСобирает OpenSSL 1.0.1f из upstream-исходника с проверкой контрольной суммы и включёнными heartbeat, генерирует одноразовый сертификат и запускает openssl s_server — настоящий уязвимый сервер.
exploit/heartbleed.pyPoC на Python 3. Отправляет некорректный heartbeat и выводит hexdump памяти, которую сервер утекает обратно. Завершается с кодом 0, если цель уязвима, 1 если пропатчена.
demo/server.pyНаивная симуляция на чистом Python — OpenSSL не задействован. Она слепо возвращает 64 КБ и не утекает ничего реального; оставлена только чтобы показать форму ответа при переполнении чтения.
demo/gen-cert.shПерегенерирует одноразовый сертификат localhost для демо.

Приватные ключи не коммитятся — сертификаты генерируются локально (см. .gitignore).

Запуск настоящей версии

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

Уязвимый сервер выводит hexdump утёкшей памяти. Запустите PoC несколько раз — каждый запрос возвращает другой срез кучи, и именно поэтому Heartbleed был настолько опасен: сессионные cookie, данные форм и материал приватного ключа — всё живёт там.

Симуляция (опционально)

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

Это не CVE — это учебная заглушка, которая всегда отвечает 64 КБ символов A.

Как работает баг

Запрос heartbeat в TLS несёт полезную нагрузку плюс поле длины. Уязвимый OpenSSL доверяет длине, указанной атакующим, и выполняет memcpy такого количества байт из буфера запроса в ответ — но запрос никогда не содержал столько данных, поэтому копирование читает за его пределами в ту смежную память процесса, что там оказалась. Исправление в 1.0.1g — это проверка границ: if (1 + 2 + payload + 16 > s->s3->rrec.length) return 0; — молча отбрасывать любой heartbeat, который заявляет больше, чем было фактически отправлено.

Устранение

  • Обновитесь до OpenSSL ≥ 1.0.1g или соберите с -DOPENSSL_NO_HEARTBEATS.
  • После компрометации считайте, что приватные ключи утекли: перевыпустите сертификаты и отзовите старые, затем смените любые сессионные токены или учётные данные, проходившие через сервер.
Скачать инструмент