
# पावरशेल मूल्यांकन स्क्रिप्ट विंडोज़ सिस्टम में CVE-2025-47981 (SPNEGO NEGOEX हीप ओवरफ्लो) की जांच करने वाली पावरशेल स्क्रिप्ट, जो कर्नेल संस्करण, PKU2U रजिस्ट्री कुंजी और उजागर SPNEGO पोर्ट्स की पुष्टि करती है। सुधार के चरण और पहचान संबंधी मार्गदर्शन प्रदान करती है।
प्रकार: भेद्यता आकलन — पहचान / अनुपालन जाँच CVE: CVE-2025-47981 CVSS: 9.8 क्रिटिकल (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) CWE: CWE-122 — हीप-आधारित बफर ओवरफ्लो उपनाम: "SPNEGO Nightmare" / "Windows Authentication Wormable RCE" पैच: KB5062560 | जुलाई 2025 पैच मंगलवार
PowerShell आकलन स्क्रिप्ट जो जाँचती है कि क्या कोई Windows सिस्टम CVE-2025-47981 के प्रति संवेदनशील है — SPNEGO Extended Negotiation (NEGOEX) तंत्र में हीप-आधारित बफर ओवरफ्लो जो बिना प्रमाणीकरण के RCE की अनुमति देता है। एक्सप्लॉइट निष्पादित नहीं करता — केवल एक्सपोज़र और पैच स्थिति का मूल्यांकन करता है।
Developed by: HKK$ cat ./vulnerability_summary.txtCVE-2025-47981 NEGOEX प्रोटोकॉल में एक हीप-आधारित बफर ओवरफ्लो है — Windows के SPNEGO प्रमाणीकरण तंत्र की आंतरिक एक्सटेंशन परत। यह भेद्यता गैर-प्रमाणित हमलावरों को मनमाना दूरस्थ कोड निष्पादित करने की अनुमति देती है, संभावित रूप से सिस्टम पर पूर्ण नियंत्रण प्राप्त कर लेती है।
विश्लेषकों ने पहले ही CVE को "एक महत्वपूर्ण समस्या बनने की दुर्भाग्यपूर्ण विशेषताओं" वाला बताया है, जिसमें wormable क्षमता है — उपयोगकर्ता के इंटरैक्शन के बिना संवेदनशील सिस्टम के बीच स्वचालित रूप से प्रसारित होने में सक्षम।
यह भेद्यता Windows 10 (संस्करण 1607 और उससे आगे) और Windows Server 2008 R2 से Server 2025 तक सभी को प्रभावित करती है, जिसमें Server Core वेरिएंट भी शामिल हैं — x64, x86 और ARM64 आर्किटेक्चर पर 33 से अधिक विभिन्न Windows और Server कॉन्फ़िगरेशन संवेदनशील पुष्टि किए गए हैं।
$ cat ./technical_background.txtSPNEGO (Simple and Protected GSSAPI Negotiation Mechanism) प्रमाणीकरण हैंडशेक परत है जिसे Windows प्रत्येक प्रमाणित सत्र से पहले उपयोग करता है। एप्लिकेशन को अक्सर एक प्रोटोकॉल तय किए बिना प्रमाणीकरण की आवश्यकता होती है — Windows एक वातावरण में Kerberos, दूसरे में NTLM, या एक अलग ट्रस्ट मॉडल में एक विस्तारित प्रमाणीकरण तंत्र का उपयोग कर सकता है। SPNEGO वह नेगोशिएशन तंत्र है जो तय करता है कि कौन सा प्रमाणीकरण प्रोटोकॉल उपयोग करना है।
क्लाइंट सर्वर
│ │
│──── SPNEGO Negotiation ────────►│
│ MechTypeList: │
│ [Kerberos, NTLM, NEGOEX] │
│ │
│◄─── Selected Mechanism ─────────│
│ │
│──── Auth Exchange ─────────────►│ ← यहाँ NEGOEX में ओवरफ्लो
NEGOEX SPNEGO के भीतर एक्सटेंशन तंत्र है — यह PKU2U (पीयर-टू-पीयर) प्रमाणीकरण और अन्य कस्टम तंत्रों को नेगोशिएट करने की अनुमति देता है। यह भेद्यता ntoskrnl!SpnegoHandleExtended फ़ंक्शन में है, जो कई फ़्रैगमेंट में भेजे गए अत्यधिक बड़े SPNEGO_TOKEN संरचनाओं को प्रोसेस करता है, जिससे कर्नेल के हीप में ओवरफ्लो होता है।
जोखिम उन सिस्टमों पर अधिक है जहाँ Group Policy "Network security: Allow PKU2U authentication requests to this computer to use online identities" सक्षम है। यह कॉन्फ़िगरेशन, जो कई Windows डिप्लॉयमेंट में डिफ़ॉल्ट रूप से सक्षम है, पीयर-टू-पीयर प्रमाणीकरण की अनुमति देकर NEGOEX की हमले की सतह को बढ़ाता है जो उन एंडपॉइंट्स पर संवेदनशील NEGOEX कोड पथ को सक्रिय करता है जो अन्यथा इसे एक्सपोज़ नहीं करते।
$ cat ./architecture.txt┌─────────────────────────────────────────────────────────────────────────┐
│ CVE-2025-47981 ASSESSMENT SCRIPT — FLOW │
│ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ CHECK 1: Windows Version │ │
│ │ Get-CimInstance Win32_OperatingSystem → .Version │ │
│ │ संदर्भ: पैच के साथ सहसंबंध के लिए सटीक बिल्ड की पहचान करता है │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ CHECK 2: ntoskrnl.exe Version │ │
│ │ Get-Item C:\Windows\System32\ntoskrnl.exe │ │
│ │ तुलना: स्थापित < 10.0.14393.8246 → संवेदनशील │ │
│ │ तुलना: स्थापित ≥ 10.0.14393.8246 → KB5062560 लागू │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ CHECK 3: PKU2U Registry Key │ │
│ │ HKLM:\SYSTEM\...\Lsa\pku2u\AllowOnlineID │ │
│ │ 1 → PKU2U सक्षम → हमले की सतह बढ़ी हुई │ │
│ │ 0 → PKU2U अक्षम → PKU2U वेक्टर कम हुआ │ │
│ │ मौजूद नहीं → डिफ़ॉल्ट कॉन्फ़िगरेशन (GPO के माध्यम से मूल्यांकन) │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌──────────────────────────────────────────────────────────────────┐ │
│ │ CHECK 4: एक्सपोज़्ड SPNEGO पोर्ट्स │ │
│ │ Get-NetTCPConnection → 135, 445, 5985, 3389, 80, 443, 25 │ │
│ │ प्रत्येक खुला पोर्ट = एक्सप्लॉइट डिलीवरी वेक्टर │ │
│ └──────────────────────────────────────────────────────────────────┘ │
│ │ │
│ Format-Table -AutoSize │
│ (पेंटेस्ट रिपोर्ट के लिए पठनीय आउटपुट) │
└─────────────────────────────────────────────────────────────────────────┘
$ cat ./design_decisions.mdntoskrnl.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)"
}
ntoskrnl.exe क्यों और Get-HotFix क्यों नहीं?
Get-HotFix स्थापित KBs को सूचीबद्ध करता है, लेकिन इसकी ज्ञात सीमाएँ हैं:
DISM या Windows Update के माध्यम से साइलेंट मोड में लागू KBs का पता नहीं लगाताntoskrnl.exe के संस्करण की सीधे जाँच करना अधिक विश्वसनीय है — फ़ाइल केवल तभी पैच किया गया संस्करण प्राप्त करती है जब KB प्रभावी रूप से लागू किया गया हो और सिस्टम पुनः प्रारंभ किया गया हो। रीबूट लंबित KB वाले सिस्टम में अभी भी मेमोरी में पुराना कर्नेल संस्करण होगा।
[version] कास्ट: PowerShell डिफ़ॉल्ट रूप से स्ट्रिंग्स की लेक्सिकोग्राफ़िक रूप से तुलना करता है — "10.0.14393.8246" -lt "10.0.14393.800" $false (गलत) होगा। [version] में कास्ट प्रति-ऑक्टेट सही संख्यात्मक तुलना सुनिश्चित करता है।
[System.IO.Path]::Combine($env:SystemRoot, ...): हार्डकोडेड C:\Windows के बजाय SystemRoot का उपयोग करता है — विभिन्न ड्राइव पर Windows स्थापित सिस्टमों के लिए पोर्टेबल।
10.0.14393.824610.0.14393.xxxx → Windows 10 संस्करण 1607 / Windows Server 2016
│
└─ 8246 = KB5062560 लागू के साथ बिल्ड
यह विशिष्ट बिल्ड क्यों?
Windows Server 2016 (आधार बिल्ड 14393) पैच के लिए सबसे महत्वपूर्ण वातावरणों में से एक है — DCs, फ़ाइल सर्वर और कॉर्पोरेट आंतरिक सेवाओं में व्यापक रूप से उपयोग किया जाता है। संस्करण 8246 KB5062560 (जुलाई 2025) लागू करने के बाद कर्नेल के बिल्ड से मेल खाता है।