Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
From-Foothold-to-Domain-Admin-Weaponizing-CVE-2025-54918-in-Real-World-DevOps — 模拟 CVE-2025-54918(Windows NTLM 漏洞)的利用与缓解。包含检测脚本、Ansible 修补和 CI/CD 加固。演示在混合云环境中从低权限访问到 SYSTEM 权限的提权过程。 | Kitploit
工具/GitHubGitHub/mrk336/from-foothold-to-domain-admin-weaponizing-cve-2025-54918-in-real-world-devops
权限提升漏洞分析漏洞利用配置审计渗透测试云安全DevSecOps学习与教育事件响应

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
实验室与实践
GitHubmrk336/from-foothold-to-domain-admin-weaponizing-cve-2025-54918-in-real-world-devops

From-Foothold-to-Domain-Admin-Weaponizing-CVE-2025-54918-in-Real-World-DevOps

模拟 CVE-2025-54918(Windows NTLM 漏洞)的利用与缓解。包含检测脚本、Ansible 修补和 CI/CD 加固。演示在混合云环境中从低权限访问到 SYSTEM 权限的提权过程。

查看仓库
41411个月前尚未审核

From-Foothold-to-Domain-Admin-Weaponizing-CVE-2025-54918-in-Real-World-DevOps

模拟利用和缓解 CVE-2025-54918(Windows NTLM 漏洞)。包含检测脚本、Ansible 修补和 CI/CD 加固。演示从低权限访问到混合云环境中 SYSTEM 权限的提权过程。

作者:Mark Mallia

引言:从点击到控制——串联 CVE-2025-55226 和 CVE-2025-54918

在当今的混合云环境中,用户交互与系统沦陷之间的界限比以往任何时候都更模糊。本文探讨了一个真实的攻击链,始于一个看似无害的图形缺陷 CVE-2025-55226(Windows 图形内核中的一个竞态条件),并通过 CVE-2025-54918(一个关键的 NTLM 认证绕过)升级到完全的 SYSTEM 级别控制。

这些漏洞共同展示了攻击者如何从远程代码执行仅通过几步就升级到权限提升。但更重要的是,它们展示了高级 DevOps 工程师如何通过自动化、CI/CD 集成和基础设施即代码来检测、缓解和监控此类威胁。

CVE‑2025‑55226 – Windows 图形内核中的关键远程代码执行

发布: 2025 年 9 月 16 日(补丁星期二)

一个影响每个 Windows 用户的头条级漏洞

微软最新的安全公告指出了 win32k.sys(用于 Windows 桌面和服务器版本的核心图形内核)中的一个严重缺陷。该弱点是一个竞态条件,允许攻击者在运行该漏洞驱动的任何系统上触发远程代码执行(RCE)。由于该驱动程序位于 GDI(图形设备接口)的核心,它可被滥用以在内核模式下执行任意代码——这种权限级别可危及整个机器。

为何重要:

  • 它针对的是为每个图形用户界面提供动力的核心子系统,从普通办公电脑到高性能服务器。
  • 星期二发布的补丁提供了即时修复,但仅当管理员知道如何及时检测、部署和监控时才有效。

为什么 CVE‑2025‑55226 重要?

  • 核心子系统 – win32k.sys 被所有显示用户界面的 Windows 机器使用。
  • 远程代码执行(RCE) – 该漏洞允许经过身份验证的攻击者在内核模式下运行任意代码,这意味着如果未能及时缓解,他们可以危及整个主机。
  • 现实意义 – 许多现代数据中心依赖此驱动程序来渲染仪表板和管理高吞吐量的图形工作负载;因此,一个补丁星期二的修复对小型企业和大型企业都很有价值。

PowerShell 检测脚本

以下代码段从注册表中提取当前版本的 win32k.sys,将其与修补版本进行比较,将不匹配项记录到 CSV 文件中,该文件可导入 Excel 或 Tableau。

root@kitploit:~
# DetectWin32k.ps1 – 检测易受攻击的 win32k.sys
$target = 'Microsoft-Windows-GraphicsKernel'
$patchVersion = '6.0.22.7'   # 预期的修补版本

$regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\$target"
$currentVer = Get-ItemProperty $regPath | Select-Object -ExpandProperty ImagePath
$kernelFile = Join-Path $env:SystemRoot \System32\win32k.sys
$fileVersion = (Get-ChildItem $kernelFile).VersionInfo.FileVersion

