Maak Active Directory Beveiligingsrapporten met PowerShell

Maak actieve directorybeveiligingsrapporten met PowerShell. Allereerst is het beveiligen van een Active Directory (AD)-omgeving essentieel om verschillende redenen. Ten eerste is Active Directory een centraal onderdeel van veel organisaties’ netwerken en bevat het een schat aan gevoelige informatie over gebruikers, computers en andere netwerkbronnen. Als deze informatie in verkeerde handen zou vallen, zouden ze deze kunnen gebruiken om de algehele netwerkbeveiliging in gevaar te brengen.

Dit artikel bespreekt verschillende manieren om onze Active Directory-omgeving te beveiligen met PowerShell.

Laten we beginnen met het maken van actieve directorybeveiligingsrapporten met PowerShell.

Maak actieve directorybeveiligingsrapporten met PowerShell

VereistenSommige commando’s in dit artikel zullen Active Directory-commando’s gebruiken. Daarom moeten we in dit artikel de vereiste componenten installeren:

Enkele van de opdrachten in dit artikel zullen Active Directory opdrachten gebruiken. Dus in dit artikel moeten we de vereiste onderdelen installeren:

Voordat we beginnen, moeten we ervoor zorgen dat we de bovenstaande vereisten hebben en importeren het Active Directory-module met behulp van het onderstaande fragment.

Install-Module ActiveDirectory
Import-Module ActiveDirectory

Verschillende methoden voor het beveiligen van Active Directory

Er zijn meerdere manieren om te beveiligen ons Active Directory-omgeving. In de volgende sectie bespreken we enkele manieren om ons Active Directory-infrastructuur te beveiligen.

Toepassen van fijnmazige wachtwoord- en accountvergrendelingsbeleid

Al met al, Active Directory bevat standaard een wachtwoordbeleid. Toch stellen beheerders ook strengere wachtwoordbeleidsregels en accountvergrendelingsbeleidsregels in. Dit proces stelt ons in staat om beveiligdere wachtwoorden en accountvergrendelingsinstellingen voor bevoegde accounts te plaatsen.

Gebruik de volgende PowerShell regels om een fijnmazig wachtwoord- en accountvergrendelingsbeleid te creëren op een systeem met het AD-module voor Windows PowerShell geïnstalleerd en geïmporteerd.

Vergrendelingsbeleidsscript:

New-ADFineGrainedPasswordPolicy PolicyName -ComplexityEnabled $true -LockoutThreshold "3" -MaxPasswordAge "30.00:00:00" -MinPasswordLength "14" -PasswordHistoryCount "20" -Precedence "1" -ReversibleEncryptionEnabled $false -ProtectedFromAccidentalDeletion $true

Fijnmazig Wachtwoordbeleidsscript:

Add-ADFineGrainedPasswordPolicySubject PolicyName -Subjects GroupName

Bekijk het kenmerk msDS-ResultantPSO van het gebruikersaccount om te bepalen welke fijnmazige wachtwoord en accountvergrendelingsbeleid van toepassing is. Bovendien onthult het het wachtwoordbeleidsreferentie dat betrokken is. Hiervoor kunnen we ook de Get-ADUserResultantPasswordPolicy PowerShell cmdlet gebruiken.

Beheer van Active Directory-snapshots

Snapshots voor Active Directory kunnen handig zijn in scenario’s waar de organisatie informatie van een specifiek moment (het moment waarop we de snapshot hebben genomen) wil vergelijken met gegevens van een ander moment in de tijd.

A functional Active Directory VSS Writer and the Volume Shadow Copy functionality are required to create an Active Directory snapshot. These features come standard with Windows Server.

Log in op een Domain Controller (DC) met een gebruikersaccount dat behoort tot de Domain Admins of Backup Operators groepen om met snapshots te werken. Na aanmelding, open het Command Prompt en probeer de volgende stappen.

