Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/outflanknl/evilclippy
脆弱性分析エクスプロイトマルウェア分析ペネトレーションテスト学習と教育レッドチーミングペイロード開発
GitHuboutflanknl/evilclippy

EvilClippy

悪意のあるMS Office文書を作成するためのクロスプラットフォームアシスタントです。VBAマクロを隠蔽したり、(P-Codeを介して)VBAコードをスタンプしたり、マクロ解析ツールを混乱させることができます。Linux、OSX、Windows上で動作します。

リポジトリを見る
2.3k3985年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

このツールは、BlackHat Asia での講演(2019年3月28日)に合わせて公開されました。講演の録画は https://www.youtube.com/watch?v=9ULzZA70Dzg でご覧いただけます。

Evil Clippy

悪意のあるMS Office文書を作成するためのクロスプラットフォームアシスタント。VBAマクロの隠蔽、VBAコードのスタンピング(P-Code経由)、マクロ解析ツールの混乱を引き起こします。Linux、OSX、Windowsで動作します。

このツールに初めて触れる方は、まずEvil Clippyに関するブログ記事をご一読ください: https://outflank.nl/blog/2019/05/05/evil-clippy-ms-office-maldoc-assistant/

このプロジェクトは、許可されたテストまたは教育目的でのみ使用してください。

現在の機能

  • VBAマクロをGUIエディタから隠す
  • VBAスタンピング(P-codeの悪用)
  • アナリストツールを欺く
  • HTTP経由でVBAスタンピングされたテンプレートを提供
  • VBAプロジェクトのロック/表示不可保護の設定/解除

これらが何を意味するのか全くわからない場合は、まず以下のリソースをご確認ください:

  • Derbycon 2018でのMS Office Magic Showの発表
  • WalmartセキュリティチームによるVBAスタンピングリソース
  • Dr. BontchevによるPcodedmp

これはどの程度効果的ですか?

執筆時点では、このツールはデフォルトのCobalt Strikeマクロを使用して、ほとんどの主要なアンチウイルス製品やさまざまなマルドキュメント解析ツールを回避できます(VBAスタンピングとランダムモジュール名の組み合わせによる)。

テクノロジー

Evil Clippyは、OpenMCDFライブラリを使用してMS Office複合ファイルバイナリフォーマット(CFBF)ファイルを操作し、そのためにMS-OVBA仕様と機能を悪用します。ディレクトリストリームとモジュールストリームで使用される圧縮アルゴリズムを実装するために、Kavod.VBA.Compressionのコードを再利用しています(関連仕様はMS-OVBAを参照)。

Evil ClippyはMono C#コンパイラで問題なくコンパイルでき、Linux、OSX、Windowsでテストされています。

コンパイル

EvilClippyのバイナリリリースは提供していません。自分で実行ファイルをコンパイルしてください:

OSX および Linux

Monoがインストールされていることを確認してください。次に、コマンドラインから次のコマンドを実行します:

mcs /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs

次に、コマンドラインからEvil Clippyを実行します:

mono EvilClippy.exe -h

Windows

Visual Studioがインストールされていることを確認してください。次に、Visual Studioの開発者コマンドプロンプトから次のコマンドを実行します:

csc /reference:OpenMcdf.dll,System.IO.Compression.FileSystem.dll /out:EvilClippy.exe *.cs

次に、コマンドラインからEvil Clippyを実行します:

EvilClippy.exe -h

使用例

ヘルプの表示

EvilClippy.exe -h

GUIからマクロを隠す/表示する

デフォルトの「ThisDocument」モジュールを除くすべてのマクロモジュールをVBA GUIエディタから隠します。これは、プロジェクトストリーム [MS-OVBA 2.3.1] からモジュール行を削除することで実現されます。

EvilClippy.exe -g macrofile.doc

隠すオプション(-g)による変更を元に戻し、VBA IDEでマクロをデバッグできるようにします。

