Återanvänds den lokala administratörens lösenord i er miljö?
Windows operativsystem innehåller som standard ett administratörskonto för hanteringssyften vars lösenord är detsamma i många miljöer på flera system.
Därför är återanvändning av lösenord vanligt
Lösenordet för det lokala administratörskontot återanvänds regelbundet och är därför detsamma på flera system inom organisationen. Det kan t.ex. bero på att en installation används för alla servrar och en annan används för alla arbetsstationer. I den här installationen är det lokala administratörskontot inställt och lösenordet ändras aldrig. Eller så använder organisationen ett skript för att ange ett standardlösenord för varje system.
Om en angripare har administratörsrättigheter till en av dessa maskiner och lyckas återskapa lösenordet eller en krypterad version av det, kan hen återanvända det för att få åtkomst till flera eller ibland alla system inom domänen
Översikt över testmiljön
I vår testdomän playground.local användes samma lösenord för den lokala administratören för alla system inom domänen. Den hashade versionen av lösenordet (NTLM-hash) kan hämtas genom att läsa den lokala SAM-databasen på ett av dessa system.
En hash är resultatet av en hashfunktion som omvandlar en sträng till en sträng av bokstäver och siffror. På så sätt kan en applikation verifiera att användaren har angett rätt lösenord utan att lagra lösenordet i klartext.
Det är möjligt att använda denna hash för en ”pass the hash”-attack. Vid denna attack autentiserar angriparen sig med NTLM-hash istället för ett lösenord i klartext. För att demonstrera den här attacken har vi skapat en labbmiljö bestående av en Windows-klient och två Windows-servrar, inklusive en webbserver och en domänkontrollant. Labbet ser ut på följande sätt:
Genomföra attacken
Vi demonstrerar den här attacken i vårt labb genom att använda ett konto som har lokala administratörsbehörigheter på en arbetsstation. Med hjälp av dessa privilegier kan en angripare dumpa lösenordet för (lokala) användare med hjälp av Invoke-Mimikatz. För att göra det kan följande kommando användas: Invoke-Mimikatz -Command ’”privilege::debug” ”token::elevate” ”lsadump::sam”’
Hashvärdet (48e723f6efb3eff9ae669e239c42fff3) för det lokala administratörskontot kan användas av angriparen för att utföra en ”pass the hash”-attack och försöka autentisera sig som lokal administratör på valfri dator inom domänen. En angripare kan t.ex. göra detta med hjälp av verktyget NetExec.
De orange bokstäverna i bilden ovan visar att vi har lokala administratörsrättigheter på två system. Det innebär att vi har full kontroll över alla system utom domänkontrollanterna. Som standard är det inte möjligt att autentisera sig som lokal administratör på domänkontrollanten, såvida inte AD-återställningsläget är aktiverat.
Lösning för lösenord för lokal administratör
LAPS (Local Administrator Password Solution) är ett verktyg som används för att hantera lösenord för lokala administratörer. LAPS genererar ett unikt lösenord för varje lokal administratör. Detta lösenord byts sedan som standard ut var trettionde dag. Därefter lagras lösenordet i attributet Ms-Mcs-AdmPwd.
Åtkomst till lösenordet ges genom åtkomsträttigheten Control på attributet. Kontrollåtkomst är en utökad rättighet i Active Directory, vilket innebär att om en användare har behörigheten Alla utökade rättigheter på det attributet eller ett objekt ovanför det, kan han se lösenordet. Ett exempel visas nedan:
Att spara det okrypterade lösenordet är inte ett problem eftersom fältet där detta inträffar kräver särskilda behörigheter för att läsas. Om en angripare har ett konto som har tillgång till domänkontrollanten för att läsa den eller ett användarkonto med behörigheter, har han mycket större rättigheter än lokala administratörskonton.
Hämta LAPS-lösenord
Om lösenorden begärs över nätverket skickas de krypterade via LAPS GUI och PowerShell. LAPS GUI ser ut på följande sätt om en behörig användare begär lösenordet:
Det går också att hämta lösenordet med hjälp av PowerShell med följande kommando:
Get-AdmPwdPassword -Datornamn ’computernaam’