PoC exploit code for CVE-2021-26855.
Original code was developed by https://github.com/GreyOrder. The original repo was deleted shortly after additional features (user enumeration etc.) were added.
Please post a pull request, if you have the latest version.
CVE-2021-26855 ssrf simple use of golang exercises
Affected version:
Exchange Server 2013 is less than CU23 Exchange Server 2016 is less than CU18 Exchange Server 2019 is less than CU7
Conditions of use:
This vulnerability is different from previous exchange vulnerabilities. This vulnerability does not require a user identity that can log in. It can obtain internal user resources without authorization. It can be used with CVE-2021-27065 to implement remote command execution.
Vulnerability trigger requirements:
Vulnerability in the target server
The target exchange server must be a load balancing server, that is, two or more servers are used at the same time
The target email address. Note that this address needs to be an in-domain email address instead of an email address, there is a difference between the two
The attacker must also identify the fully qualified domain name (FQDN) of the internal Exchange server
Among the above four items, FQDN can be captured by ntlm type2 message; email addresses can be enumerated directly.
Instructions for use:
To exploit this vulnerability, it is more convenient to use a scripting language such as ruby python. Writing in golang is mainly for learning golang, so this small tool can only be regarded as a semi-finished product and will be updated when there is time.
This tool supports vulnerability detection, user enumeration, and can realize simple mail id and header reading (in fact, xml content modification). Follow-up use can refer to 8581, which is to submit xml.
usage:
go run CVE-2021-21978.go -h
-h string is required, target address or domain name
-U string Optional, need to enumerate user list
-d optional, download mail
-l Optional, list the mailing list
-n string is optional, you need to specify FQND to fill in
-t string Optional, request delay time (default "1")
-u string Optional, specify the target (default "administrator")