EvilClippy.exe -gg macrofile.doc

VBAスタンピング(P-codeの悪用)

テキストファイル fakecode.vba から偽のVBAコードをすべてのモジュールに配置し、P-codeはそのまま残します。これはモジュールストリームの文書化されていない機能 [MS-OVBA 2.3.4.3] を悪用します。P-codeが実行されるためには、VBAプロジェクトのバージョンがホストプログラムと一致している必要があることに注意してください(バージョン一致については次の例を参照)。

EvilClippy.exe -s fakecode.vba macrofile.doc

注:VBAスタンピングは、Excel 97-2003 ワークブック (.xls) 形式で保存されたファイルでは機能しません。

VBAスタンピングの対象Officeバージョンの設定

上記と同じですが、今度は明示的にx86上のWord 2016を対象とします。つまり、x86上のWord 2016はP-codeを実行し、他のバージョンのWordは fakecode.vba のコードを実行します。これは、_VBA_PROJECT ストリーム [MS-OVBA 2.3.4.1] で適切なバージョンバイトを設定することで実現されます。

EvilClippy.exe -s fakecode.vba -t 2016x86 macrofile.doc

ランダムモジュール名の設定/リセット(アナリストツールを欺く)

ディレクトリストリーム [MS-OVBA 2.3.4.2] にランダムなASCIIモジュール名を設定します。これは、MODULESTREAMNAMEレコード [MS-OVBA 2.3.4.2.3.2.3] の曖昧さを悪用します。ほとんどのアナリストツールはここで指定されたASCIIモジュール名を使用しますが、MS OfficeはUnicode版を使用します。ランダムなASCIIモジュール名を設定することで、ほとんどのP-codeおよびVBA解析ツールがクラッシュする一方、実際のP-codeとVBAはWordとExcelで正常に動作し続けます。

EvilClippy.exe -r macrofile.doc

注:これはpcodedmpやVirusTotalを欺くのに効果的であることが知られています。

ASCIIモジュール名を対応するUnicodeのものに一致するように設定します。これにより、EvilClippyの(-r)オプションで行われた変更を元に戻します。

EvilClippy.exe -rr macrofile.doc

HTTP経由でVBAスタンピングされたテンプレートを提供

VBAスタンピングを実行した後、HTTPポート8080で macrofile.dot を提供します。このファイルが取得されると、自動的にターゲットのOfficeバージョンに一致します(HTTPヘッダーを使用し、それに応じて_VBA_PROJECTバイトを設定します)。

EvilClippy.exe -s fakecode.vba -w 8080 macrofile.dot

注:提供するファイルはテンプレート(.docではなく.dot)である必要があります。Wordの開発者ツールバーからURL経由でテンプレートを設定できます(.dot拡張子は不要!)。また、fakecode.vbaにはテンプレートからのマクロ用にVB_Base属性が設定されている必要があります(つまり、fakecode.vbaは Attribute VB_Base = "0{00020906-0000-0000-C000-000000000046}" のような行で始まる必要があります)。

VBAプロジェクトのロック/表示不可保護の設定/解除

Locked/Unviewable属性を設定するには、'-u'オプションを使用します:

EvilClippy.exe -u macrofile.doc

Locked/Unviewable属性を解除するには、'-uu'オプションを使用します:

EvilClippy.exe -uu macrofile.doc

注:EvilClippyでロックされていないファイルでもLocked/Unviewable属性を解除できます。

制限事項

Microsoft WordおよびExcel文書の操作向けに開発されています。

上記の通り、VBAスタンピングはExcel 97-2003 ワークブック (.xls) 形式に対しては効果がありません。

著者

Stan Hegt (@StanHacked) / Outflank

Carrie Roberts (@OrOneEqualsOne / Walmart) による多大な貢献があります。

Nick Landers (@monoxgas / Silent Break Security) には、OpenMCDFを紹介していただき、特別に感謝します。

ツールをダウンロード