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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/vr00mm/cve-2025-49144
Privilege EscalationPersistence MechanismsExploitationCommand and ControlSocial EngineeringLearning & EducationRed TeamingPayload DevelopmentBinary Exploitation
GitHubvr00mm/cve-2025-49144

CVE-2025-49144

PoC CVE-2025-49144

61년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

Notepad++ 이진 파일 심기 PoC (CVE-2025-49144)

⚠️ 교육 목적으로만 사용
이 코드는 이진 파일 심기 취약점을 이해하기 위한 교육 및 연구 목적으로 설계되었습니다. 적절한 승인을 받은 통제된 환경에서만 사용하세요.

📋 개요

이 개념 증명은 GHSA-9vx8-v79m-6m24에 참조된 Notepad++ 설치 프로그램의 이진 파일 심기 취약점(CVE-2025-49144)을 시연합니다. 이 취약점으로 인해 공격자는 regsvr32.exe라는 악성 실행 파일을 Notepad++ 설치 프로그램과 동일한 디렉터리에 배치하여 SYSTEM 수준의 권한을 획득할 수 있습니다.

🎯 취약점 세부 정보

  • 대상: Notepad++ 설치 프로그램(v8.8.2 이전의 모든 버전)
  • 방법: 악성 regsvr32.exe를 통한 이진 파일 심기
  • 근본 원인: Notepad++ 설치 프로그램이 regsvr32와 같은 시스템 바이너리를 절대 경로를 지정하지 않고 호출함
  • 영향: 사용자가 설치 프로그램을 실행하면 시스템이 자동으로 악성 파일을 SYSTEM 권한으로 로드하여 공격자에게 대상 컴퓨터에 대한 완전한 제어권을 부여합니다.
  • 공격 벡터: 사회 공학 또는 클릭재킹을 통해 사용자가 합법적인 설치 프로그램과 악성 실행 파일을 동일한 디렉터리(일반적으로 다운로드 폴더)에 다운로드하도록 속입니다.

🏗️ 아키텍처

PoC는 함께 작동하는 여러 구성 요소로 구성됩니다.

root@kitploit:~
┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│ Notepad++       │    │ Malicious        │    │  Reverse Shell  │
│ Installer       │───▶│ regsvr32.exe     │───▶│   (PowerShell)  │
│ (searches for   │    │ (CGO binary)     │    │  with SYSTEM    │
│  regsvr32.exe)  │    │                  │    │  privileges     │
└─────────────────┘    └──────────────────┘    └─────────────────┘

핵심 구성 요소

🔧 기술적 특징

🛡️ 회피 기법

  • 문자열 난독화: PowerShell 경로가 정적 탐지를 피하기 위해 XOR 인코딩됨
  • 분리된 프로세스: 부모 종료 후에도 유지되는 독립적인 프로세스 생성
  • 토큰 가장: SYSTEM 토큰을 탈취하여 권한 상승
  • 프로세스 할로잉: 합법적인 Windows 프로세스에 코드 주입

🌐 네트워크 기능

  • TCP 킵얼라이브: 방화벽을 통한 지속적 연결 유지
  • 연결 재시도: 구성 가능한 지연 시간으로 자동 재연결
  • 시간 초과 처리: 적절한 타임아웃을 포함한 비차단 소켓 작업
  • 속도 제한: 연결 스팸 및 탐지 방지

💻 시스템 통합

  • CGO 통합: 시스템 호출을 위한 원활한 Go-to-C 상호 운용성
  • 실행 파일 가장: 합법적인 regsvr32.exe 동작 모방
  • 멀티스레딩: stdin/stdout/stderr 처리를 위한 별도 스레드
  • 오류 복구: 연결 실패 및 프로세스 종료의 정상적인 처리
  • 리소스 관리: 핸들, 소켓, 메모리의 적절한 정리

🚀 빌드 지침

사전 요구 사항

root@kitploit:~
# Go 설치 (1.24 이상)
# CGO 컴파일을 위해 MinGW-w64 설치
# 버전 관리를 위해 Git 설치

컴파일

