
NTLM/SMB के असुरक्षित उपयोग का ऑडिट, हार्डनिंग और शिकार करने के लिए PowerShell टूलकिट, जो ईवेंट लॉग विश्लेषण और डिटेक्शन क्वेरीज़ के साथ CVE-2025-50154 क्रेडेंशियल लीक जोखिमों को संबोधित करता है।
लेखक: w01f
संस्करण: 1.0
उद्देश्य: असुरक्षित NTLM/SMB उपयोग का ऑडिट, हार्डन और खोज करना ताकि CVE-2025-50154 जैसे जोखिमों को कम किया जा सके।
गंभीरता: उच्च
प्रकार: NTLM क्रेडेंशियल लीक + पैच बाईपास (ज़ीरो-क्लिक)
प्रभावित: Windows 10/11, Windows Server
सारांश:
CVE-2025-50154, Microsoft के पिछले पैच CVE-2025-24054 का एक बाईपास है। पिछले शमन के बावजूद, एक निर्मित फ़ाइल या UNC पथ Windows Explorer को दूरस्थ संसाधन प्राप्त करने और बिना किसी उपयोगकर्ता इंटरैक्शन (ज़ीरो-क्लिक) के NTLM प्रमाणीकरण शुरू करने के लिए ट्रिगर कर सकता है।
इसके परिणामस्वरूप हो सकता है:
यह क्यों महत्वपूर्ण है: यह बाईपास दर्शाता है कि हमलावर अभी भी Explorer के संसाधन हैंडलिंग के माध्यम से लीगेसी प्रमाणीकरण पथों का शोषण कर सकते हैं। NTLM और SMB क्लाइंट व्यवहार को हार्डन करना, साथ ही संदिग्ध Explorer-आरंभित कनेक्शनों की निगरानी करना, महत्वपूर्ण है।
.\NTLM_SMB_HardeningToolkit.ps1 -Mode Audit -AllowlistCIDRs "10.0.0.0/8,192.168.0.0/16" -HoursBack 24 -ExportJson .\ntlm_audit.json
.\NTLM_SMB_HardeningToolkit.ps1 -Mode Harden -AllowlistCIDRs "10.0.0.0/8,192.168.0.0/16" -SampleHosts "filesrv01.corp,10.0.5.20"
.\NTLM_SMB_HardeningToolkit.ps1 -Mode Revert
नीचे ड्रॉप-इन डिटेक्शन क्वेरीज़ हैं जो संभावित रूप से CVE-2025-50154 शोषण पैटर्न से संबंधित संदिग्ध NTLM/SMB उपयोग की पहचान करने के लिए हैं।
DeviceNetworkEvents
| where InitiatingProcessFileName =~ "explorer.exe"
| where RemotePort in (445, 139)
| where not(RemoteIP in ("10.0.0.0/8","172.16.0.0/12","192.168.0.0/16"))
| project Timestamp, DeviceName, RemoteIP, RemotePort, InitiatingProcessFileName
let lnk = DeviceFileEvents
| where FileName endswith ".lnk"
| where FolderPath has @"\Users\" and FolderPath has @"\Desktop";
let smb = DeviceNetworkEvents
| where RemotePort in (445,139)
| where InitiatingProcessFileName =~ "explorer.exe";
lnk
| join kind=innerunique (smb) on DeviceId
| where smb.Timestamp between (lnk.Timestamp .. lnk.Timestamp + 5m)
| project DeviceName, lnk.Timestamp, smb.Timestamp, FolderPath, RemoteIP
DeviceLogonEvents
| where LogonType == "Network"
| where AuthenticationPackage =~ "NTLM"
| summarize count() by DeviceName, RemoteIP, AccountUpn, bin(Timestamp, 10m)
| order by count_ desc
explorer.exe से TCP 445/139 पर EID 3 (NetworkConnect)।.lnk फ़ाइलों के लिए EID 11 (FileCreate)।यह टूलकिट केवल शैक्षिक और रक्षात्मक सुरक्षा उद्देश्यों के लिए प्रदान किया गया है।
परिवर्तन नियंत्रण और परीक्षण के बिना उत्पादन वातावरण में उपयोग न करें।