Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
heartbleed-lab — CVE-2014-0160(Heartbleed)과 TLS 하트비트 처리의 프레이밍 불일치를 연구하기 위한 교육용 실습 환경. | Kitploit
도구/GitHubGitHub/victoriacfigueiredo/heartbleed-lab
Vulnerability AnalysisNetwork SecurityCryptographyLearning & EducationBinary ExploitationLabs & Practice
GitHubvictoriacfigueiredo/heartbleed-lab

heartbleed-lab

CVE-2014-0160(Heartbleed)과 TLS 하트비트 처리의 프레이밍 불일치를 연구하기 위한 교육용 실습 환경.

저장소 보기
144개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

하트블리드 실습실

Docker 내 실제 취약한 OpenSSL 환경을 사용하여 하트블리드 취약점(CVE-2014-0160)을 연구하기 위한 교육용 실습실입니다.

이 프로젝트는 OpenSSL 1.0.1f를 사용하여 취약한 TLS 서버를 재현하고, 변조된 하트비트 패킷이 메모리 노출을 유발하는 방식을 시연하기 위해 사용자 정의 원시 TLS 하트비트 클라이언트를 구현합니다.

이 실습실은 교육 및 연구 목적으로 만들어졌으며, 특히 다음을 연구하기 위해 설계되었습니다:

  • TLS 레코드 프레이밍
  • 하트비트 확장 파싱
  • 메모리 노출 취약점
  • 파서 신뢰 실패
  • 프로토콜 간 프레이밍 불일치
  • 하트블리드와 HTTP 역동기화 취약점 간의 개념적 유사성

현재 프로젝트 구조

heartbleed-lab/
├── client/
│   ├── attacker.py
│   └── Dockerfile
│
├── vulnerable/
│   ├── Dockerfile
│   └── server/
│
├── fixed/
│   ├── Dockerfile
│   └── server/
│
├── docs/
│   └── diagrams/
│
├── notes/
│
├── docker-compose.yml
├── .gitignore
└── README.md

아키텍처

heartbleed-client
        ↓
 Docker internal network
        ↓
vulnerable-heartbleed

조건:

  • heartbleed-client는 원시 TLS 레코드를 전송합니다
  • vulnerable-heartbleed는 OpenSSL 1.0.1f를 실행합니다
  • 통신은 격리된 Docker 네트워크 내에서 이루어집니다

취약한 환경

취약한 서버는 다음을 사용합니다:

  • Ubuntu 14.04
  • OpenSSL 1.0.1f (2014년 취약한 릴리스)
  • openssl s_server

이 환경은 원래 하트블리드 동작을 재현하도록 의도적으로 구성되었습니다.


구현된 기능

취약한 TLS 서버

  • 실제 OpenSSL 1.0.1f 빌드
  • TLS 핸드셰이크 지원
  • 하트비트 확장 활성화
  • Docker 격리 환경

원시 TLS 하트비트 클라이언트

클라이언트 구현:

  • 원시 TCP 소켓을 생성합니다
  • 수제 TLS 레코드를 전송합니다
  • 수동 TLS ClientHello를 수행합니다
  • 변조된 하트비트 요청을 전송합니다
  • 누출된 메모리 응답을 수신합니다

하트블리드 데모

현재 구현은 변조된 하트비트 패킷을 전송하여 원래 하트블리드 동작을 재현합니다. 조건:

payload_length > real payload size

예시:

Declared payload length: 0x4000
Real payload: 1 byte ("A")

취약한 서버는 선언된 길이를 잘못 신뢰하고 실제 페이로드 경계를 넘어 메모리 내용을 응답합니다.


실습실 실행

컨테이너 빌드 및 시작

sudo COMPOSE_HTTP_TIMEOUT=300 docker-compose up --build

클라이언트 컨테이너 접속

sudo docker exec -it heartbleed-client bash

하트블리드 개념 증명 실행

python attacker.py

성공적인 출력 예시

[+] Sending malformed heartbeat
[+] Got TLS record: type=24 version=(3, 2) length=16384
[!!!] Heartbeat response received

연구 목표

이 프로젝트는 다음 간의 관계를 탐구합니다:

  • TLS 프레이밍 불일치
  • 파서 신뢰 실패
  • 경계 혼동
  • 변조된 길이 필드
  • 프로토콜 역동기화 개념

이 실습실의 주요 연구 관심사 중 하나는 다음을 비교하는 것입니다:

HTTP Request Smuggling
vs
TLS Heartbeat Parsing Failures

다음 관점에서:

  • 프레이밍 불일치
  • 파서 동작
  • 메타데이터 신뢰 가정

향후 작업

계획된 다음 단계는 다음과 같습니다:

  • 개선된 누출 시각화
  • 메모리 누출 파싱 도우미
  • 패치된 OpenSSL 버전과의 비교
  • 중간 TLS 프록시 실험
  • 자동화된 하트비트 변이 테스트

참고자료

  • CVE-2014-0160
  • RFC 6520 (TLS 하트비트 확장)

면책조항

이 저장소는 오로지 다음을 위해서만 존재합니다:

  • 교육
  • 학술 연구
  • 방어적 보안 연구
도구 다운로드