CVE identifier(s) | CVE- 2020-1472 |
---|---|
Date discovered | 17 August 2020 |
Date patched | 11 February 2021 |
Discoverer | Tom Tervoort from Secura [1] |
Affected software | Netlogon Remote Protocol |
Zerologon (formally: CVE - 2020-1472) is a privilege elevation vulnerability in Microsoft's authentication protocol Netlogon Remote Protocol (MS-NRPC) , as implemented in the Windows Client Authentication Architecture and Samba. [2] The vulnerability was first reported to Microsoft by security researcher Tom Tervoort from Secura on 17 August 2020 and dubbed "Zerologon". [1] [3] Zerologon was given a Common Vulnerability Scoring System v3.1 severity ranking of 10 by the U.S. American National Institute of Standards and Technology and a 5.5 by Microsoft. Crowdstrike classifies it as the most severe Active Directory vulnerability of 2020. [4]
The vulnerability allows an adversarial user of the network to be authenticated by a Domain Controller (DC) and further impersonate the DC to elevate to domain admin privileges. [4] It allows attackers to access all valid usernames and passwords in each Microsoft network that they breached. [5] [6] This in turn allows them to access additional credentials necessary to assume the privileges of any legitimate user of the network, which in turn can let them compromise Microsoft 365 email accounts. [5] [6]
The Netlogon Remote Protocol (MS-NRPC) is a Microsoft protocol used for authentication and secure communication between clients and DCs in a Windows network environment. It facilitates the exchange of authentication data and the establishment of secure channels for communication, enabling clients to authenticate against Active Directory and other network services. The protocol plays a key role in domain join operations, password changes, and other security-related tasks within a Windows domain. [7]
The original report by Secura explains the exploit in five steps. [4]
The attack focuses on the DC of a network. MS-NRPC relies on a challenge–response authentication to generate a session key and client credentials from a shared secret (such as a passphrase), along with client and server challenges. The client credentials are computed from the session key, an initialization vector (IV), and the client challenge using a less common Advanced Encryption Standard (AES) block cipher mode, namely 8-bit Cipher Feedback Mode (AES-CFB8). Because the server challenge is randomly generated, the resulting session key is also effectively random and is then used to encrypt the IV and the client challenge. In 1 out of 256 cases, the AES-encrypted ciphertext starts with a zero byte, which is XOR´ed with the first byte of the client challenge. If the client challenge is set to all zero, the result will also be a zero byte. In the next encryption round, the AES input is shifted to include the just XOR’ed byte. Since the input remains all zeros and the session key does not change, each subsequent calculation will also produce zero bytes. The server-computed client credentials are then compared to those sent by the client, which an attacker could have also set to all zeros. The client is now authenticated. [4] [3]
To circumvent signing and encryption with the session key (which the attacker does not know) that is performed by MS-NRPC, an attacker can disable it by omitting a flag in the authentication RPC call. [4] [3]
Another obstacle the attacker must overcome is the so-called authenticator value used by Netlogon, that is required for some calls. This value is computed from an incrementing value held by the client, the client credentials, and a timestamp. If the incrementing value is set to all-zero by the client and the timestamp is also set to all-zero when an RPC call is invoked, the server will set the authenticator to all-zero as well, allowing the attacker to carry out the call. [4] [3]
In the penultimate step, the password is set to an empty one, allowing the attacker to follow the normal protocol procedure from this point on. [4] [3]
It is possible for the attacker to impersonate not just any user on the domain, but the domain controller itself. Once logged in, the attacker can retrieve hashed credentials from the DC, enabling a Pass the hash attack and ultimately elevating to the domain administrator. [4] [3]
Microsoft addressed the Zerologon vulnerability through two security updates. A less strict one in August 2020 and a later one in February 2021 that enforces signing and encryption for MS-NRPC calls by default, with the ability to allow certain devices to handle legacy support. [8]
In 2020, Zerologon started to be used by sophisticated cyberespionage campaigns of threat groups such as Red Apollo in global attacks against the automotive, engineering and pharmaceutical industry. [9] Zerologon was also used to hack the Municipal wireless network of Austin, Texas. [5]
Unusually, Zerologon was the subject of an emergency directive from the United States Cybersecurity and Infrastructure Security Agency. [10]