
CVE-2013-3900 (WinVerifyTrust) / Tenable Plugin 166555 के लिए EnableCertPaddingCheck का उपयोग करते हुए PowerShell निवारण
इस रिपॉजिटरी में एक PowerShell सुधार + सत्यापन स्क्रिप्ट शामिल है जो Tenable/Nessus खोज को संबोधित करती है:
स्क्रिप्ट निम्नलिखित सेट करके WinVerifyTrust प्रमाणपत्र पैडिंग जाँच को लागू करती है:
EnableCertPaddingCheck (DWORD) = 164-बिट सिस्टम पर, स्कैनर को मूल रजिस्ट्री पथ और Wow6432Node (32-बिट दृश्य) रजिस्ट्री पथ दोनों में मान सेट करने की आवश्यकता होती है।
CVE-2013-3900 इस बात से संबंधित है कि Windows WinVerifyTrust का उपयोग करके Authenticode हस्ताक्षर कैसे मान्य करता है।
यदि प्रमाणपत्र पैडिंग जाँच लागू नहीं की जाती है, तो कुछ निर्मित हस्ताक्षरों को असुरक्षित परिदृश्यों में मान्य माना जा सकता है, और भेद्यता स्कैनर होस्ट को गैर-अनुपालक के रूप में चिह्नित करेंगे।

✅ सुनिश्चित करती है कि इसे प्रशासक के रूप में चलाया जाए
✅ पता लगाती है कि OS 64-बिट है या नहीं
✅ सुनिश्चित करती है कि आवश्यक रजिस्ट्री कुंजियाँ मौजूद हों
✅ EnableCertPaddingCheck को सेट करती है:
1 जब $secureEnvironment = $true (सुरक्षित / अनुशंसित)0 जब $secureEnvironment = $false (असुरक्षित / प्रयोगशाला/परीक्षण)✅ स्पष्ट पहले/बाद तालिका और अनुपालन परिणाम प्रिंट करती है
स्क्रिप्ट स्थान:
स्क्रिप्ट सेटिंग को यहाँ लागू करती है:
HKLM:\Software\Microsoft\Cryptography\Wintrust\ConfigHKLM:\Software\Wow6432Node\Microsoft\Cryptography\Wintrust\Config (64-बिट OS पर)लागू किया गया मान:
EnableCertPaddingCheck (DWORD)$secureEnvironment = $true → शमन लागू करें (अनुशंसित)$secureEnvironment = $false → शमन अक्षम करें (केवल प्रयोगशाला/परीक्षण).\scripts\Set-WinVerifyTrustCertPadding.ps1
स्क्रिप्ट निम्न द्वारा कॉन्फ़िगरेशन सत्यापित करती है:
0 लौटानाउच्च गंभीरता खोज मौजूद (प्लगइन 166555 – CVE-2013-3900)।
कुल खोजें: 5

उच्च गंभीरता खोज हटा दी गई।
कुल खोजें घट गईं: 5 → 4
