Beveiligingsonderzoekers onthullen hoe het cryptografische authenticatieschema in Netlogon kan worden gebruikt om de controle over een Windows-domeincontroller (DC) over te nemen.
Op 11 september publiceerden onderzoekers van ons collega security bedrijf Secura een blogpost voor een kritische kwetsbaarheid die ze “Zerologon” hebben genoemd. De blogpost bevat een whitepaper waarin de volledige impact en uitvoering van de kwetsbaarheid wordt uitgelegd, geïdentificeerd als CVE-2020-1472, die een CVSSv3-score van 10.0, de maximale score, heeft gekregen. Zerologon werd gepatcht door Microsoft in de augustus Patch Tuesday ronde van updates. Deze openbaarmaking volgt op een eerdere Netlogon gerelateerde kwetsbaarheid, CVE-2019-1424, die Secura eind vorig jaar in detail heeft beschreven.
CVE-2020-1472 is een privilege escalation kwetsbaarheid als gevolg van het onveilige gebruik van AES-CFB8 encryptie voor Netlogon sessies. De AES-CFB8 standaard vereist dat elke byte van platte tekst, zoals een wachtwoord, een gerandomiseerde Initialisatie Vector (IV) moet hebben zodat wachtwoorden niet geraden kunnen worden. De ComputeNetlogonCredential functie in Netlogon zet de IV op een vaste 16 bits, wat betekent dat een aanvaller de ontcijferde tekst kan controleren. Een aanvaller kan deze fout uitbuiten om de identiteit van eender welke machine op een netwerk na te bootsen wanneer hij zich probeert te authenticeren bij de Domain Controller (DC). Verdere aanvallen zijn dan mogelijk, inclusief de volledige overname van een Windows-domein. Secura’s whitepaper merkt ook op dat een aanvaller eenvoudigweg het ‘secretsdump’ script van Impacket zou kunnen uitvoeren om een lijst van gebruikershashes uit een doel-DC te halen.
Om deze kwetsbaarheid uit te buiten, zou de aanvaller de aanval moeten lanceren vanaf een machine op hetzelfde Local Area Network (LAN) als zijn doelwit. Een kwetsbare cliënt of DC die aan het internet wordt blootgesteld, is op zichzelf niet exploiteerbaar. De aanval vereist dat de gespoofde login werkt als een normale inlogpoging op een domein. Active Directory (AD) zou de verbindende client moeten herkennen als zijnde binnen zijn logische topologie, welke externe adressen niet zouden hebben.
Er zijn verschillende proofs of concept (PoC’s) gepubliceerd voor GitHub [1] [2] [3] [4] die een brede interesse en experimenten in de hele security community laten zien. Onderzoekers zijn snel aan het werk geweest om een succesvolle exploitatie te bevestigen. Kritische en opvallende kwetsbaarheden krijgen vaak brede belangstelling van zowel security onderzoekers als aanvallers.
Bij een hypothetische aanval zou men deze kwetsbaarheid kunnen gebruiken om ransomware in een organisatie in te zetten en een blijvende aanwezigheid te behouden als de schoonmaak- en herstelwerkzaamheden geen extra kwaadaardige scripts bevatten. Organisaties met back-ups die toegankelijk zijn voor het netwerk zouden een “perfect storm” kunnen veroorzaken als een ransomwaregroep back-ups vernietigt om de kans op uitbetaling door de slachtofferorganisatie te vergroten.
Het toepassen van de Patch Tuesday update van augustus vam Microsoft’s Advisory zal de kwetsbaarheid verhelpen door remote procedure calls (RPC) in het protocol Netlogon voor alle apparaten van Windows af te dwingen. Access42 moedigt zowel gebruikers als admins sterk aan om deze patch zo snel mogelijk toe te passen.
Yeah, I can confirm that this public exploit for Zerologon (CVE-2020-1472) works. Anybody who has not installed the patch from August's Patch Tuesday already is going to be in much worse shape than they already were.https://t.co/SWK2hUDOYc https://t.co/0SDFfageQC pic.twitter.com/Lg8auMdtVU
— Will Dormann (@wdormann) September 14, 2020
Gebruikers moeten zich ervan bewust zijn dat Microsoft op 9 februari 2021 een herziening van dit advies uitbrengt en dat, zodra de enforcement fase begint, de enforcement mode voor alle niet-Windows apparaten vereist zal zijn. Beheerders kunnen handmatig specifieke apparaten toestaan via het groepsbeleid voor legacy-apparaten.
Een lijst van Tenable plugins om deze kwetsbaarheid te identificeren is hier te vinden. Tenable zal ook extra plugins vrijgeven voor de update van 9 februari 2021. Een compliance-auditbestand, dat hier beschikbaar is, kan worden gebruikt om ervoor te zorgen dat de FullSecureChannelProtection registersleutelwaarde in het groepsbeleid voor de DC wordt vastgelegd. De fix van augustus 2020 zou deze registersleutel moeten instellen nadat de patch met succes is toegepast.
Tenable heeft ook Microsoft Netlogon Elevation of Privilege uitgebracht, een niet-geauthenticeerde plugin voor klanten die hun DC’s willen scannen om de exploiteerbaarheid te testen. Deze plugin probeert zich te authenticeren naar het doelwit met behulp van een all zero client credential na het verstrekken van een all zero client challenge. Op kwetsbare doelen zal dit gemiddeld eens in de 256 pogingen lukken, en deze plugin zal dit tot 2000 keer proberen om na te gaan of het doelwit kwetsbaar is. Vanwege het aantal aanmeldingspogingen dat nodig is om de exploiteerbaarheid van een doelwit nauwkeurig te controleren, raadt Access42 aan deze plugin niet naast andere plugins in een scan uit te voeren, aangezien deze bedoeld is voor single-target Domain Controller scans. Om de plugin in te schakelen, moeten gebruikers de instelling ‘Only use credentials provided by the user’ onder de sectieBrute Force in de Assessment opties in hun scanconfiguratie uitschakelen.
Cookie | Duration | Description |
---|---|---|
_GRECAPTCHA | 5 months 27 days | This cookie is set by Google. In addition to certain standard Google cookies, reCAPTCHA sets a necessary cookie (_GRECAPTCHA) when executed for the purpose of providing its risk analysis. |
cookielawinfo-checkbox-advertisement | 1 year | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Advertisement". |
cookielawinfo-checkbox-analytics | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics". |
cookielawinfo-checkbox-functional | 11 months | The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional". |
cookielawinfo-checkbox-necessary | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary". |
cookielawinfo-checkbox-others | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other. |
cookielawinfo-checkbox-performance | 11 months | This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance". |
CookieLawInfoConsent | 1 year | Records the default button state of the corresponding category & the status of CCPA. It works only in coordination with the primary cookie. |
viewed_cookie_policy | 11 months | The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data. |
Cookie | Duration | Description |
---|---|---|
bcookie | 2 years | This cookie is set by linkedIn. The purpose of the cookie is to enable LinkedIn functionalities on the page. |
lang | session | This cookie is used to store the language preferences of a user to serve up content in that stored language the next time user visit the website. |
lidc | 1 day | This cookie is set by LinkedIn and used for routing. |
Cookie | Duration | Description |
---|---|---|
YSC | session | This cookies is set by Youtube and is used to track the views of embedded videos. |
Cookie | Duration | Description |
---|---|---|
_ga | 2 years | This cookie is installed by Google Analytics. The cookie is used to calculate visitor, session, campaign data and keep track of site usage for the site's analytics report. The cookies store information anonymously and assign a randomly generated number to identify unique visitors. |
_gat_gtag_UA_116473530_1 | 1 minute | This cookie is set by Google and is used to distinguish users. |
_gat_UA-116473530-1 | 1 minute | This is a pattern type cookie set by Google Analytics, where the pattern element on the name contains the unique identity number of the account or website it relates to. It appears to be a variation of the _gat cookie which is used to limit the amount of data recorded by Google on high traffic volume websites. |
_gid | 1 day | This cookie is installed by Google Analytics. The cookie is used to store information of how visitors use a website and helps in creating an analytics report of how the website is doing. The data collected including the number visitors, the source where they have come from, and the pages visted in an anonymous form. |
Cookie | Duration | Description |
---|---|---|
bscookie | 2 years | This cookie is a browser ID cookie set by Linked share Buttons and ad tags. |
IDE | 1 year 24 days | Used by Google DoubleClick and stores information about how the user uses the website and any other advertisement before visiting the website. This is used to present users with ads that are relevant to them according to the user profile. |
prism_476809757 | 1 month | Used by ActiveCampaign to track usage of newsletters |
test_cookie | 15 minutes | This cookie is set by doubleclick.net. The purpose of the cookie is to determine if the user's browser supports cookies. |
VISITOR_INFO1_LIVE | 5 months 27 days | This cookie is set by Youtube. Used to track the information of the embedded YouTube videos on a website. |
yt-remote-connected-devices | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
yt-remote-device-id | never | YouTube sets this cookie to store the video preferences of the user using embedded YouTube video. |
Cookie | Duration | Description |
---|---|---|
AnalyticsSyncHistory | 1 month | No description |
CONSENT | 16 years 7 months 5 days 13 hours | No description |
li_gc | 2 years | No description |
UserMatchHistory | 1 month | Linkedin - Used to track visitors on multiple websites, in order to present relevant advertisement based on the visitor's preferences. |