Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-47981 — Script d'évaluation PowerShell qui vérifie les systèmes Windows pour CVE-2025-47981 (débordement de tas SPNEGO NEGOEX) en vérifiant la version du noyau, la clé de registre PKU2U et les ports SPNEGO exposés. Fournit des étapes de remédiation et des conseils de détection. | Kitploit
Outils/GitHubGitHub/hkenzokimura/cve-2025-47981
Scanners de VulnérabilitésAudit de ConfigurationSécurité RéseauApprentissage et ÉducationRéponse aux Incidents
GitHubhkenzokimura/cve-2025-47981

CVE-2025-47981

Script d'évaluation PowerShell qui vérifie les systèmes Windows pour CVE-2025-47981 (débordement de tas SPNEGO NEGOEX) en vérifiant la version du noyau, la clé de registre PKU2U et les ports SPNEGO exposés. Fournit des étapes de remédiation et des conseils de détection.

Voir le dépôt
26il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

🔵 CVE-2025-47981 — Script d'évaluation de vulnérabilité Windows SPNEGO NEGOEX

Type : Évaluation de vulnérabilité — Détection / Vérification de conformité CVE : CVE-2025-47981 CVSS : 9.8 Critique (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) CWE : CWE-122 — Dépassement de tampon basé sur le tas Alias : « SPNEGO Nightmare » / « Windows Authentication Wormable RCE » Correctif : KB5062560 | Patch Tuesday de juillet 2025

Script PowerShell d'évaluation qui vérifie si un système Windows est vulnérable au CVE-2025-47981 — dépassement de tampon basé sur le tas dans le mécanisme SPNEGO Extended Negotiation (NEGOEX) permettant une exécution de code à distance sans authentification. N'exécute pas d'exploit — évalue uniquement l'exposition et l'état du correctif.

Développé par : HKK


$ cat ./vulnerability_summary.txt

CVE-2025-47981 est un dépassement de tampon basé sur le tas dans le protocole NEGOEX — la couche d'extension interne du mécanisme d'authentification SPNEGO de Windows. La vulnérabilité permet à des attaquants non authentifiés d'exécuter du code arbitraire à distance, obtenant potentiellement un contrôle total du système.

Les analystes ont déjà décrit ce CVE comme ayant « les caractéristiques malheureuses de devenir un problème significatif », avec un potentiel wormable — capable de se propager automatiquement entre les systèmes vulnérables sans interaction de l'utilisateur.

La vulnérabilité affecte Windows 10 (version 1607 et ultérieures) et tous les Windows Server de 2008 R2 jusqu'à Server 2025, y compris les variantes Server Core — plus de 33 configurations distinctes de Windows et Server confirmées vulnérables sur les architectures x64, x86 et ARM64.


$ cat ./technical_background.txt

Qu'est-ce que SPNEGO et pourquoi est-il dans le noyau ?

SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) est la couche de négociation d'authentification que Windows utilise avant chaque session authentifiée. Les applications ont souvent besoin d'authentification sans fixer un protocole — Windows peut utiliser Kerberos dans un environnement, NTLM dans un autre, ou un mécanisme d'authentification étendu dans un modèle de confiance différent. SPNEGO est le mécanisme de négociation qui décide quel protocole d'authentification utiliser.

Cliente                          Servidor
  │                                │
  │──── SPNEGO Negotiation ────────►│
  │     MechTypeList:               │
  │     [Kerberos, NTLM, NEGOEX]    │
  │                                │
  │◄─── Selected Mechanism ─────────│
  │                                │
  │──── Auth Exchange ─────────────►│  ← overflow aqui no NEGOEX

NEGOEX est le mécanisme d'extension au sein de SPNEGO — il permet de négocier les authentifications PKU2U (pair-à-pair) et d'autres mécanismes personnalisés. La vulnérabilité se trouve dans la fonction ntoskrnl!SpnegoHandleExtended, qui traite des structures SPNEGO_TOKEN surdimensionnées envoyées en plusieurs fragments, provoquant un dépassement de tampon dans le tas du noyau.

Pourquoi PKU2U amplifie-t-il le risque ?

Le risque est élevé sur les systèmes où la stratégie de groupe « Network security: Allow PKU2U authentication requests to this computer to use online identities » est activée. Cette configuration, activée par défaut dans de nombreux déploiements Windows, amplifie la surface d'attaque de NEGOEX en permettant l'authentification pair-à-pair qui active le chemin de code vulnérable de NEGOEX sur des points de terminaison qui ne l'exposeraient pas autrement.


$ cat ./architecture.txt

┌─────────────────────────────────────────────────────────────────────────┐
│            CVE-2025-47981 ASSESSMENT SCRIPT — FLOW                      │
│                                                                         │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 1: Windows Version                                        │  │
│  │  Get-CimInstance Win32_OperatingSystem → .Version               │  │
│  │  Contexto: identifica o build exato para correlação com patch   │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 2: ntoskrnl.exe Version                                   │  │
│  │  Get-Item C:\Windows\System32\ntoskrnl.exe                      │  │
│  │  Compare: installed < 10.0.14393.8246 → VULNERÁVEL              │  │
│  │  Compare: installed ≥ 10.0.14393.8246 → KB5062560 aplicado      │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 3: PKU2U Registry Key                                     │  │
│  │  HKLM:\SYSTEM\...\Lsa\pku2u\AllowOnlineID                      │  │
│  │  1 → PKU2U habilitado → superfície de ataque ampliada          │  │
│  │  0 → PKU2U desabilitado → vetor PKU2U mitigado                 │  │
│  │  Não existe → configuração padrão (avaliar via GPO)            │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 4: Portas SPNEGO Expostas                                 │  │
│  │  Get-NetTCPConnection → 135, 445, 5985, 3389, 80, 443, 25      │  │
│  │  Cada porta aberta = um vetor de entrega do exploit             │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│                    Format-Table -AutoSize                               │
│                    (output legível para relatório de pentest)           │
└─────────────────────────────────────────────────────────────────────────┘

$ cat ./design_decisions.md

1. Vérification de version via ntoskrnl.exe

$kernelPath = [System.IO.Path]::Combine($env:SystemRoot, "System32\ntoskrnl.exe")
$requiredVersion = "10.0.14393.8246"

$installedVersion = (Get-Item $kernelPath).VersionInfo.FileVersion

if ([version]$installedVersion -lt [version]$requiredVersion) {
    "Vulnerável - Patch ausente ($missingKB)"
}

Pourquoi ntoskrnl.exe et non Get-HotFix ?

Get-HotFix liste les KB installés, mais présente des limitations connues :

  • Ne détecte pas les KB appliqués via DISM ou Windows Update en mode silencieux
  • Peut afficher des KB désinstallés comme présents dans certains scénarios
  • Ne reflète pas l'état réel du binaire en cours d'exécution

Vérifier la version de ntoskrnl.exe directement est plus fiable — le fichier ne reçoit la version corrigée que lorsque le KB a été effectivement appliqué et le système redémarré. Un système avec un KB en attente de redémarrage aura toujours l'ancienne version du noyau en mémoire.

Cast [version] : PowerShell compare les chaînes lexicographiquement par défaut — "10.0.14393.8246" -lt "10.0.14393.800" serait $false (incorrect). Le cast vers [version] garantit une comparaison numérique correcte par octet.

[System.IO.Path]::Combine($env:SystemRoot, ...) : utilise SystemRoot au lieu de C:\Windows codé en dur — portable pour les systèmes avec Windows installé sur des lecteurs différents.


2. Version de référence 10.0.14393.8246

Télécharger l’outil