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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-56158-.NET-Framework-RCE-PoC-Exploit — CVE-2026-56158용 .NET 역직렬화 페이로드 형식 5가지를 생성하여 HTTP/SOAP/JSON 엔드포인트를 통해 전달하며, 모의 서버, 스캐너 및 JSON 보고서 출력을 포함합니다. | Kitploit
도구/GitHubGitHub/sam00/cve-2026-56158-.net-framework-rce-poc-exploit
Vulnerability ScannersPayload GenerationStatic Code Analysis (SAST)Vulnerability AnalysisExploitationWeb Application ExploitationPayload Development
GitHub
sam00/cve-2026-56158-.net-framework-rce-poc-exploit

CVE-2026-56158-.NET-Framework-RCE-PoC-Exploit

CVE-2026-56158용 .NET 역직렬화 페이로드 형식 5가지를 생성하여 HTTP/SOAP/JSON 엔드포인트를 통해 전달하며, 모의 서버, 스캐너 및 JSON 보고서 출력을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-56158 — .NET Framework 원격 코드 실행(RCE) PoC 익스플로잇

치명적(CVSS 9.8) — Microsoft .NET Framework 및 .NET Runtime의 신뢰할 수 없는 데이터 역직렬화(CWE-502) 패치: 2026년 7월 14일 | 발견자: Positive Technologies (PT-2026-60174)


목차

  • 개요
  • 취약점 상세
  • 영향받는 버전
  • 공격 벡터
  • 익스플로잇 아키텍처
  • 파일 구조
  • 설치
  • 단계별 사용법
  • 테스트
  • 탐지 및 강화
  • 완화
  • 참고 자료
  • 면책 고지
  • 라이선스

개요

CVE-2026-56158은 Microsoft .NET Framework 및 .NET 런타임의 치명적인 원격 코드 실행 취약점입니다. 이 결함은 신뢰할 수 없는 데이터(CWE-502)의 안전하지 않은 역직렬화에 존재합니다. .NET 애플리케이션이 레거시 직렬 변환기(BinaryFormatter, NetDataContractSerializer, SoapFormatter, ObjectStateFormatter) 또는 TypeNameHandling.All/Auto가 활성화된 Json.NET을 사용할 때, 인증되지 않은 원격 공격자는 제작된 직렬화 페이로드를 전달하여 역직렬화 시 임의 코드 실행을 트리거할 수 있습니다.

이 취약점의 CVSS 3.1 기본 점수는 9.8(치명적) 이며, 벡터는 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H로 다음을 의미합니다:

  • 공격 벡터: 네트워크(물리적 접근 불필요)
  • 공격 복잡도: 낮음
  • 필요 권한: 없음
  • 사용자 상호 작용: 없음
  • 영향: 기밀성, 무결성 및 가용성의 완전한 손상

Microsoft는 월간 Patch Tuesday 주기의 일부로 2026년 7월 14일에 보안 업데이트를 출시했습니다.


취약점 상세

필드값
CVE IDCVE-2026-56158
제목.NET Framework 원격 코드 실행 취약점
CVSS 3.19.8 치명적 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
CVSS 2.07.5 높음 (AV:N/AC:L/Au:N/C:P/I:P/A:P)
CWECWE-502 (신뢰할 수 없는 데이터 역직렬화)
게시일2026년 7월 14일
패치일2026년 7월 14일
발견자Positive Technologies (PT-2026-60174)
EPSS아직 산정되지 않음
CISA KEV등재되지 않음

근본 원인

.NET 런타임의 레거시 직렬 변환기는 유형이나 콘텐츠를 검증하지 않고 직렬화된 스트림에서 임의의 객체 유형을 재구성합니다. 공격자가 직렬화된 입력을 제어할 수 있으면 역직렬 변환기가 예상치 못한 유형을 인스턴스화하도록 유도할 수 있으며, 해당 유형의 생성자, 콜백 또는 속성 setter가 임의 코드를 실행합니다 — 전형적인 역직렬화 가젯 체인 공격입니다.

이 취약점은 여러 직렬화 메커니즘에 영향을 줍니다:

  1. BinaryFormatter — 유형 메타데이터가 포함된 이진 스트림; TypeConfuseDelegate 가젯 체인이 Process.Start에 위임
  2. NetDataContractSerializer — .NET 유형 정보를 포함하는 XML 형식; 직접 유형 인스턴스화 허용
  3. SoapFormatter — CLR 유형 참조가 포함된 SOAP XML 봉투; SOAP 본문에 포함된 ProcessStartInfo
  4. ObjectStateFormatter — ASP.NET ViewState 이진 형식; ViewState 필드를 통한 Process.Start
  5. Json.NET (Newtonsoft.Json) — TypeNameHandling.All/Auto가 활성화된 경우 $type 메타데이터가 포함된 JSON; ObjectDataProvider 가젯이 Process.Start 호출

영향받는 버전

제품취약 범위수정 버전KB 문서
.NET 8.08.0.0 – 8.0.288.0.29KB5100998
.NET 9.09.0.0 – 9.0.179.0.18KB5100998
.NET 10.010.0.0 – 10.0.910.0.10KB5101001
.NET Framework 3.5패치 전 전체패치됨KB5100985
.NET Framework 4.6.2–4.7.2패치 전 전체패치됨KB5100991
.NET Framework 4.8패치 전 전체패치됨KB5101011
.NET Framework 4.8.1패치 전 전체패치됨KB5101002
Visual Studio 2022 (17.12)패치 전17.12.x—
Visual Studio 2022 (17.14)패치 전17.14.x—
Visual Studio 2026 (18.7)패치 전18.7.x—