Om een Active Directory-snapshot te maken met PowerShell, kunnen we de Export-DSSnapshot cmdlet gebruiken:

Export-DSSnapshot -Path

Daarna, als je alle Active Directory-snapshots wilt bekijken met PowerShell, kunnen we de Get-DSSnapshot cmdlet gebruiken:

Get-DSSnapshot -Path

Vervolgens, om een Active Directory-snapshot te monteren met PowerShell, gebruiken we de Mount-DSSnapshot cmdlet. Bijvoorbeeld, de onderstaande opdracht zal de snapshot met de opgegeven ID uit de opgegeven locatie monteren:

Mount-DSSnapshot -Path  -Identity

De bovenstaande PowerShell-cmdlet zal de locatie outputten waar de database is gemount. Om het te exposeren als een LDAP Store, voer deze opdracht uit:

dsamain.exe -dpbath "" -LDAPport

Hou deze opdracht aan het draaien zolang we willen dat de LDAP-server operationeel is. Om informatie op te zoeken, gebruik de AD Module voor Windows PowerShell-cmdlets. Voer de -Server parameter in en de hostnaam en poortnummer van de server, gescheiden door een puntkomma, als volgt:

Get-ADComputer -Identity * -Server Localhost:PortNumber

Alternatief kunnen we aanvullende Active Directory-tools gebruiken zoals ldifde.exe en csvde.exe om informatie tussen snapshots en Active Directory over te brengen. Helaas is er geen native tooling beschikbaar om dit soort operaties uit te voeren.

Beheren van verwijderde Active Directory-objecten

Samen zorgt het Active Directory-begraven proces ervoor dat de Domain Controller de verwijdering repliceert. Wanneer de AD-Prullenbak is ingeschakeld, repliceert de DC de verwijderde objecten voordat ze worden begraven.

In deze toestand kunnen we de verwijderde objecten in de container Verwijderde objecten zien. Kort gezegd, we herstellen objecten uit deze container, inclusief hun groepslidmaatschappen en andere kenmerken, naar hun oorspronkelijke locatie of een andere container.

Op een systeem met de AD-module voor Windows PowerShell geïnstalleerd, gebruik de volgende PowerShell-opdrachten om de verwijderde AD-objecten voor een domein te bekijken:

Get-ADObject -IncludeDeletedObjects -Filter *

Daarnaast om een verwijderd AD object te herstellen, gebruik de volgende PowerShell-cmdlets op een systeem met de AD Windows PowerShell-module geïnstalleerd:

Get-ADObject -Filter { displayName -eq "" } - IncludeDeletedObjects |
Restore-ADObject

Wachtwoord voor Kerberos Service Account opnieuw instellen in AD

Elke Active Directory-domein heeft zijn eigen KRBTGT-account in een multi-domeinomgeving, die door alle volledig schrijfbare domeincontrollers wordt gebruikt. Bovendien worden KRBTGT-accounts afzonderlijk aan elke read-only domeincontroller toegewezen.

Het compromitteren van het Kerberos Service Account resulteert in een verlies van Kerberos-beveiliging en audittrail.

Inderdaad, als u het wachtwoord voor het service account wilt opnieuw instellen, meld u aan bij een DC met Domeinbeheerdersrechten en voer het volgende uit:

Set-ADAccountPassword -Identity (Get-ADUser krbtgt).DistinguishedName -Reset -NewPassword (ConvertTo-SecureString "" -AsPlainText -Force)

Andere manieren om de AD-omgeving te beveiligen

Er zijn veel andere manieren om een Active Directory te beveiligen, en we noemden er een paar. Het zal echter nog een aantal artikelen kosten om ze allemaal uit te leggen, dus hier is een lijst met concepten over wat we kunnen doen om uw Active Directory-omgeving te beveiligen:

  • Back-up en herstel GPO’s en AD-database (NTDS)
  • Beheer de Directory Services Restore Mode (DSRM) wachtwoorden op DC.
  • Implementeer een Local Administrator Password Solution (LAPS)
  • Werken met groepgebaseerde Managed Service Accounts (gMSA).
  • Gebruik de Security Configuration Wizard (SCW) om DC te beveiligen.
  • Beheer en bewaak de beschermde gebruikersgroep.
  • Zet authenticatiebeleid en authenticatiebeleidsilos in goede banen Configureer Extranet Smart Lockout.
  • en meer

Nu gaan we verder met het volgende gedeelte, waar we het hebben over het exporteren van beveiligings- en Auditrapporten met behulp van PowerShell.

Het maken van Active Directory Security Audit-rapporten met behulp van PowerShell

Microsoft introduceerde de geavanceerde beveiligingsauditbeleid in AD een paar iteraties geleden. Deze functie breidt controleopties uit in tien categorieën:

  • Globale Objecttoegang Controleren.
  • Account Aanmelden.
  • Accountbeheer
  • Gedetailleerde tracking. 
  • Directory Service Access. 
  • Aanmelden/Afmelden. 
  • Objecttoegang. 
  • Beleidsverandering.
  • Voorwaardelijke toegang.
  • en systeemgebruik.

Er zijn verschillende controleopties voor elk van deze categorieën. Bovendien voegt het beleid vermeldingen toe aan de Gebeurtenis-viewer met de bron Microsoft Windows beveiligingscontrole wanneer deze is ingeschakeld.

Om het geavanceerde beveiligingscontrolebeleid in te stellen, volg deze stappen:

  1. Open de Groepsbeleidsbeheerconsole.
  2. Navigeer naar het Domain Controllers knooppunt voor het domein waar u het beleid wilt configureren.
  3. Klik met de rechtermuisknop op de Standaarddomeincontrollersbeleid en klik op Bewerken in het menu.
  4. Vouw de Computerconfiguratie uit, klik op Beleid, klik op Windows-instellingen, klik op Beveiligingsinstellingen, klik op Geavanceerde controlebeleidsconfiguratie, klik op Controlebeleid, en klik vervolgens op DS-toegang.

5. Dubbelklik op het Audit Directory Service, Changes instelling.
6.
Vink het vakje aan om de controle-gebeurtenissen in te stellen en selecteer Success en Failure controle-gebeurtenissen.
7. Sla de instellingen op en sluit het Eigenschappen scherm.
8. Sluit het Groepspolitiek Beheer Editor venster.

Met PowerShell, de Get-WinEvent Cmdlet stelt systeembeheerders in staat om geavanceerde filteropties te customizen. Bijvoorbeeld, de volgende eenvoudige enkele regel-opdracht zal alle beveiligingslogboeken opvragen en ze exporteren naar een CSV bestand als een gegenereerde rapportage. 

Get-WinEvent -FilterHashtable @{LogName="Security"} | Export-Csv -Path .\Security.csv -NoTypeInformation

Het CSV bestand zou er als volgt uit moeten zien:

Het kopiëren van controlegebeurtenissen van de domeincontroller’s gebeurtenisviewer logboeken naar een geconcentreerde Security Incident and Event Management (SIEM) oplossing is een aanbevolen praktijk.

Bedankt voor het lezen van Maak beveiligingsrapporten voor Active Directory met PowerShell. We zullen dit artikel nu afronden.

Maak beveiligingsrapporten voor Active Directory met PowerShell Conclusie

Naast de bovengenoemde beveiligingsproblemen, kunnen er ook compliance- en regelgevingskwesties ontstaan als een Active Directory-omgeving niet voldoende beveiligd is. Veel organisaties moeten bijvoorbeeld voldoen aan specifieke normen voor gegevensbeveiliging en privacy. Het niet beveiligen van een Active Directory kan hen blootstellen aan het risico van non-compliance en mogelijke boetes.

Source:
https://infrasos.com/create-active-directory-security-reports-with-powershell/