Package: wesng
Windows Exploit Suggester - Next Generation (WES-NG)WES-NG is a tool based on the output of Windows'systeminfoutility which provides the list of vulnerabilities the OS is vulnerable to, including any exploits for these vulnerabilities. Every Windows OS between Windows XP and Windows 11, including their Windows Server counterparts, is supported.At the BITSADMIN blog an in-depth article on WES-NG is available:Windows Security Updates for Hackers.UsageDownload WES-NG usingpip install wesngor using the following commandline:git clone https://github.com/bitsadmin/wesng --depth 1Obtain the latest database of vulnerabilities by executing the commandwes.py --updateThere are two options to check for missing patches:
a. Launchmissingkbs.vbson the host to have Windows determine which patches are missing
b. Use Windows' built-insysteminfo.exetool to obtain the system information of the local system, or from a remote system usingsysteminfo /S MyRemoteHost, and redirect this to a file:systeminfo > systeminfo.txtDepending on the method chosen in step 3 execute WES-NG:
a. With themissing.txtfile as input:wes.py --missing missing.txt(orwes.py -m missing.txt)
b. With thesysteminfo.txtfile as the parameter:wes.py systeminfo.txtWES-NG then uses the database to determine which patches are applicable to the system and to which vulnerabilities are currently exposed, including exploits if available.As the data provided by Microsoft's MSRC feed is frequently incomplete and false positives are reported bywes.py, @DominicBreuker contributed the--muc-lookupparameter to validate identified missing patches from thesysteminfo.txtfile against Microsoft's Update Catalog. Additionally, make sure to check theEliminating false positivespage in the Wiki on how to interpret the results.
For an overview of all available parameters for bothmissingkbs.vbsandwes.py, checkCMDLINE.md.DemoCollectorThis GitHub repository regularly updates the database of vulnerabilities, so runningwes.pywith the--updateparameter gets the latest version.
If manual generation of the .csv file with hotfix information is required, use the scripts from the/collectorfolder to compile the database. Read the comments at the top of each script and execute them in the order as they are listed below. Executing these scripts will produce definitions.zip.
The WES-NG collector pulls information from various sources:Microsoft Security Bulletin Data: KBs for older systems [1]MSRC: The Microsoft Security Update API of the Microsoft Security Response Center (MSRC): Standard source of information for modern Microsoft Updates [2]NIST National Vulnerability Database (NVD): Complement vulnerabilities with Exploit-DB links [3]
These are combined into a single .csv file which is compressed and hosted in this GitHub repository.RationaleI developed WES-NG because whileGDSSecurity's Windows-Exploit-Suggesterworked excellently for operating systems in the Windows XP and Windows Vista era, GDSSecurity's Windows-Exploit-Suggester does not work for operating systems like Windows 11 and vulnerabilities published in recent years. This is because Microsoft replaced the Microsoft Security Bulletin Data Excel file [1] on which GDSSecurity's Windows-Exploit-Suggester is fully dependent, by the MSRC API [2]. The Microsoft Security Bulletin Data Excel file has not been updated since Q1 2017, so later operating systems and vulnerabilities cannot be detected. Thanks@gdssecurity, for this great tool which has served many of us for so many years!BugsBugs can be submitted via theIssuespageFor false positives in results, please read theEliminating false positivespage at the Wiki first. In case that doesn't significantly reduce the number of false positives, follow the steps at theReport false positivespage on theWiki.ChangelogSeeCHANGELOG.mdImprovementsAdd support forNoPowerShell'sGet-SystemInfocmdlet outputAdd support for alternative output formats ofsysteminfo(csv, table)More testing on the returned false positive vulnerabilities - see also thewikiReferences[1]https://www.microsoft.com/download/details.aspx?id=36982[2]https://portal.msrc.microsoft.com/en-us/developer[3]https://nvd.nist.gov/vuln/data-feedsAuthored by Arris Huijgen (@bitsadmin-https://github.com/bitsadmin/)