av Bhabesh Raj Rai, Associate Security Analytics Engineer

Den 19 juli 2021 publicerade säkerhetsforskaren Lionel Gilles tekniska detaljer och ett PoC-verktyg för en sårbarhet kallad PetitPotam. Sårbarheten gör det möjligt för en domänanvändare att manipulera en domänkontrollant så att den autentiserar sig mot en fjärrserver med hjälp av MS-EFSRPC (Microsoft Encrypting File System Remote Protocol) som avslöjar dess autentiseringshash under processen.

Det som gör såbarheten allvarlig är att angripare kan knyta den till en relay-sårbarhet i Active Directory Certificate Services-server (AD CS), en sårbarhet som nyligen upptäckts av forskare hos Specterops. I praktiken kan angripare vidarebefordra en enhets erhållna hashvärde till en AD CS-server och motsvarande entitets certifikat. Med hjälp av detta certifikat kan angripare imitera den enheten och effektivt begära en TGT (Ticket Granting Ticket) för dennes räkning. I praktiken kan angripare fullständigt kompromettera domänen via AD CS-servern utan någon autentisering.

Liksom andra relay-attacker måste angriparens maskin vara ansluten till samma LAN-segment eller ha utökade privilegier inom domänen. AD CS-servrar med antingen Certificate Authority Web Enrollment (Webbregistrering hos certifikatutfärdare) eller Certificate Enrollment Web Service (Webbtjänsten för certifikatregistrering) aktiverat är sårbara.

Microsoft har publicerat riktlinjer för att begränsa risken för att drabbas av PetitPotam och klassificerar sårbarheten som en klassisk NTLM relay-attack. Microsoft rekommenderar att administratörer aktiverar utökat autentiseringsskydd (Exended Protection for Authentication – (EPA) och inaktiverar HTTP på AD CS-servrar. Utöver detta har Microsoft också beskrivit ytterligare skyddsåtgärder såsom inaktivering av NTLM-autentisering där så är möjligt och upprätthållande av SMB-signering. Systemadministratörer bör observera att inaktivering av MS-EFSRPC inte begränsar sårbarheten.

Identifiera PetitPotam-attackkedjan i LogPoint

PetitPotam kräver ingen autentisering, vilket innebär att vi kan söka efter anonyma NTLM-inloggningar till servrar – i synnerhet domänkontrollanter. Vi har upptäckt att en angripare som använder sin maskin för attacken genererar Event ID 4624 med ett workstation-fält med nullvärde som vi kan använda för att filtrera bort falska positiver.

norm_id=WinServer event_id=4624 user="ANONYMOUS LOGON" package=NTLM

event_id=4624

Vi kan även söka efter PetitPotam-artefakter i händelseloggarna för fildelning. Administratörer bör verifiera att de har aktiverat detaljerad visning av fildelning för att frågesatsen ska fungera.

norm_id=WinServer event_id=5145 share_name=IPC$ access="ReadData (or ListDirectory) WriteData (or AddFile)" relative_target IN ["lsarpc", "efsrpc", "lsass", "samr", "netlogon"] | chart count() by host, user, source_address, relative_target

event_id=5145

För att underlätta korrelering kan administratörer söka efter händelser för certifikatbegäran som genererats av AD CS-servern och zooma in på certifikatbegäranden från domänkontrollanter inom tidsintervallet för PetitPotam-artefakterna. Administratörer bör aktivera granskning av ”Issue and manage certificate requests” på AD CS-servrar för att generera motsvarande loggar eftersom granskning är inaktiverat som standard.

norm_id=WinServer label=Certificate label=Request label=Receive | chart count() by host, attributes, requester, message

Issue and manage certificate requests

Slutligen hämtar angriparen en TGT från en domänkontrollant med hjälp av det tidigare erhållna certifikatet och cachelagrar begäran i minnet. För att kunna identifiera detta måste vi söka efter TGT-förfrågningar där domänkontrollanten är en användare (eftersom certifikatet tillhör domänkontrollanten), men källadressfältet har IP-adressen för den angriparstyrda maskinen. Vid normal användning kommer domäncontrollerns maskinkonto alltid att begära en TGT från sin egen maskin och därför ska källadressfältet alltid vara dess egna IP-adress.

norm_id=WinServer event_id=4768 user IN WINDOWS_DC_HOSTNAMES -source_address IN WINDOWS_DC

WINDOWS_DC_HOSTNAMES är en förteckning som innehåller användarnamnet för alla domänkontrollanter som DC01, DC02 osv., medan WINDOWS_DC innehåller IP-adresserna för alla domänkontrollanter.

WINDOWS_DC_HOSTNAMES

Distribuera begränsningsåtgärderna så snart som möjligt

Sammanfattningsvis bör systemadministratörer snarast möjligt följa de begränsningsåtgärder som Microsoft tillhandahåller om de har driftsatt AD CS-servrar. Om administratörer skjuter upp implementeringen av begränsningsåtgärderna till ett senare datum på grund av olika omständigheter, bör de implementera nödvändiga detekteringsmekanismer för att kunna identifiera intrångsförsök. Eftersom fullständig kompromettering av domänen är möjlig utan någon autentisering kommer sårbarheten – som ännu inte har åtgärdats av Microsoft – sannolikt att locka till sig hotaktörer av alla slag.

Get in touch

Contact us and find out why big brands choose LogPoint

Kontakta LogPoint

Learn more about Logpoint

Book a demo
Customer cases
Customer reviews