
Сгенерировать обфусцированную DLL, которая отключит AMSI и ETW
LightsOut создает обфусцированную DLL, которая отключает AMSI и ETW, пытаясь обойти антивирусы. Это достигается рандомизацией всех используемых функций WinAPI, XOR-кодированием строк и применением базовых проверок на песочницу. Mingw-w64 используется для компиляции обфусцированного C-кода в DLL, которая может быть загружена в любой процесс, где присутствуют AMSI или ETW (например, PowerShell).
LightsOut предназначен для работы в системах Linux с установленными python3 и mingw-w64. Других зависимостей не требуется.
Текущие возможности включают:
_______________________
| |
| AMSI + ETW |
| |
| LIGHTS OUT |
| _______ |
| || || |
| ||_____|| |
| |/ /|| |
| / / || |
| /____/ /-' |
| |____|/ |
| |
| @icyguider |
| |
| RG|
`-----------------------'
usage: lightsout.py [-h] [-m <method>] [-s <option>] [-sa <value>] [-k <key>] [-o <outfile>] [-p <pid>]
Создать обфусцированную DLL, которая отключает AMSI и ETW
опции:
-h, --help показать это справочное сообщение и выйти
-m <method>, --method <method>
Техника обхода (Варианты: patch, hwbp, remote_patch) (По умолчанию: patch)
-s <option>, --sandbox <option>
Техника обхода песочницы (Варианты: mathsleep, username, hostname, domain) (По умолчанию: mathsleep)
-sa <value>, --sandbox-arg <value>
Аргумент для техники обхода песочницы (Пример: WIN10CO-DESKTOP, testlab.local)
-k <key>, --key <key>
Ключ для кодирования строк (по умолчанию генерируется случайно)
-o <outfile>, --outfile <outfile>
Файл для сохранения DLL
Удаленные опции:
-p <pid>, --pid <pid>
PID удаленного процесса для патча
Назначение / Соображения по OPSEC
Этот инструмент был разработан для использования в пент-тестах, в основном для выполнения вредоносных PowerShell-скриптов без блокировки антивирусом/EDR. Из-за этого инструмент очень минималистичен, и можно добавить многое для улучшения OPSEC. Не ожидайте, что этот инструмент полностью обойдет обнаружение EDR.
Примеры использования
Вы можете передать созданную DLL в целевую систему и загрузить ее в PowerShell различными способами. Например, это можно сделать через P/Invoke с помощью LoadLibrary:

Или еще проще — скопируйте PowerShell в произвольное место и выполните side-load DLL!

Благодарности / Источники / Дополнительная информация: