
Invoke-ArgFuscator is an open-source, cross-platform PowerShell module that helps generate obfuscated command-lines for common system-native executables.
░█░█▄░█░█▒█░▄▀▄░█▄▀▒██▀░▒░ ▄▀▄▒█▀▄░▄▀▒▒█▀░█▒█░▄▀▀░▄▀▀▒▄▀▄░▀█▀░▄▀▄▒█▀▄░ ░█░█▒▀█░▀▄▀░▀▄▀░█▒█░█▄▄░▀▀░█▀█░█▀▄░▀▄█░█▀░▀▄█▒▄██░▀▄▄░█▀█░▒█▒░▀▄▀░█▀▄░
Invoke-ArgFuscator는 Windows, Linux, macOS에서 흔히 사용되는 시스템 기본 실행 파일용 난독화된 명령줄을 생성하는 데 도움이 되는 오픈소스 크로스플랫폼 PowerShell 모듈입니다.
👉 ArgFuscator의 대화형 버전은 ArgFuscator.net에서 사용하세요. 🚀
명령줄 난독화(T1027.010)는 프로세스의 명령줄을 조작하여 명령의 실제 의도를 위장하는 기법입니다. Windows, Linux, macOS에서 많은 애플리케이션이 전달된 명령줄 인수를 예상하지 못한 방식으로 구문 분석하므로, 특정 문자의 삽입, 삭제 및/또는 대체가 프로그램의 실행 흐름을 변경하지 않는 상황이 발생합니다. 성공적인 명령줄 난독화는 AV 및 EDR 소프트웨어와 같은 방어 조치를 무력화할 가능성이 높으며, 경우에 따라 탐지를 완전히 우회하기도 합니다.
이전 연구에서 주로 취약한(시스템 기본) 애플리케이션의 일화적인 예를 통해 명령줄 난독화의 위험을 강조했지만, 이 기술에 대한 지식 공백이 여전히 존재합니다. 이 프로젝트는 다양한 명령줄 난독화 기술을 문서화하고 시연하며, 각 기술에 대한 인기 애플리케이션의 취약성을 기록하는 중앙 집중식 리소스를 제공함으로써 이러한 공백을 해소하는 것을 목표로 합니다.
이 모듈은 PowerShell/pwsh를 지원하는 모든 운영 체제에서 작동합니다. 여기에는 Windows, macOS, Linux가 포함됩니다.
brew가 사전 설치되어 있다면 brew install powershell/tap/powershell을 실행하여 최신 버전의 PowerShell을 설치하십시오. 다른 설치 옵션은 Microsoft의 문서를 참조하십시오.이 모듈을 설치하는 가장 간단한 방법은 다음 PowerShell 명령을 사용하는 것입니다:
Install-Module -Name Invoke-ArgFuscator
모듈을 사용하려면 PowerShell 내에서 Invoke-ArgFuscator 함수를 호출하십시오. 예를 들어:
a. 난독화하려는 명령줄을 명령줄 인수로 전달하려면 (ArgFuscator.net에서 지원하는 경우):
# Windows
powershell /c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -Command 'certutil /f /urlcache https://www.example.org/ homepage.txt'"
b. 자신만의 모델 파일을 사용하려면1:
# Windows
powershell /c "Invoke-ArgFuscator -InputFile path\to\file.json"
# macOS and Linux
pwsh -c "Invoke-ArgFuscator -InputFile path/to/file.json"
이 저장소를 기기에 복제하십시오.
PowerShell을 통해 Invoke-ArgFuscator.ps1을 호출하십시오. 예를 들어:
a. 대화형으로 실행하려면 표준 입력(stdin)을 통해 모델 파일1의 경로를 전달하십시오:
# Windows
powershell .\Invoke-ArgFuscator.ps1
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1
b. 모델 파일1의 경로를 명령줄 인수로 전달하려면:
# Windows
powershell .\Invoke-ArgFuscator.ps1 -InputFile "path\to\file.json"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -InputFile "path/to/file.json"
c. 난독화하려는 명령줄을 명령줄 인수로 전달하려면:
참고: 이 경우 Invoke-ArgFuscator.ps1과 같은 폴더에 models/ 폴더가 있어야 합니다.
# Windows
powershell .\Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
# macOS and Linux
pwsh ./Invoke-ArgFuscator.ps1 -Command "certutil /f /urlcache https://www.example.org/ homepage.txt"
Invoke-ArgFuscator는 PowerShell 모듈이므로 이 프로젝트의 기능을 자신의 PowerShell 프로젝트에 추가할 수 있습니다.
Invoke-ArgFuscator를 활용하려면 PowerShell 파일에 다음을 추가하십시오:
Import-Module Invoke-ArgFuscator
그런 다음 다음 중 하나의 방식으로 호출하십시오:
Invoke-ArgFuscator -InputFile $InputFile -n $n
Invoke-ArgFuscator -Command $Command -Platform $Platform -n $n
여기서,
$InputFile은 모델 파일의 (상대/절대) 파일 경로를 포함하는 string이고, $Profile은 제공된 파일 경로 내에서 대상으로 지정할 프로필 인덱스를 나타내는 0 이상의 정수(선택 사항)이며, $n은 생성할 난독화된 명령줄 등가물의 수를 나타내는 0보다 큰 integer(선택 사항)입니다. 또는,$Command는 난독화하려는 명령줄을 포함하는 string이고, $Platform은 관련 플랫폼을 나타내는 string(예: windows, 선택 사항)이며, $n은 생성할 난독화된 명령줄 등가물의 수를 나타내는 0보다 큰 integer(선택 사항)입니다.이러한 파일은 ArgFuscator.net의 'Download' 옵션을 통해 생성하거나 GitHub에서 다운로드할 수 있습니다. ↩ ↩2 ↩3