root@kitploit:~
# 저장소 복제
git clone https://github.com/Vr00mm/CVE-2025-49144
cd CVE-2025-49144

# 실행 파일로 빌드 (regsvr32.exe로 가장)

# 최대 은닉을 위해 (디버그 정보 제거)
go build -ldflags="-s -w" -o regsvr32.exe

# 개발용 (디버그 기호 포함)
go build -o regsvr32_debug.exe

📖 사용법

이진 파일 심기 (주요 공격 벡터)

root@kitploit:~
# 1. 악성 regsvr32.exe를 Notepad++ 설치 프로그램과 동일한 디렉터리에 배치
# 일반적으로 사용자가 설치 프로그램을 다운로드하는 다운로드 폴더
copy regsvr32.exe "C:\Users\%USERNAME%\Downloads\"

# 2. 사용자가 공식 Notepad++ 설치 프로그램을 다운로드 폴더에 다운로드
# 3. 사용자가 설치 프로그램을 실행하면 현재 디렉터리에서 먼저 regsvr32.exe를 검색
# 4. 설치 프로그램이 우리의 악성 regsvr32.exe를 찾아 SYSTEM 권한으로 실행

# 5. 들어오는 리버스 셸 연결을 대기
ncat -tlnp 4445

🔍 공격 흐름

root@kitploit:~
sequenceDiagram
    participant User
    participant Attacker
    participant Downloads
    participant NotepadInstaller
    participant MaliciousRegsvr32
    participant SystemProcess

    User->>Downloads: Download Notepad++ installer
    Attacker->>Downloads: Place malicious regsvr32.exe (social engineering)
    User->>NotepadInstaller: Run installer from Downloads folder
    NotepadInstaller->>Downloads: Search for regsvr32.exe in current directory
    Downloads->>MaliciousRegsvr32: Find malicious regsvr32.exe first
    NotepadInstaller->>MaliciousRegsvr32: Execute with SYSTEM privileges
    MaliciousRegsvr32->>MaliciousRegsvr32: Create detached process
    MaliciousRegsvr32->>SystemProcess: Enumerate SYSTEM processes
    SystemProcess->>MaliciousRegsvr32: Steal token from winlogon/services
    MaliciousRegsvr32->>MaliciousRegsvr32: Create PowerShell with SYSTEM token
    MaliciousRegsvr32->>Attacker: Establish reverse connection
    MaliciousRegsvr32->>NotepadInstaller: Continue with legitimate regsvr32 functionality
    Attacker->>SystemProcess: Execute commands as SYSTEM

🎓 교육적 측면

시연된 보안 개념

  1. 이진 파일 심기

    • 안전하지 않은 실행 파일 검색 경로 동작
    • 설치 프로그램 취약점을 통한 권한 상승
    • 사회 공학 공격 벡터
  2. 권한 상승

    • 토큰 가장 방법
    • 프로세스 토큰 도용
    • SYSTEM 수준 액세스 획득
  3. 지속성 메커니즘

    • 분리된 프로세스 생성
    • 서비스 프로세스 모방
    • 연결 재시도 로직
  4. 네트워크 프로그래밍

    • 리버스 셸 구현
    • C에서의 소켓 프로그래밍
    • 크로스 플랫폼 네트워킹
  5. CGO 프로그래밍

    • Go-to-C 상호 운용성
    • Go에서의 시스템 수준 프로그래밍
    • 크로스 언어 통합

학습 목표

  • 이진 파일 심기 취약점이 어떻게 작동하는지 이해
  • 설치 프로그램의 안전하지 않은 실행 파일 검색 경로 학습
  • 설치 프로그램 결함을 통한 Windows 권한 상승 탐구
  • 사회 공학 공격 벡터 연구
  • CGO 프로그래밍 및 크로스 언어 통합 연습
  • 안전한 코딩 및 취약점 분석 연습

🛡️ 탐지 및 완화

탐지 방법

root@kitploit:~
# 의심스러운 regsvr32 사용 모니터링
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-PowerShell/Operational'; ID=4104}

# 비정상적인 네트워크 연결 확인
netstat -ano | findstr ":4445"

# 프로세스 생성 모니터링
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4688}

