Cybersikkerhed er et magtspil. Cyberkriminelle og virksomheder er i konstant tovtrækkeri, med privilegerede oplysninger som den eftertragtede præmie. Mens virksomheder kæmper for at beskytte følsomme data, kæmper cyberkriminelle for at få adgang til dem. Hver side vælger deres våben. I denne blog vil vi udforske et våben, som er et populært valg for begge sider: PowerShell.
Indhold:
At kalde Windows PowerShell for en kommandolinjefortolker ville være at underminere dens muligheder. Selvom den kan alt, hvad et shell-program som Kommandoprompt kan, er PowerShell også et script-sprog, der bruges af administratorer til at automatisere opgaver. Et godt eksempel er Active Directory-styring. Administratorer kan bruge timevis på at administrere deres organisations Active Directory manuelt eller bruge et enkelt PowerShell-script eller en enkelt kommando til at udføre massehandlinger. Mange administratorer foretrækker PowerShell frem for GUI-værktøjer som AD Administrative Center eller AD Users and Computers.
Fig. 1: Et PowerShell-vindue
PowerShell-scripting er et omfattende emne. For bedre at forstå de begreber, der diskuteres i denne blog, skal vi se nærmere på tre vigtige komponenter i PowerShell-scripting.
PowerShell er administratorens foretrukne værktøj, men det er også hackernes foretrukne angrebsvektor. Det skyldes PowerShells sporbarhed, eller mangel på samme, i et Windows-miljø. Da PowerShell er et hvidlistet værktøj, er det lettere for cyberkriminelle at eskalere deres rettigheder og udføre skadelige scripts.
PowerShell bruges mest som et post-exploitation-værktøj. Det skyldes, at PowerShell er aktiveret som standard i de fleste brugerkonti. Når en hacker kommer ind på netværket, kan vedkommende køre programmet som administrator eller nemt bruge et par kommandoer til at eskalere rettighederne. Lad os se nærmere på fem måder, hvorpå cyberkriminelle kan bruge PowerShell til at udføre cyberangreb.
PowerShell-scripting: Ifølge MITRE ATT&CK®-strukturen er PowerShell opført som en underteknik under kommando- and scriptingfortolker. Cyberkriminelle misbruger ofte PowerShell-cmdlets til at få oplysninger om deres mål og udføre skadelig kode på afstand. PowerShell bruges også til at downloade og udføre malwarefiler i computerens hukommelse uden at blive skrevet på drevet. Nogle PowerShell-cmdlets, der bruges til at udføre cyberangreb, er Invoke-Command og Start-Process. Invoke-Command bruges til at udføre en kommando eksternt, og Start-process bruges til at køre et program eller en proces lokalt på systemet.
Opdagelse af domæne: Når angriberne er trængt ind i virksomhedens netværk, kan de bruge visse cmdlets til at få en liste over eksisterende domæner, grupper og bruger- eller computerkonti i disse domæner som lokal administrator. Det hjælper dem med at finde deres næste mål baseret på de rettigheder, som disse konti eller grupper måtte have. I et Windows-miljø er nogle af de cmdlets, de kan bruge, Get-ADDomain for at få en liste over domæner i kataloget, Get-ADUser for at få en liste over brugere, Get-ADComputer for at få en liste over computere i kataloget og Get-ADGroupMember for at få en liste over brugere i en bestemt gruppe. Disse cmdlets giver en hel del information om hvert af objekterne, især Get-ADComputer, som giver dybdegående oplysninger om hver vært.
Eskalering af rettigheder: Adgang til PowerShell betyder mulighed for nemt at eskalere rettigheder. Som vi så tidligere, når angriberen, der udgiver sig for at være en lokal administrator, får listen over computere i domænet og har valgt et mål, bruger de Get-Acl-cmdletten til at tjekke adgangskontrollisten for deres mål.
Når angriberne har fået en liste over rettigheder, vælger de den bruger eller brugergruppe, der har flest rettigheder til destinationscomputeren. De vil få oplysninger om medlemmerne af gruppen (ved hjælp af Get-ADGroupMember-cmdletten). Derefter gennemgår de listen over gruppemedlemmer, for at tjekke om nogle af kontiene matcher dem, de har fået adgang til. Når de har gjort det, bruger de PS-Exec-kommandoen til at køre scripts på deres destinationsmaskine ved hjælp af det aktuelle system.
Lateral bevægelse: Lateral bevægelse er en angrebsteknik, der indebærer, at angriberen flytter sig fra en kompromitteret vært til en anden i netværket. Normalt indebærer lateral bevægelse brug af et af to værktøjer: Windows Remote Management (WinRM) eller Cobalt Strike. WinRM er et indbygget værktøj i alle Windows-maskiner, som bruges til at etablere fjernforbindelser, og Cobalt Strike er et penetrationstestværktøj, som bruges til at simulere angreb.
PowerShell kan bruges til lateral bevægelse på to måder:
Windows har tre slags logføringsmekanismer til at spore PowerShell-aktivitet.
PowerShell-logføring kan aktiveres via den lokale gruppepolitikeditor for en bestemt maskine eller via Group Policy Management Editor for en brugergruppe eller organisationsenhed i et domæne. Lad os se, hvordan du gør det i seks enkle trin:
Åbn Group Policy Management Editor.
Fig. 2: Åbn Group Policy Management Editor
Klik på Administrative Templates under Brugerkonfiguration eller Computerkonfiguration, alt efter behov.

Klik på Windows Components.

Rul ned, og klik på Windows PowerShell.

Vælg de PowerShell-logføringsmekanismer, der skal aktiveres, blandt de viste. Lad os sige, at du vil aktivere scriptbloklogfiler.

Klik på Turn on PowerShell Script Block Logging. Vælg Enabled fra de viste alternativknapper, og klik på Anvend.

En lignende proces kan bruges til at aktivere generering af andre PowerShell-logfiler. Mange organisationer deaktiverer PowerShell-logføring på grund af det store antal hændelseslogfiler, der genereres. Som bedste praksis for cybersikkerhed anbefales det, at organisationer aktiverer PowerShell-logføring – i det mindste scriptblok-logføring, hvis de ikke vil aktivere alle tre typer.
Det kan være svært for IT-administratorer at holde styr på de mange hændelseslogfiler, der genereres for at spore PowerShell-scripts. En SIEM-løsning som Log360, der har en funktion til overvågning af Active Directory, kan gøre det lettere for IT-administratorer sådan her:
Fig. 3: Modullogføringsrapporter i ManageEngine Log360
Fig. 4: Scriptbloklogføringsrapporter i ManageEngine Log360
Fig. 5: PowerShell-processporingsrapporter i ManageEngine Log360
Fig. 6: Konfigurationsfunktion for advarselsprofiler i ManageEngine Log360
Fig. 7: Udfør scriptfunktionen i ManageEngine Log360
Hvis du vil vide mere om PowerShell-overvågning ved hjælp af Log360, kan du kontakte vores produkteksperter for at få en tilpasset demo eller downloade en 30-dages gratis prøveperiode for selv at prøve det.