Access control list

Vandaag wil ik het hebben over ACL of ook wel access control list genoemd, dit is heel erg belangrijk in een active directory omgeving. De access control list bepaalt namelijk de rechten van een gebruiker op een bepaald object, met objecten bedoelen wij dan bestanden en mappen. Eeen access control list ziet er als volgt uit:

Een access control list bestaat uit entries, deze entries noemen wij ook wel access control entries of ACE. Deze entries zijn rechten die jij aan een gebruiker kan geven of juist bepaalde rechten ontzeggen. In dit artikel wil ik een korte demonstratie geven hoe jij bijvoorbeeld zo ACL kan misbruiken om uiteindelijk een wachtwoord van een andere gebruiker te kunnen aanpassen waarna jij als die persoon kan inloggen op een ander systeem. Hieronder een aantal permissies:

  • GenericAll – Volledige rechten (Voeg gebruikers toe of reset wachtwoorden)
  • GenericWrite – Wijzig de attributen van een object (i.e logon script)
  • WriteOwner – Verander de eigenaar van een object
  • WriteDACL – Verander de ACE en geef de aanvaller volledige controle over het object
  • AllExtendedRights – Mogelijkheid tot toevoegen van gebruiker tot een groep of wijzigen van wachtwoord
  • ForceChangePassword – Verander het wachtwoord van een gebruiker of de mogelijkheid hebben tot het veranderen ervan
  • Self (Self-Membership) – Mogelijkheid om jezelf tot een groep toe te voegen

Enumeration

Zoals altijd beginnen wij met enumeratie, in deze fase gaan wij zoveel mogelijk informatie verzamelen over de gebruikers op het domein en de rechten die deze gebruikers precies hebben. Daar kunnen wij de volgende commando voor gebruiken:

Get-ObjectACL -Domain root.local -ResolveGUIDS -SamAccountName  -v

Zoals je in bovenstaande afbeelding ziet hebben wij de rechten om het wachtwoord van een gebruiker aan te passen. Dit is mooi voor ons want wij kunnen nu dus het wachtwoord van de desbetreffende gebruiker veranderen om vervolgens in te kunnen loggen op deze gebruiker.

Om het wachtwoord te veranderen doen wij het volgende:

Set-DomainUserPassword -Domain root.local -Identity Rbolton -Verbose

Nu kunnen wij testen of het wachtwoord inderdaad verandert is en wij kunnen inloggen.

Zoals je kunt zijn werken de credentials en hebben wij een RDP sessie opgezet met de machine waar de gebruiker lid van is.

Samenvatting

Het is belangrijk om altijd goed enumeratie te doen op access control list, want zoals in dit voorbeeld komt het regelmatig voor dat mensen toch nog een foutje maken bij het opzetten van deze rechten per gebruiker of groep. Kijk ook altijd goed naar wat voor rechten je hebt op de gebruiker die jij op dat moment bent, want dan weet je wat jij ook kan doen voor de volgende stap.

Aantal handige tools:

  • PowerView
  • ActiveDirectory module
  • BloodHound

Het was een kort artikel deze week, hopelijk hebben jullie genoten en tot de volgende week!

Please share and spread
NederlandsEnglish