Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2025-47981 — Script di valutazione PowerShell che controlla i sistemi Windows per CVE-2025-47981 (heap overflow SPNEGO NEGOEX) verificando la versione del kernel, la chiave di registro PKU2U e le porte SPNEGO esposte. Fornisce passaggi di remediation e indicazioni per il rilevamento. | Kitploit
Strumenti/GitHubGitHub/hkenzokimura/cve-2025-47981
Scanner di VulnerabilitàAudit di ConfigurazioneSicurezza di ReteApprendimento e FormazioneRisposta agli Incidenti
GitHubhkenzokimura/cve-2025-47981

CVE-2025-47981

Script di valutazione PowerShell che controlla i sistemi Windows per CVE-2025-47981 (heap overflow SPNEGO NEGOEX) verificando la versione del kernel, la chiave di registro PKU2U e le porte SPNEGO esposte. Fornisce passaggi di remediation e indicazioni per il rilevamento.

Vedi Repository
261 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

🔵 CVE-2025-47981 — Script di Valutazione della Vulnerabilità SPNEGO NEGOEX di Windows

Tipo: Valutazione della Vulnerabilità — Rilevamento / Verifica di Conformità CVE: CVE-2025-47981 CVSS: 9.8 Critico (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) CWE: CWE-122 — Heap-based Buffer Overflow Alias: "SPNEGO Nightmare" / "Windows Authentication Wormable RCE" Patch: KB5062560 | Luglio 2025 Patch Tuesday

Script PowerShell di assessment che verifica se un sistema Windows è vulnerabile al CVE-2025-47981 — heap-based buffer overflow nel meccanismo SPNEGO Extended Negotiation (NEGOEX) che consente RCE senza autenticazione. Non esegue exploit — valuta solo l'esposizione e lo stato della patch.

Developed by: HKK


$ cat ./vulnerability_summary.txt

CVE-2025-47981 è un heap-based buffer overflow nel protocollo NEGOEX — il livello di estensione interno del meccanismo di autenticazione SPNEGO di Windows. La vulnerabilità consente ad attaccanti non autenticati di eseguire codice remoto arbitrario, ottenendo potenzialmente il controllo totale del sistema.

Gli analisti hanno già descritto la CVE come avente "le sfortunate caratteristiche di diventare un problema significativo", con potenziale wormable — capace di propagarsi automaticamente tra sistemi vulnerabili senza interazione dell'utente.

La vulnerabilità colpisce Windows 10 (versione 1607 in poi) e tutti i Windows Server dal 2008 R2 fino al Server 2025, incluse le varianti Server Core — più di 33 configurazioni distinte di Windows e Server confermate vulnerabili su architetture x64, x86 e ARM64.


$ cat ./technical_background.txt

Cos'è SPNEGO e perché è nel kernel?

SPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) è il livello di handshake di autenticazione che Windows usa prima di ogni sessione autenticata. Le applicazioni spesso necessitano di autenticazione senza fissare un protocollo — Windows può usare Kerberos in un ambiente, NTLM in un altro, o un meccanismo di autenticazione esteso in un modello di trust diverso. SPNEGO è il meccanismo di negoziazione che decide quale protocollo di autenticazione usare.

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

NEGOEX è il meccanismo di estensione all'interno di SPNEGO — consente che autenticazioni PKU2U (peer-to-peer) e altri meccanismi personalizzati vengano negoziati. La vulnerabilità risiede nella funzione ntoskrnl!SpnegoHandleExtended, che elabora strutture SPNEGO_TOKEN sovradimensionate inviate in più frammenti, causando overflow nell'heap del kernel.

Perché PKU2U amplifica il rischio?

Il rischio è elevato nei sistemi in cui la Group Policy "Network security: Allow PKU2U authentication requests to this computer to use online identities" è abilitata. Questa configurazione, abilitata per impostazione predefinita in molte distribuzioni di Windows, amplifica la superficie di attacco di NEGOEX consentendo l'autenticazione peer-to-peer che attiva il percorso di codice vulnerabile di NEGOEX su endpoint che altrimenti non lo esporrebbero.


$ cat ./architecture.txt

┌─────────────────────────────────────────────────────────────────────────┐
│            CVE-2025-47981 ASSESSMENT SCRIPT — FLOW                      │
│                                                                         │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 1: Windows Version                                        │  │
│  │  Get-CimInstance Win32_OperatingSystem → .Version               │  │
│  │  Contesto: identifica la build esatta per correlazione con patch│  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 2: ntoskrnl.exe Version                                   │  │
│  │  Get-Item C:\Windows\System32\ntoskrnl.exe                      │  │
│  │  Confronto: installata < 10.0.14393.8246 → VULNERABILE          │  │
│  │  Confronto: installata ≥ 10.0.14393.8246 → KB5062560 applicato  │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 3: PKU2U Registry Key                                     │  │
│  │  HKLM:\SYSTEM\...\Lsa\pku2u\AllowOnlineID                      │  │
│  │  1 → PKU2U abilitato → superficie di attacco ampliata          │  │
│  │  0 → PKU2U disabilitato → vettore PKU2U mitigato               │  │
│  │  Non esiste → configurazione predefinita (valutare tramite GPO) │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│  ┌──────────────────────────────────────────────────────────────────┐  │
│  │  CHECK 4: Porte SPNEGO Esposte                                   │  │
│  │  Get-NetTCPConnection → 135, 445, 5985, 3389, 80, 443, 25      │  │
│  │  Ogni porta aperta = un vettore di consegna dell'exploit        │  │
│  └──────────────────────────────────────────────────────────────────┘  │
│                              │                                          │
│                    Format-Table -AutoSize                               │
│                    (output leggibile per report di pentest)            │
└─────────────────────────────────────────────────────────────────────────┘

$ cat ./design_decisions.md

1. Verifica della Versione tramite 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) {
    "Vulnerabile - Patch mancante ($missingKB)"
}

Perché ntoskrnl.exe e non Get-HotFix?

Get-HotFix elenca i KB installati, ma ha limitazioni note:

  • Non rileva i KB applicati tramite DISM o Windows Update in modalità silenziosa
  • Può mostrare KB disinstallati come presenti in alcuni scenari
  • Non riflette lo stato reale del binario in esecuzione

Verificare la versione di ntoskrnl.exe direttamente è più affidabile — il file riceve la versione patchata solo quando il KB è stato effettivamente applicato e il sistema riavviato. Un sistema con KB in attesa di riavvio avrà ancora la vecchia versione del kernel in memoria.

Cast [version]: PowerShell confronta le stringhe lessicograficamente per impostazione predefinita — "10.0.14393.8246" -lt "10.0.14393.800" sarebbe $false (errato). Il cast a [version] garantisce un confronto numerico corretto per ottetto.

[System.IO.Path]::Combine($env:SystemRoot, ...): usa SystemRoot invece di C:\Windows hardcoded — portabile per sistemi con Windows installato su unità diverse.


2. Versione di Riferimento 10.0.14393.8246

10.0.14393.xxxx  →  Windows 10 version 1607 / Windows Server 2016
         │
         └─ 8246 = build con KB5062560 applicato

Perché questa build specifica?

Scarica lo strumento