if ($fileVersion -ne $patchVersion) {
    Write-Output "vulnerable: $currentVer (actual=$fileVersion, expected=$patchVersion)" | Out-File -Encoding ascii .\report.csv
}

功能说明:

  1. 从注册表中读取 win32k.sys 的当前版本。
  2. 与期望的修补版本字符串比较。
  3. 如果不匹配则记录一条记录;此记录稍后由报告工具或 CI 步骤使用。

用于补丁部署的 Ansible playbook

以下 YAML 文件指示 Ansible 在所有目标主机上应用 win32k.sys 更新并重启 GDI 服务。

root@kitploit:~
---
- name: 部署 Windows 图形内核补丁
  hosts: windows_servers
  gather_facts: yes
  tasks:
    - name: 复制新的 win32k.sys
      copy:
        src: /tmp/patches/win32k.sys
        dest: C:\Windows\System32\
        mode: '0644'
        force: yes

    - name: 重启 GDI 服务
      win_service:
        name: w32k
        state: restarted

功能说明:

  1. 将新的驱动程序文件推送至清单(windows_servers)中的每台 Windows 服务器。
  2. 强制重启 w32k 内核服务,以便新副本立即生效。

Grafana 仪表板片段

创建一个简单的面板,用于可视化 GDI 对象表随时间的使用情况。

root@kitploit:~
# grafana-dashboard.yml
apiVersion: 1
dashboard:
  title: “GDI 使用情况”
  panels:
    - name: “正在使用的对象”
      type: graph
      targets:
        - query: "SELECT timestamp, gdi_objects FROM win32k_stats WHERE $__timeFilter()"

功能说明:

  • 从自定义 Windows 性能计数器(win32k_stats)拉取指标,并显示在 Grafana 面板上。您可以设置当使用量超出阈值时触发警报——这是驱动程序回归的早期指标。

CI/CD 集成

向您的 Jenkins 或 GitHub Actions 流水线添加一个测试步骤,通过轻量级工具(例如 wdfuzz)对 win32k.sys 进行模糊测试来验证补丁。

root@kitploit:~
# .github/workflows/cve55226.yml
name: CVE‑2025‑55226 CI

on:
  push:
    branches:
      - main

jobs:
  test_and_deploy:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3
      - name: 运行模糊测试
        run: |
          wdfuzz.exe -t win32k.sys -c config.yaml
          if ($LASTEXITCODE -eq 0) { Write-Host "模糊测试通过" }
      - name: 部署补丁
        uses: ansible/[email protected]
        with:
          playbook: DetectWin32k.ps1

功能说明:

  1. 每当变更推送到 main 分支时,检出代码库。
  2. 运行快速模糊测试,对 win32k.sys 进行种子输入并检查竞态条件回归。
  3. 如果测试成功,Ansible 自动部署补丁。

两个 Windows 漏洞如何击垮您的混合基础设施

一切始于图形引擎中的一个单点缺陷。攻击者找到了一种利用 Windows 内核中竞态条件的方法(如上所述),绕过防御并远程执行代码。这就是 CVE-2025-55226。但真正的危险出现在攻击者将其与 CVE-2025-54918(NTLM 认证中的一个弱点)配对时。突然之间,他们不只是进入系统——而是掌控了系统。

起初只是一个图形缺陷,最终演变为全面的权限提升,赋予他们 SYSTEM 级别的访问权限。这个事件链并非只是理论。它提醒我们,在当今的混合环境中,漏洞很少孤立存在。

CVE‑2025‑54918 – Windows NTLM 权限提升

发布时间: 2025 年 9 月 9 日(补丁星期二)

CVSS v3.1 评分: 8.8(高危)
向量: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE: CWE‑287 – 身份验证不当
受影响组件: Windows NTLM(新技术 LAN 管理器)


漏洞是什么?

该缺陷是 NTLM 验证认证数据时的逻辑错误。攻击者只要能通过网络到达主机,即使只有最小权限,也能欺骗系统授予 SYSTEM 级别权限。这意味着在入侵工作站或域控制器后,攻击者可以安装应用程序、窃取机密文件并创建新的管理员账户——基本上完全控制目标。