Alpine Linux 패키지:

  • dotnet8-runtime < 8.0.29-r0
  • dotnet9-runtime < 9.0.18-r0
  • dotnet10-runtime < 10.0.10-r0

공격 벡터

이 PoC 익스플로잇은 5가지 서로 다른 역직렬화 공격 형식으로 페이로드를 생성하고 전달합니다:

1. BinaryFormatter (TypeConfuseDelegate 가젯)

Serialized Stream → BinaryFormatter.Deserialize() → TypeConfuseDelegate
  → Process.Start("cmd.exe", "/c calc.exe") → RCE
  • 형식: 이진(.NET 직렬화 스트림)
  • Content-Type: application/octet-stream
  • 전달: HTTP POST 본문, 파일
  • 가젯: ActivitySurrogateSelector+ObjectSurrogate → TypeConfuseDelegate → Process.Start

2. NetDataContractSerializer

XML with type info → NetDataContractSerializer.ReadObject()
  → ProcessStartInfo instantiation → Process.Start → RCE
  • 형식: .NET 유형 정보가 포함된 XML
  • Content-Type: application/octet-stream 또는 text/xml
  • 전달: HTTP POST 본문, WCF 엔드포인트

3. SoapFormatter

SOAP envelope → SoapFormatter.Deserialize()
  → ProcessStartInfo in SOAP body → Process.Start → RCE
  • 형식: CLR 유형 참조가 포함된 SOAP XML 봉투
  • Content-Type: text/xml
  • 전달: WCF/ASMX SOAP 엔드포인트

4. ObjectStateFormatter (ViewState)

ViewState binary → ObjectStateFormatter.Deserialize()
  → Process.Start via ViewState field → RCE
  • 형식: 이진(ASP.NET ViewState 형식)
  • Content-Type: application/octet-stream
  • 전달: HTTP POST __VIEWSTATE 필드

5. Json.NET (TypeNameHandling.All)

JSON with $type → JsonConvert.DeserializeObject<T>(json, TypeNameHandling.All)
  → ObjectDataProvider.MethodName = "Start" → Process.Start → RCE
  • 형식: $type 메타데이터가 포함된 JSON
  • Content-Type: application/json
  • 전달: TypeNameHandling.All 또는 Auto를 사용하는 REST API 엔드포인트

익스플로잇 아키텍처

┌─────────────────────────────────────────────────────────────────────┐
│                         exploit.py                                   │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  ┌──────────────┐   ┌───────────────┐   ┌───────────────────────┐  │
│  │ PayloadGen   │   │ PayloadDeliv  │   │ VulnerabilityScanner  │  │
│  │              │   │               │   │                       │  │
│  │ • BinaryFmt  │   │ • HTTP POST   │   │ • HTTP header check   │  │
│  │ • NetData    │──▶│ • SOAP/WCF   │──▶│ • Endpoint discovery  │  │
│  │ • SoapFmt    │   │ • JSON API    │   │ • ViewState analysis  │  │
│  │ • ObjectState│   │ • File save   │   │ • Version detection   │  │
│  │ • Json.NET   │   │               │   │                       │  │
│  └──────────────┘   └───────────────┘   └───────────────────────┘  │
│         │                   │                      │                 │
│         └───────────────────┼──────────────────────┘                 │
│                             ▼                                        │
│  ┌──────────────┐   ┌──────────────────────────────────────────┐   │
│  │ PayloadList  │   │ Report Generator (JSON)                   │   │
│  │ (Mock .NET)  │   │ • CVE metadata, CVSS, CWE                │   │
│  │              │   │ • Payload hashes (SHA-256)               │   │
│  │ Simulates    │   │ • Delivery results                       │   │
│  │ vulnerable   │   │ • RCE confirmation                       │   │
│  │ deserialization│ │ • References                             │   │
│  └──────────────┘   └──────────────────────────────────────────┘   │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘

공격 흐름

Attacker ────POST /api/deserialize──────▶ Target (.NET < 8.0.29)
         Content-Type: application/octet-stream
         Body: [BinaryFormatter payload]
                                             │
                                             ▼
                                   BinaryFormatter.Deserialize()
                                   (no type validation)
                                             │
                                             ▼
                                   TypeConfuseDelegate invoked
                                             │
                                             ▼
                                   Process.Start("cmd.exe", "/c calc.exe")
                                             │
                                             ▼
                                   calc.exe spawns → RCE CONFIRMED

Mermaid 다이어그램

graph TD
    A[Attacker] --> B[PayloadGenerator]
    B --> B1[BinaryFormatter]
    B --> B2[NetDataContractSerializer]
    B --> B3[SoapFormatter]
    B --> B4[ObjectStateFormatter]
    B --> B5[Json.NET]

    B1 --> C1[TypeConfuseDelegate Gadget]
    B2 --> C2[ProcessStartInfo XML]
    B3 --> C3[SOAP ProcessStartInfo]
    B4 --> C4[ViewState Process.Start]
    B5 --> C5[ObjectDataProvider Gadget]
도구 다운로드