완화 전략

  • 즉시 조치: regsvr32와 같은 실행 파일을 호출할 때 절대 경로를 명시적으로 설정하는 Notepad++ v8.8.2 이상으로 업그레이드
  • 애플리케이션 허용 목록: AppLocker 또는 Windows Defender Application Control과 같은 도구 사용
  • 실행 파일 확인: 모든 실행 파일에 대해 디지털 서명 확인 구현
  • 경로 검증: 애플리케이션이 시스템 유틸리티의 전체 경로를 사용하도록 확인
  • 최소 권한: 필요한 최소 권한으로 애플리케이션 실행
  • 네트워크 모니터링: 비정상적인 아웃바운드 연결 모니터링
  • 엔드포인트 탐지: 프로세스 할로잉을 탐지하기 위한 EDR 솔루션 배포
  • 구성 확인: 다운로드 폴더와 같이 사용자가 쓸 수 있는 위치에서 설치 프로그램을 실행하지 않도록 함

⚖️ 법적 및 윤리적 고려 사항

⚠️ 중요한 면책 조항

  • 승인 필요: 소유하거나 테스트할 명시적 허가가 있는 환경에서만 사용
  • 교육 목적: 이 코드는 학습 및 보안 연구를 위해 설계됨
  • 악의적 의도 없음: 무단 액세스 또는 불법 활동을 위한 것이 아님
  • 책임 있는 공개: 발견된 취약점은 적절한 경로를 통해 보고

윤리 지침

  1. 책임 있는 사용: 합법적인 보안 테스트 및 교육에만 사용
  2. 무단 액세스 금지: 허가 없이 시스템에 배포하지 않음
  3. 적절한 귀속: 원 연구자 및 취약점 발견자에게 공로 인정
  4. 지식 공유: 발견 사항을 보안 커뮤니티와 책임감 있게 공유

🔧 문제 해결

일반적인 문제

연결 실패

root@kitploit:~
# 포트 사용 가능 여부 확인
netstat -ano | findstr ":4445"

# 방화벽 설정 확인
netsh advfirewall firewall show rule name=all | findstr "4445"

빌드 오류

root@kitploit:~
# CGO 활성화 확인
set CGO_ENABLED=1

# MinGW 설치 확인
gcc --version

# Go 설치가 CGO를 지원하는지 확인
go env CGO_ENABLED

토큰 획득 실패

  • 프로그램이 충분한 권한으로 실행되는지 확인
  • 토큰 도용에 사용할 수 있는 SYSTEM 프로세스가 있는지 확인
  • Windows 버전 호환성 확인
  • 참고: 이 취약점은 v8.8.2 이전의 모든 Notepad++ 버전에 영향을 미치므로 PoC는 다양한 설치 환경에서 작동합니다.

📚 참고 자료

  • CVE-2025-49144 저장소
  • Notepad++ 보안 권고 GHSA-9vx8-v79m-6m24
  • NVD CVE-2025-49144
  • MITRE ATT&CK T1574.007 - PATH 환경 변수에 의한 경로 가로채기
  • MITRE ATT&CK T1134 - 액세스 토큰 조작
  • Microsoft 문서 - 안전한 이진 파일 로드

📄 라이선스

이 프로젝트는 교육 목적으로 MIT 라이선스 하에 배포됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.


기억하세요: 이 도구는 교육 및 승인된 테스트 목적으로만 사용됩니다. 항상 책임 있는 공개 관행을 따르고 법적 경계를 존중하세요.

도구 다운로드
파일목적줄 수
main.go진입점, regsvr32 실행 처리~80
winbind.h함수 선언이 포함된 메인 헤더~45
main.c핵심 리버스 셸 실행기 및 분리된 프로세스 생성~75
shell.c난독화된 PowerShell 실행을 포함한 셸 핸들러~120
process.c토큰 획득 및 SYSTEM 프로세스 생성~195
socket.cTCP 킵얼라이브를 포함한 네트워크 연결~85
threads.c소켓과 파이프 간 I/O 스레딩~60
utils.c입력 검증 및 속도 제한~35
obfuscate.cPowerShell 경로 난독화 기술~70