Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-56158-.NET-Framework-RCE-PoC-Exploit — 为 CVE-2026-56158 生成五种 .NET 反序列化载荷格式,通过 HTTP/SOAP/JSON 端点交付,包含模拟服务器、扫描器和 JSON 报告输出。 | Kitploit
工具/GitHubGitHub/sam00/cve-2026-56158-.net-framework-rce-poc-exploit
漏洞扫描器Payload生成静态代码分析 (SAST)漏洞分析漏洞利用Web应用程序漏洞利用Payload 开发
GitHubsam00/cve-2026-56158-.net-framework-rce-poc-exploit

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →

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

为 CVE-2026-56158 生成五种 .NET 反序列化载荷格式,通过 HTTP/SOAP/JSON 端点交付,包含模拟服务器、扫描器和 JSON 报告输出。

查看仓库
1452个月前尚未审核
分享

CVE-2026-56158 —— .NET Framework 远程代码执行(RCE)PoC 漏洞利用

严重(CVSS 9.8) —— Microsoft .NET Framework 与 .NET 运行时中的不受信任数据反序列化(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 已于 2026年7月14日 随每月 Patch Tuesday 周期发布了安全更新。


漏洞详情

字段值
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 运行时的旧版序列化器在从序列化流中重建任意对象类型时,不会验证类型或内容。当攻击者控制序列化输入时,他们可以引导反序列化器实例化意外类型,这些类型的构造函数、回调或属性设置器会执行任意代码 —— 这是一种经典的反序列化小工具链攻击。

该漏洞影响多种序列化机制:

  1. BinaryFormatter —— 带有类型元数据的二进制流;TypeConfuseDelegate 小工具链委托给 Process.Start
  2. NetDataContractSerializer —— 包含 .NET 类型信息的 XML 格式;允许直接实例化类型
  3. SoapFormatter —— 带有 CLR 类型引用的 SOAP XML 信封;ProcessStartInfo 嵌入在 SOAP 正文中
  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]

    C1 --> D[PayloadDelivery]
    C2 --> D
    C3 --> D
    C4 --> D
    C5 --> D

    D --> E1[HTTP POST]
    D --> E2[SOAP Endpoint]
    D --> E3[JSON API]
    D --> E4[File]

    E1 --> F[.NET Runtime < 8.0.29]
    E2 --> F
    E3 --> F
    E4 --> F
下载工具