
AMSI 및 ETW를 비활성화하는 난독화된 DLL 생성
LightsOut는 AMSI & ETW를 비활성화하면서 AV를 회피하려는 난독화된 DLL을 생성합니다. 이는 사용된 모든 WinAPI 함수를 무작위화하고, 문자열을 xor 인코딩하며, 기본 샌드박스 검사를 활용하여 수행됩니다. Mingw-w64는 난독화된 C 코드를 AMSI나 ETW가 존재하는 모든 프로세스(예: PowerShell)에 로드할 수 있는 DLL로 컴파일하는 데 사용됩니다.
LightsOut는 python3와 mingw-w64가 설치된 Linux 시스템에서 작동하도록 설계되었습니다. 다른 종속성은 필요하지 않습니다.
현재 기능은 다음과 같습니다:
_______________________
| |
| AMSI + ETW |
| |
| LIGHTS OUT |
| _______ |
| || || |
| ||_____|| |
| |/ /|| |
| / / || |
| /____/ /-' |
| |____|/ |
| |
| @icyguider |
| |
| RG|
`-----------------------'
usage: lightsout.py [-h] [-m <method>] [-s <option>] [-sa <value>] [-k <key>] [-o <outfile>] [-p <pid>]
Generate an obfuscated DLL that will disable AMSI & ETW
options:
-h, --help show this help message and exit
-m <method>, --method <method>
Bypass technique (Options: patch, hwbp, remote_patch) (Default: patch)
-s <option>, --sandbox <option>
Sandbox evasion technique (Options: mathsleep, username, hostname, domain) (Default: mathsleep)
-sa <value>, --sandbox-arg <value>
Argument for sandbox evasion technique (Ex: WIN10CO-DESKTOP, testlab.local)
-k <key>, --key <key>
Key to encode strings with (randomly generated by default)
-o <outfile>, --outfile <outfile>
File to save DLL to
Remote options:
-p <pid>, --pid <pid>
PID of remote process to patch
의도된 사용법/OPSEC 고려사항
이 도구는 침투 테스트에서 사용되도록 설계되었으며, 주로 AV/EDR에 의해 차단되지 않고 악성 PowerShell 스크립트를 실행하기 위한 것입니다. 이 때문에 도구는 매우 기본적이며 OPSEC을 개선하기 위해 많은 것을 추가할 수 있습니다. 이 도구가 EDR 탐지를 완전히 회피할 것이라고 기대하지 마십시오.
사용 예제
출력 DLL을 대상 시스템으로 전송하고 다양한 방법으로 PowerShell에 로드할 수 있습니다. 예를 들어, LoadLibrary를 사용한 P/Invoke를 통해 수행할 수 있습니다:

또는 더 쉽게, PowerShell을 임의의 위치에 복사하고 DLL을 사이드 로드하세요!

감사/크레딧/추가 참고 자료: