Cybersäkerhet är ett maktspel. Cyberbrottslingar och företag befinner sig i en ständig dragkamp, där privilegierad information som det åtråvärda priset. Samtidigt som företagen kämpar för att skydda känsliga data kämpar cyberbrottslingar för att få tillgång till dem. Varje sida väljer ett vapen efter eget val. I den här bloggen kommer vi att utforska ett vapen som är ett populärt val för båda sidor: PowerShell.
Innehåll:
Att kalla Windows PowerShell för en kommandotolk vore att underskatta dess kapacitet. Även om PowerShell kan göra allt som ett skalprogram som Kommandotolken kan göra, är det också ett skriptspråk som används av administratörer för att automatisera uppgifter. Ett bra exempel är Active Directory-hantering. Administratörer kan spendera timmar på att manuellt hantera organisationens Active Directory, eller så kan de använda ett enda PowerShell-skript eller kommando för att utföra massåtgärder. Många administratörer föredrar PowerShell framför de GUI-verktyg de kan använda som AD Administrative Center eller AD Users and Computers.
Fig. 1: Ett PowerShell-fönster
PowerShell-skript är ett omfattande ämne. För att bättre förstå de koncept som tas upp i det här blogginlägget, låt oss titta närmare på tre viktiga komponenter inom PowerShell-skript.
Även om PowerShell är en administratörs favoritverktyg är det också hackerns vanligaste attackvektor. Detta beror på PowerShells spårbarhet, eller brist på spårbarhet, i en Windows-miljö. Eftersom PowerShell är ett tillåtet verktyg är det lättare för cyberkriminella att höja sina behörigheter och köra skadliga skript.
PowerShell används mest som ett verktyg efter exploatering. Detta beror på att PowerShell är aktiverat som standard i de flesta användarkonton. När en hackare väl har kommit in i nätverket kan han eller hon köra programmet som administratör eller enkelt använda ett par kommandon för att höja sina behörigheter. Låt oss titta närmare på fem sätt som cyberbrottslingar använder PowerShell för att utföra cyberattacker.
PowerShell-skript: Enligt MITRE ATT&CK® framework-ramverket är PowerShell listad som en underteknik under Command and Scripting interpreter (kommandotolkar och skriptmotorer). Cyberbrottslingar missbrukar ofta PowerShell cmdlets för att få information om sina mål och köra skadlig kod på distans. PowerShell används också för att ladda ner och köra filer med skadlig kod i datorns minne utan att röra hårddisken. Vissa PowerShell-cmdlets som används för att utför cyberattacker inkluderar Invoke-Command eller Start-Process. Invoke-Command används för att köra ett kommando på distans, medan Start-Process används för att starta ett program eller en process lokalt i systemet.
Domänupptäckt: När angriparna har tagit sig in i företagets nätverk kan de använda vissa cmdlets för att få en lista över befintliga domäner, grupper och användar- eller datorkonton i dessa domäner som lokal administratör. Detta hjälper dem att identifiera nästa mål baserat på de behörigheter som dessa konton eller grupper kan ha. I en Windows-miljö kan angripare använda cmdlets som Get-ADDomain för att få en lista över domäner i katalogen, Get-ADUser för att få en lista över användare, Get-ADComputer to för att få en lista över datorer i katalogen, och Get-ADGroupMember för att få en lista över användare i en viss grupp. Dessa cmdlets ger en hel del information om vart och ett av objekten, särskilt Get-ADComputer, som ger djupgående information om varje enskild värddator.
Höja privilegier: Tillgång till PowerShell ger möjlighet att enkelt att höja privilegier. Som vi såg tidigare, när angriparen – som utger sig för att vara en lokal administratör – får information om listan över datorer i domänen och har valt ett mål, använder de cmdleten Get-Acl för att kontrollera målobjektets åtkomstkontrollista.
När de har fått en lista med behörigheter väljer angriparna den användare eller användargrupp som har högre behörigheter till måldatorn. De får information om de medlemmar som tillhör den gruppen (med hjälp av cdmleten Get-ADGroupMember). De går sedan igenom listan över gruppmedlemmar för att kontrollera om något av kontona matchar de konton som de har fått tillgång till. När de väl har gjort det använder de PS-Exec-kommandot för att köra skript på distans på måldatorn via det aktuella systemet.
Lateral förflyttning: Lateral förflyttning är en angreppsteknik som innebär att angriparen förflyttar sig från en komprometterad värd till en annan i nätverket. Vanligtvis innebär en lateral förflyttning att man använder ett av två verktyg: Windows Remote Management (WinRM) eller Cobalt Strike. WinRM är ett inbyggt verktyg i alla Windows-datorer som används för att upprätta fjärranslutningar, och Cobalt Strike är ett penetrationstestverktyg som används för att simulera attacker.
Det finns två sätt att använda PowerShell för lateral förflyttning:
Windows har tre typer av loggningssystem för att spåra PowerShell-aktivitet.
PowerShell-loggning kan aktiveras via den lokala Grupprincipredigeraren för en specifik dator eller via Redigeraren Grupprinciphantering för en användargrupp eller organisationsenhet i en domän. Låt oss titta på hur man gör detta i sex enkla steg:
Öppna Group Policy Management Editor.
Fig. 2: Redigeraren Grupprinciphantering
Klicka på Administrative Templates under Användarkonfiguration eller Datorkonfiguration, beroende på vad som krävs.

Klicka på Windows Components.

Skrolla ner och klicka på Windows PowerShell.

Välj de PowerShell-loggningsmekanismer som behöver aktiveras bland de som finns tillgängliga. Låt oss säga att du vill aktivera loggar för skriptblock.

Click Aktivera loggning av PowerShell-skriptblock. Välj Aktiverad bland de angivna alternativknapparna och klicka på Verkställ.

En liknande process kan användas för att aktivera generering av andra PowerShell-loggar. Många organisationer inaktiverar PowerShell-loggning på grund av det stora antalet händelseloggar som genereras. Som en bästa praxis för cybersäkerhet rekommenderas att organisationer aktiverar PowerShell-loggning – om inte alla tre typerna, så åtminstone loggning av skriptblock.
Det kan vara svårt för IT-administratörer att hålla reda på den mängd händelseloggar som genereras för att spåra PowerShell-skript. En SIEM-lösning som Log360, som har en Active Directory-granskningsfunktion, kan hjälpa IT-administratörer att göra processen enklare på följande sätt:
Fig. 3: Modulloggningsrapporter i ManageEngine Log360
Fig. 4: Skriptblock-loggningsrapporter i ManageEngine Log360
Fig. 5: Rapporter för spårning av PowerShell-processer i ManageEngine Log360
Fig. 6: Funktionen för konfiguration av varningsprofiler i ManageEngine Log360
Fig. 7: Funktionen Kör skript i ManageEngine Log360
Om du vill ha mer information om PowerShell-granskning med Log360 kan du kontakta våra produktexperter för en personlig demo eller ladda ner en kostnadsfri 30-dagars utvärderingsversion och prova själv.