Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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 하트비트 처리의 프레이밍 불일치를 연구하기 위한 교육용 실습 환경.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

하트블리드 실습실

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

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

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

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

현재 프로젝트 구조

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

아키텍처

root@kitploit:~
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를 수행합니다
    • 변조된 하트비트 요청을 전송합니다
    • 누출된 메모리 응답을 수신합니다

    하트블리드 데모

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

    root@kitploit:~
    payload_length > real payload size
    

    예시:

    root@kitploit:~
    Declared payload length: 0x4000
    Real payload: 1 byte ("A")
    

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


    실습실 실행

    컨테이너 빌드 및 시작

    root@kitploit:~
    sudo COMPOSE_HTTP_TIMEOUT=300 docker-compose up --build
    

    클라이언트 컨테이너 접속

    root@kitploit:~
    sudo docker exec -it heartbleed-client bash
    

    하트블리드 개념 증명 실행

    root@kitploit:~
    python attacker.py
    

    성공적인 출력 예시

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

    연구 목표

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

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

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

    root@kitploit:~
    HTTP Request Smuggling
    vs
    TLS Heartbeat Parsing Failures
    

    다음 관점에서:

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

    향후 작업

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

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

    참고자료

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

    면책조항

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

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