
Empire는 PowerShell 및 Python 기반의 사후 침투 에이전트입니다.

Invoke-Obfuscation은 PowerShell v2.0+와 호환되는 PowerShell 명령 및 스크립트 난독화 도구입니다.
2015년 가을, 저는 PowerShell 언어의 유연성을 연구하기 시작했으며, 대부분의 공격자가 일반적으로 사용하는 몇 가지 일반적인 기법을 달성하는 다양한 방법을 정리하기 시작했습니다.
처음에는 인코딩된 명령과 원격 다운로드 크래들 문법에 초점을 맞추었습니다. 명령 실행을 방해하지 않는 다양한 이스케이프 문자가 실행 중인 프로세스와 Security EID 4688 및 Sysmon EID 1 이벤트 로그에 기록된 명령줄 인수에 그대로 남아 있다는 것을 발견했습니다. 이로 인해 PowerShell 명령이나 스크립트에서 발견되는 각 종류의 "토큰"을 난독화하는 방법을 체계적으로 탐구하게 되었습니다.
그 후 문자열 수준 난독화를 수행하는 더 난해한 방법, 다양한 인코딩/암호화 기법 (예: ASCII/hex/octal/binary 및 SecureString), 그리고 마지막으로 powershell.exe로부터 명령줄 인수를 추상화하고 이를 부모 및 심지어 조부모 프로세스로 다시 전달하는 PowerShell 실행 기법을 탐구했습니다.
공격자와 상용 악성코드는 매우 기본적인 난독화 기법을 사용하여 powershell.exe의 명령줄 인수에서 명령의 대부분을 숨기기 시작했습니다. 저는 PowerShell 2.0-5.0에서 구문적으로 가능하다고 현재 알고 있는 내용을 바탕으로 난독화된 명령을 시뮬레이션하여 Blue Team이 이러한 기법의 탐지 능력을 테스트할 수 있도록 이 도구를 개발했습니다.
이 도구의 유일한 목적은 PowerShell 명령이 명령줄에 어떻게 나타날 수 있는지에 대한 방어자의 가정을 깨는 것입니다. 제 바람은 Blue Team이 명령줄에서 난독화 지표(Indicators of Obfuscation)를 찾도록 전환하고, 또한 Module, ScriptBlock 및 Transcription 로깅을 포함하도록 PowerShell 로깅을 업데이트하게 하는 것입니다. 이러한 소스는 이 도구가 생성하는 난독화 기법의 대부분의 측면을 단순화하기 때문입니다.
모든 난독화 계층은 별도의 스크립트로 구축되었지만, 대부분의 사용자는 Invoke-Obfuscation 함수가 이 프레임워크가 현재 지원하는 난독화 기법을 탐색하고 시각화하는 가장 쉬운 방법임을 알게 될 것입니다.
Invoke-Obfuscation의 소스 코드는 Github에 호스팅되어 있으며, 이 저장소(https://github.com/danielbohannon/Invoke-Obfuscation)에서 다운로드, 포크 및 검토할 수 있습니다. 문제점이나 기능 요청은 이 프로젝트와 관련된 Github의 버그 트래커를 통해 보고해 주십시오.
설치 방법:
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
Invoke-Obfuscation은 Apache 2.0 라이선스 하에 배포됩니다.
v1.0 - 2016-09-25 DerbyCon 6.0 (Louisville, Kentucky USA): Invoke-Obfuscation 공개 릴리스.
v1.1 - 2016-10-09 SANS DFIR Summit (Prague, Czech Republic): 모든 해당 TOKEN 난독화 함수에 -f 형식 연산자 재정렬 기능을 추가했습니다. 또한 변수 값을 설정하기 위한 추가 구문 옵션을 추가했습니다.
v1.2 - 2016-10-20 CODE BLUE (Tokyo, Japan): Type TOKEN 난독화 추가 (형식 이름에 대한 문자열 난독화 옵션이 있는 직접 형식 캐스팅).
v1.3 - 2016-10-22 Hacktivity (Budapest, Hungary): 두 개의 새로운 LAUNCHER 추가: CLIP+ 및 CLIP++. 또한 For-EachObject/%가 필요 없는 모든 ENCODING 함수에 추가 (및 더 간단한) 배열 문자 변환 구문을 추가했습니다.
v1.4 - 2016-10-28 BruCON (Ghent, Belgium): 새로운 BXOR ENCODING 함수 추가. 또한 모든 ENCODING 함수의 모든 구성 요소와 모든 LAUNCHER의 PowerShell 실행 플래그에 대해 무작위 대소문자 기능을 개선했습니다. 마지막으로, 모든 LAUNCHER에 -ExecutionPolicy의 단축 옵션인 -EP와 -WindowStyle PowerShell 실행 플래그의 선택적 정수 표현을 추가했습니다: Normal (0), Hidden (1), Minimized (2), Maximized (3).
v1.5 - 2016-11-04 Blue Hat (Redmond, Washington USA): WMIC 명령줄 인수의 일부 무작위화를 포함한 WMIC LAUNCHER 추가.
v1.6 - 2017-01-24 Blue Hat IL (Tel Aviv, Israel):
v1.7 - 2017-03-03 nullcon (Goa, India):
v1.8 - 2017-07-27 Black Hat (Las Vegas, Nevada USA):