
Generiere eine obfuskierte DLL, die AMSI & ETW deaktiviert.
LightsOut generiert eine verschleierte DLL, die AMSI & ETW deaktiviert und gleichzeitig versucht, AV zu umgehen. Dies geschieht durch Randomisierung aller verwendeten WinAPI-Funktionen, XOR-Kodierung von Zeichenketten und Nutzung grundlegender Sandbox-Prüfungen. Mingw-w64 wird verwendet, um den verschleierten C-Code in eine DLL zu kompilieren, die in jeden Prozess geladen werden kann, in dem AMSI oder ETW vorhanden sind (z. B. PowerShell).
LightsOut ist für den Einsatz auf Linux-Systemen mit installiertem python3 und mingw-w64 ausgelegt. Es sind keine weiteren Abhängigkeiten erforderlich.
Derzeit enthaltene Funktionen:
_______________________
| |
| AMSI + ETW |
| |
| LIGHTS OUT |
| _______ |
| || || |
| ||_____|| |
| |/ /|| |
| / / || |
| /____/ /-' |
| |____|/ |
| |
| @icyguider |
| |
| RG|
`-----------------------'
usage: lightsout.py [-h] [-m <method>] [-s <option>] [-sa <value>] [-k <key>] [-o <outfile>] [-p <pid>]
Generiert eine verschleierte DLL, die AMSI & ETW deaktiviert
Optionen:
-h, --help Zeigt diese Hilfemeldung an und beendet das Programm
-m <method>, --method <method>
Bypass-Technik (Optionen: patch, hwbp, remote_patch) (Standard: patch)
-s <option>, --sandbox <option>
Sandbox-Umgehungstechnik (Optionen: mathsleep, username, hostname, domain) (Standard: mathsleep)
-sa <value>, --sandbox-arg <value>
Argument für die Sandbox-Umgehungstechnik (z.B.: WIN10CO-DESKTOP, testlab.local)
-k <key>, --key <key>
Schlüssel zur Kodierung von Zeichenketten (standardmäßig zufällig generiert)
-o <outfile>, --outfile <outfile>
Datei, in der die DLL gespeichert werden soll
Remote-Optionen:
-p <pid>, --pid <pid>
PID des Remote-Prozesses, der gepatcht werden soll
Verwendungszweck/Opsec-Überlegungen
Dieses Tool wurde für den Einsatz bei Pentests entwickelt, hauptsächlich um bösartige PowerShell-Skripte auszuführen, ohne von AV/EDR blockiert zu werden. Aus diesem Grund ist das Tool sehr rudimentär und es kann viel hinzugefügt werden, um die Opsec zu verbessern. Erwarten Sie nicht, dass dieses Tool die Erkennung durch EDR vollständig umgeht.
Anwendungsbeispiele
Sie können die ausgegebene DLL auf Ihr Zielsystem übertragen und auf verschiedene Weise in PowerShell laden. Beispielsweise kann dies über P/Invoke mit LoadLibrary erfolgen:

Oder noch einfacher: Kopieren Sie PowerShell an einen beliebigen Ort und laden Sie die DLL seitlich!

Grüße/Danksagung/Weitere Referenzen: