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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-25136-PoC — OpenSSH 9.1p1 사전 인증 이중 해제 취약점(CVE-2023-25136)을 위한 최소 Docker 기반 재현 환경으로, Python PoC 클라이언트를 통해 메모리 손상 및 서비스 거부를 시연합니다. | Kitploit
도구/GitHubGitHub/lane0218/cve-2023-25136-poc
Vulnerability AnalysisExploitationPenetration TestingLearning & EducationBinary Exploitation
GitHublane0218/cve-2023-25136-poc

CVE-2023-25136-PoC

OpenSSH 9.1p1 사전 인증 이중 해제 취약점(CVE-2023-25136)을 위한 최소 Docker 기반 재현 환경으로, Python PoC 클라이언트를 통해 메모리 손상 및 서비스 거부를 시연합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2023-25136 취약점 재현

본 프로젝트는 **OpenSSH 9.1p1 사전 인증 double free 메모리 손상 취약점(CVE-2023-25136)**을 재현하고 서버 프로세스 충돌(DoS) 효과를 관찰할 수 있는 최소 규모의 로컬 실험 환경을 제공합니다.

설명: 공식 및 주요 분석에서는 이 취약점이 기본 보안 구성에서 "원격 코드 실행으로 실제 악용하기 어렵다"고 판단합니다. 본 환경은 주로 메모리 오류 및 서비스 거부 효과를 시연하기 위한 것입니다.

환경 설명

  • 타겟(Target):

    • Docker 컨테이너에서 실행되는 OpenSSH 9.1p1 서버
    • 권한 분리 사용자 sshd가 구성되어 있음
    • double free 충돌을 쉽게 관찰하기 위해 빌드 시 --with-sandbox=no로 seccomp 샌드박스를 비활성화
    • 컨테이너 내부에서 22 포트를 수신하고, 호스트(WSL)의 2222 포트로 매핑
  • 공격자(Attacker):

    • 타겟과 동일한 호스트 / WSL 내에 위치
    • Python3 + paramiko를 사용하여 PoC를 실행하고, 특정 SSH 클라이언트 식별자를 구성하여 사전 인증 핸드셰이크 수행

디렉토리 구조:

  • Dockerfile: OpenSSH 9.1p1 취약점 환경 이미지 빌드
  • poc.py: 사전 인증 단계에서 double free를 트리거하는 최소 PoC 클라이언트

사전 요구사항

본 디렉토리에서 아래 작업을 수행하기 전에 다음이 설치되어 있는지 확인하세요:

  • Docker (WSL2에서는 Docker Desktop 또는 WSL 내 직접 Docker 설치 권장)
  • Python 3 및 pip

1. 타겟 구축 (Docker 내 OpenSSH 9.1p1)

  1. 이미지 빌드

본 디렉토리에서 실행:

root@kitploit:~
docker build -t sshd-9.1p1-vuln .
  1. 컨테이너 시작
root@kitploit:~
docker run --rm -d --name sshd-vuln -p 2222:22 sshd-9.1p1-vuln

설명:

  • --rm: 컨테이너 종료 시 자동 삭제
  • --name sshd-vuln: 컨테이너 이름
  • -p 2222:22: 컨테이너 내부 22 포트를 호스트 2222 포트로 매핑
  1. sshd 실행 상태 확인
root@kitploit:~
docker ps

다음과 유사한 출력을 볼 수 있습니다:

root@kitploit:~
CONTAINER ID   IMAGE              COMMAND               STATUS          PORTS
xxxxxx         sshd-9.1p1-vuln    "/usr/sbin/sshd -D…"  Up ...          0.0.0.0:2222->22/tcp

2. 공격자 PoC 사용 방법

1. PoC 종속성 설치

본 디렉토리에서 실행:

root@kitploit:~
pip install paramiko

2. PoC 스크립트 설명 (poc.py)

poc.py는 paramiko.Transport를 사용하여 대상 SSH 서버와의 연결을 능동적으로 설정하고, 사전 인증 단계에서 클라이언트 식별자를 위조하여 double free를 시도합니다.

주요 기능:

  • 기본 대상: 127.0.0.1:2222 (로컬 Docker 컨테이너)
  • 기본 클라이언트 식별자: SSH-2.0-PuTTY_Release_0.64
  • 간단한 명령줄 인수 제공:
    • -t/--target: 대상 IP (기본 127.0.0.1)
    • -p/--port: 대상 포트 (기본 2222)
    • -c/--client-id: 위조할 SSH 클라이언트 식별자
    • --timeout: 타임아웃 (초)
    • -v/--verbose: 상세 오류 정보 출력

3. PoC 실행

컨테이너 sshd-vuln이 실행 중인 상태에서 본 디렉토리에서 실행:

root@kitploit:~
python3 poc.py

또는 명시적으로 인수 지정:

root@kitploit:~
python3 poc.py -t 127.0.0.1 -p 2222 -v

클라이언트 예상 출력 예시:

root@kitploit:~
==============================================
   CVE-2023-25136 OpenSSH Pre-Auth Double Free
              Minimal PoC Client
==============================================
[2024-xx-xx xx:xx:xx] Target: 127.0.0.1:2222, ClientID: SSH-2.0-PuTTY_Release_0.64
[+] Sending crafted pre-auth handshake...
[-] Authentication failed or connection closed early.
     서버 sshd 로그에서 'free(): double free detected' 등의 메시지가 나타나는지 확인하여 CVE-2023-25136이 트리거되었는지 확인하세요.

설명:

  • 클라이언트에서 Authentication failed 또는 connection closed가 발생하는 것은 예상된 동작입니다. 서버의 사전 인증 하위 프로세스가 처리 중 충돌하거나 연결을 강제로 종료할 수 있기 때문입니다.

3. 예상 결과 및 확인 방법

1. 서버(컨테이너) 로그

PoC 실행 후 호스트에서 컨테이너 로그 확인:

root@kitploit:~
docker logs sshd-vuln

다음과 유사한 출력이 예상됩니다:

root@kitploit:~
Server listening on 0.0.0.0 port 22.
Server listening on :: port 22.
Invalid user  from 172.17.0.1 port xxxxx
free(): double free detected in tcache 2

여기서:

  • Invalid user: PoC가 빈 사용자 이름을 사용하므로 OpenSSH가 잘못된 사용자 시도를 기록
  • free(): double free detected in tcache 2: glibc가 double free를 감지하고 현재 sshd 하위 프로세스를 종료합니다. 이것이 본 실험에서 관찰하려는 메모리 손상/DoS 현상입니다.

참고: 이 줄을 확인할 수 있도록 OpenSSH 빌드 시 seccomp 샌드박스를 비활성화했습니다(--with-sandbox=no). 그렇지 않으면 샌드박스가 double free 전에 비정상 동작을 차단하고 하위 프로세스를 바로 종료할 수 있습니다.

2. 효과의 성격

  • 본 실험 환경에서는 PoC가 **사전 인증 하위 프로세스의 충돌(DoS)**을 안정적으로 트리거하여 현재 SSH 연결을 실패하게 만듭니다. 주 sshd 프로세스는 이후 연결을 위해 새로운 하위 프로세스를 계속 생성합니다.
  • 사전 인증 하위 프로세스는 낮은 권한 + chroot 환경에서 실행되며 기본적으로 여러 보안 메커니즘이 적용되어 있으므로, 연구자들은 일반적으로 이 double free 하나만으로 원격 코드 실행을 달성하는 것이 매우 어렵다고 판단합니다.
도구 다운로드