Wordt het wachtwoord van de lokale administrator in jouw omgeving hergebruikt?
Het Windows-besturingssysteem bevat standaard een beheeraccount voor beheerdoeleinden waarvan het wachtwoord bij veel omgevingen op meerdere systemen hetzelfde is.
Waarom hergebruik van het wachtwoord vaak voorkomt
Het wachtwoord van het lokale administrator account wordt regelmatig hergebruikt en is dus hetzelfde op meerdere systemen binnen de organisatie. Dit kan bijvoorbeeld komen omdat er één image gebruikt wordt voor alle servers en één image voor alle werkplekken. In deze image is het lokale administrator account ingesteld en het wachtwoord wordt vervolgens nooit gewijzigd. Of men gebruikt een script om een standaard wachtwoord op elk systeem in te stellen.
Als een aanvaller administrator rechten heeft tot één van deze machines en het wachtwoord of versleutelde versie hiervan weet te achterhalen kan hij deze hergebruiken om toegang te krijgen tot meerdere of soms alle systemen binnen het domein. Met deze toegang kan het mogelijk zijn om volldige controle te krijgen binnen het domein.
Overzicht testomgeving
In ons test domein playground.local is hetzelfde lokale administrator wachtwoord gebruikt voor alle systemen in het domein. De gehashte versie van het wachtwoord is opgeslagen in de lokale SAM-database. Het is mogelijk om dit wachtwoord te verkrijgen door de inhoud hiervan uit te lezen.
Een hash is het resultaat van een hash-algoritme, wat een stuk tekst omzet naar een opsomming van letters en cijfers. Op deze manier kan men controleren of iemand het juiste wachtwoord ingevoerd heeft zonder dat dat wachtwoord opgeslagen is op een manier die terug te rekenen is naar het oorspronkelijke wachtwoord.
Een aanvaller met toegang tot deze hash kan een pass the hash aanval uitvoeren, waarbij de hash wordt gebruikt om te authenticeren . Om dit te demonstreren hebben wij een labomgeving opgezet bestaande uit één Windows cliënt en twee Windows-servers waaronder een webserver en een domeincontroller. Het lab ziet er als volgt uit:
Uitvoeren van de aanval
In ons lab demonstreren we deze aanval door gebruik te maken van een account die lokale administrator rechten heeft op een werkstation. Een aanvaller met lokale administrator rechten kan met behulp van Invoke-Mimikatz de hashes uitlezen van de (lokale) gebruikers, waaronder de hash van het lokale administrator account. Om dit te doen gebruiken wij het volgende commando: Invoke-Mimikatz -Command ‘”privilege::debug” “token::elevate” “lsadump::sam”‘
De hash (48e723f6efb3eff9ae669e239c42fff3) van het lokale administrator account kan gebruikt worden door de aanvaller om een pass the hash aanval uit te voeren waarbij hij zich probeert te authenticeren als de lokale administrator op elke machine binnen het domein. Dit kan een aanvaller bijvoorbeeld doen met het hulpprogramma NetExec.
De oranje letters in de afbeelding hierboven tonen aan dat wij op twee systemen lokale administrator toegang hebben. Dit betekent dat wij op dit moment toegang hebben tot alle systemen behalve de domeincontroller. Het is namelijk standaard niet mogelijk om met het lokale administrator account in te loggen op de domeincontroller, tenzij deze in de AD restore modus staat.
Local Administrator Password Solution
Local Administrator Password Solution (LAPS) is een management programma van Microsoft dat gebruikt kan worden voor het beheren van lokale administrator wachtwoorden. LAPS genereert automatisch voor elk systeem een ander wachtwoord, dit doet het standaard om de 30 dagen . Vervolgens wordt het wachtwoord opgeslagen in het attribuut Ms-Mcs-AdmPwd.
Toegang tot het wachtwoord wordt verleend via het recht Control access op het attribuut. Control access is een Extended Right in Active Directory, wat betekent dat een gebruiker met de machtiging All Extended rights heeft op dat attribuut of een object daarboven, hij het wachtwoord in kan zien. Hieronder staat een voorbeeld:
Het opslaan van dit niet gehashte wachtwoord is dus geen probleem omdat het veld niet voor iedereen leesbaar is. Als een aanvaller over een account beschikt die toegang heeft tot de domeincontroller om dit uit te lezen of een gebruikersaccount met rechten, beschikt hij over veel meer rechten dan lokale administrator accounts.
Het opvragen van LAPS wachtwoorden
De wachtwoorden worden, indien opgevraagd over het netwerk, door de LAPS GUI en PowerShell versleuteld verstuurd. De LAPS GUI ziet er als volgt uit indien een geautoriseerde gebruiker het wachtwoord opvraagt:
Het is ook mogelijk om het wachtwoord op te vragen doormiddel vaan PowerShell met het volgende commando:
Get-AdmPwdPassword -Computername ‘computernaam’