该漏洞是 2025 年日益增长的模式之一:已有另外两个 NTLM 漏洞被报告(CVE‑2025‑53778, CVE‑2025‑21311)。微软针对此问题的补丁修复了一个不正确的比较例程,该例程错误地接受了某些哈希值。


检测 – PowerShell 脚本

root@kitploit:~
# 查找具有易受攻击 NTLM 设置的主机
$target = "dc01.company.local"
Invoke-Command -ComputerName $target -ScriptBlock {
    Get-WmiObject -Class Win32_OperatingSystem | 
        Select-Object CSName, Version, BuildNumber
} | Out-File -FilePath C:\temp\nlm_detection.txt

# 检查 NTLM 策略值
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon" |
    Select-Object "LmCompatibilityLevel"

# 导出为 CSV 以便快速审查
$report = @()
foreach ($item in Get-WmiObject -Class Win32_Service | Where { $_.Name -eq "netlogon"}) {
    $report += [pscustomobject]@{
        Service   = $item.Name
        LmCompat  = (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon").LmCompatibilityLevel
    }
}
$report | Export-Csv -Path C:\temp\nlm_report.csv -NoTypeInformation

该脚本提取当前操作系统版本,验证 Netlogon 键是否设置为微软建议的值(3),并将结果写入易于使用的 CSV。

缓解 – Ansible playbook

root@kitploit:~
---
- name: 为 Windows 服务器修补 NTLM
  hosts: windows_dc01, windows_dc02, windows_dc03
  gather_facts: true
  tasks:
    - name: 启用 Netlogon 兼容性级别
      win_regedit:
        path: HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon
        key: LmCompatibilityLevel
        value: 3
        datatype: dword

    - name: 安装微软补丁 KB5000000
      win_updates:
        category_name: Security
        search_keyword: KB5000000
        reboot_after: true

部署 playbook 到所有域控制器。该任务确保正确设置策略并安装最新的安全更新,从而使相同的逻辑缺陷不再可被利用。

利用模拟 – 实验环境设置

使用 Responder 和 Impacket,您可以模拟真实的 NTLM 中继攻击:

  1. Responder 监听端口 445 的 SMB 流量。
  2. Impacket 的 secretsdump.py 捕获认证数据。
  3. 将捕获的哈希重放到目标机器,证明该缺陷。
root@kitploit:~
# 在攻击机上启动 Responder
responder -i eth0 -f

# 从受害者处转储凭据
python3 impacket/secretsdump.py <victim-ip> <domain-admin-username>

# 将哈希重放到目标
python3 impacket/ntlmrelay.py <victim-ip> <target-ip>

在受控环境中运行脚本,并验证您获得了 SYSTEM 级别访问权限。

CI/CD 集成 – 加固检查

向流水线添加一个 NTLM 加固任务:

root@kitploit:~
- name: 验证 Netlogon 兼容性级别
  win_regedit:
    path: HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon
    key: LmCompatibilityLevel
    value: 3
    datatype: dword
    state: present

# 当应用新补丁时触发
- name: 如有必要则重启并重新启动服务
  win_reboot:
    reboot_timeout_sec: 120

该任务在流水线因新补丁构建而触发时自动运行。

监控 – ELK/Sentinel 告警

创建一个告警,当主机使用匹配易受攻击哈希模式的 NTLM 认证登录时触发:

root@kitploit:~
input {
    beats {
        type => "winlogbeat"
    }
}

filter {
    if [event_id] == "4624" and [logon_type] =~ /NTLM/ { 
        mutate {
            add_field => { "[ntlm_match]" => "true" }
        }
    }
}

output {
    elasticsearch {
        hosts => ["es.company.local"]
        index => "ntlm_audit"
    }
}

告警进入 Sentinel 进行可视化,使审计人员能够看到修复已应用并正在监控。


结论

安全性不仅仅是修补漏洞——更在于理解它们如何关联、如何演变,以及它们如何以并非立即显而易见的方式被武器化。通过串联 CVE-2025-55226 和 CVE-2025-54918,我展示了图形驱动程序中的一个单一缺陷如何为完全系统沦陷打开大门。但更重要的是,我演示了 DevOps 工程师如何不仅能通过技术修复来响应,还能通过预见性、自动化和韧性来应对。


下载工具