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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
PMD — 実践的なWindowsマルウェア開発コース: APIハッシュ、DLLサイドローディング、シェルコード実行、PE操作、ペイロードホスティング、配信ラボ | Kitploit
ツール/GitHubGitHub/rad9800/pmd
リバースエンジニアリングシェルコードマルウェア分析バイナリ解析学習と教育レッドチーミングシェルコード生成ペイロード開発ラボと実践
GitHubrad9800/pmd

PMD

実践的なWindowsマルウェア開発コース: APIハッシュ、DLLサイドローディング、シェルコード実行、PE操作、ペイロードホスティング、配信ラボ

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

人気

すべて見る →

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

すべてのツールを探索

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

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

実践的マルウェア開発

演習 1 - 環境セットアップ

  1. ハイパーバイザー内に Windows 仮想マシンをセットアップします。 a. ベースインストールのスナップショットを必ず取得してください。
  2. Visual Studio 2022 をダウンロードしてインストールします - https://visualstudio.microsoft.com/vs/ a. インストール時に Desktop development with C++ ワークロードを選択します
  3. 以下をダウンロードしてインストールします:
    • DebugView++ - https://github.com/CobaltFusion/DebugViewPP
    • PE Bear - https://github.com/hasherezade/pe-bear
    • ProcMon - https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
    • Ghidra - https://www.ghidra-sre.org/
    • Everything - https://www.voidtools.com/

さらに(任意)、より充実したリバースエンジニアリング体験のためにシンボルを設定します:

setx _NT_SYMBOL_PATH c:\Symbols;srv*c:\Symbols*https://msdl.microsoft.com/download/symbols

mkdir \symbols

  1. Visual Studio で PMD.sln を開きます。

  2. setup プロジェクトを選択し、以下のことができることを確認します:

    a. プロジェクトをコンパイルできること

    b. DebugView++ でデバッグ出力ステートメントを確認できること。

演習 2 - PE プロパティを理解する

  1. template プロジェクトのコンパイラおよびリンカーフラグを更新して、IAT エントリやその他の PE プロパティを操作します。

    a. 動的 API 解決と MSDN ドキュメントに慣れてください。

    b. 他に目立つプロパティはありますか? バイナリに対して Strings.exe を実行すると、何か目立つ文字列はありますか?

    c. それらを削除/更新できますか?

演習を完了するには、任意のツールを使用してください(例: dumpbin/PE Bear)。scripts\props.py に pefile のラッパーが用意されています(依存関係をインストールしてください)。

  1. VXUG からマルウェアサンプルをいくつかダウンロードします。

    a. 良性と悪性の実行ファイルの主な違いは何ですか?

    b. 私たちのバイナリと良性の実行ファイルの主な違いは何ですか?

参考資料

  • https://learn.microsoft.com/en-us/cpp/build/reference/dumpbin-reference?view=msvc-170
  • https://learn.microsoft.com/en-us/windows/win32/debug/pe-format
  • https://learn.microsoft.com/en-us/previous-versions/ms809762(v=msdn.10)
  • https://cloud.google.com/blog/topics/threat-intelligence/tracking-malware-import-hashing/
  • https://github.com/rad9800/misc/blob/main/generic/fix-entropy.cpp
  • https://github.com/rad9800/misc/blob/main/generic/stack-strings.cpp

演習 3 - コンパイル時 API ハッシング

現在使用されている API ハッシングアルゴリズムは fnv1a です。

  1. solution プロジェクトを開き、API ハッシングフレームワークを使用して MessageBoxA を呼び出します。
  2. 別のハッシングアルゴリズムを使用して、それでも MessageBoxA を呼び出せることを確認します。

参考資料

  • https://github.com/vxunderground/VX-API/tree/main/VX-API
  • https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messageboxa

演習 4 - DLL ハイジャックを発見して活用する

  1. Cisco Webex をダウンロードします (https://www.webex.com/downloads.html)

  2. CiscoCollabHost を見つけて、どの DLL が読み込まれるか確認します

    • Procmon/PE Bear/Ghidra または何でも使ってください!
  3. Ghidra で CiscoCollabHost を開き、サイドローディングからコード実行を得るさまざまな方法を特定します

  4. dll_template を編集してターゲットバイナリをサイドロードします。DebugView++ でデバッグ文字列を確認できることを検証します。

  5. dll_template.dll の LastWriteTime と CreationTime をターゲット DLL に合わせて更新します。

参考資料

  • https://hijacklibs.net/
  • https://github.com/sadreck/Spartacus

演習 5 - シェルコード実行

  1. ユーティリティプロジェクトをコンパイルして実行します。

    a. さらに、ホストシステム上で実行することも検討してください。

  2. 特定した DLL を x64/{Debug,Release} ディレクトリにコピーし、ローダーコードを更新します。

  3. API ハッシングフレームワークを使用して、別の関数でシェルコードを実行するように execute_sc を更新します。

参考資料

  • https://github.com/Wra7h/FlavorTown

演習 6 - 全体をまとめる

  1. 新しい DLL プロジェクトを作成して、次を組み合わせます: a. DLL サイドローディング b. サイドロードによるシェルコード実行
  2. PE プロパティが期待どおりであることを確認します。
  3. ペイロードを Release 構成でコンパイルし、配信に適した形式でパッケージ化します。

演習 7 - ペイロードのホスティング

  1. クラウドストレージプロバイダーに登録します(例: AWS/CloudFlare)

  2. ペイロードをパッケージ化してアップロードします

    a. さらに、ダウンロードアクセスを制限/監査する方法を調査します

  3. VM のスナップショットを取得します

  4. ベース VM に戻し、「配信」シナリオ全体を実行します

    • 例: ユーザーを URL に誘導してダウンロードさせる。それが機能することを確認します。

演習 8 - GitHub Actions を使用したペイロードのビルド

  1. このプロジェクトの内容で Git リポジトリを作成します
  2. Action を実行でき、成果物が機能することを検証します
  3. .github\workflows\build.yml を更新して、時間を節約するための追加の前処理/後処理を好きなように実行します。アイデアをいくつか示します:
    • props.py を実行して出力を検証/含める
    • Python でのペイロードパッケージングを自動化する
    • LastWriteTime と CreationTime の更新をターゲットに合わせて自動化する
ツールをダウンロード