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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
TrollDump — SetWindowsHookを介してx64マネージドDLLをGUIプロセスに注入し、モジュール式C#ペイロードランナーとLSASSダンプPOCを備えた、レッドチーム/攻撃的Windowsテスト用ツール。 | Kitploit
ツール/GitHubGitHub/cybersectroll/trolldump
特権昇格ポストエクスプロイトレッドチーミングペイロード開発
GitHubcybersectroll/trolldump

TrollDump

SetWindowsHookを介してx64マネージドDLLをGUIプロセスに注入し、モジュール式C#ペイロードランナーとLSASSダンプPOCを備えた、レッドチーム/攻撃的Windowsテスト用ツール。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

TrollDump

  • x64マネージドDLLをx64マネージド/アンマネージドプロセスに注入します(ウィンドウハンドルを取得するため、プロセスにGUIが必要です)。setwindowshookを使用します。
  • ここではTROLLとして、非表示ウィンドウのtaskmgrに注入して、lsassダンプを検出されずに実行します(以下のテストケースセクションを参照)。
  • インジェクターDLLと注入されるDLLは同じDLLであるため、追加のDLLは不要です。
  • ターゲットプロセスの整合性レベルは、インジェクタープロセスと同等以下である必要があります。

クレジット(プロジェクトのアップグレード/リライト)

元のプロジェクト: https://github.com/enkomio/ManagedInjector

  • 64ビットバイナリに注入するためのコードを移植 ---> 元のプロジェクトは32ビットバイナリへのDLL注入のみ許可しています
  • 過剰だったIPCロジックを削除
  • 以前の複雑な方法の代わりに、RunOnRemoteProcess()関数内でペイロードを直接実行するだけのボイラープレートコードを作成
  • プロジェクトは依然としてDLLExportを使用して、.NET DLLが関数をエクスポートするようにしています
    • これはプロジェクトの依存関係ではなく、後処理に近いものであることに注意してください。DLLExportは最終的な.NET DLLを変更して関数をエクスポートします。
    • 必要に応じて、手動で関数のエクスポートを行うこともできます https://blog.xpnsec.com/rundll32-your-dotnet/

コンパイル

  • プロジェクトをダウンロードし、ソリューションをX64、Releaseとしてコンパイル
  • 外部依存関係は不要

使用法

root@kitploit:~
> Requires High Integrity depending on use case
> [System.Reflection.Assembly]::LoadFrom("C:\Users\public\TrollDump.dll")
> [TrollDump.ForFun]::Main("C:\windows\system32\taskmgr.exe")
  • このPOCでは、lsassダンプを実行します。RunOnRemoteProcess()関数を変更して再コンパイルすることで、任意の「DLLエクスポート関数ロジック」を実行できます。
  • 前述のとおり、このコードはDLLインジェクションのボイラープレートとして機能し、その後に何をするかはC#マネージドコードで簡単に記述できます。

テストケース

  • Win 2019 build 17763.737 に最新のwindefenderパッチを適用
    • DLLインジェクションとlsassダンプの両方
  • 他のAV(未公表)
    • DLLインジェクションは正常に動作
    • lsassダンプが機能するかどうかは、AVがtaskmgrによるlsassダンプを許可するかどうかに依存するのは明らかです
  • どのEDRでもテストしていません -> 特定のEDRではDLLインジェクションは依然として機能するはずです

OPSEC

  • DLLはディスク上に存在する必要があるため、難読化する必要があります
  • DLLはインジェクションにのみ使用すべきであり、実際のペイロードはDLLに埋め込むべきではなく、リフレクティブにロードする必要があります
  • 当然、CLRをアンマネージドプロセスに注入するのは疑わしいですが、まあいいでしょう!
  • setwindowshookは古典的な手法ですが、ほとんどの場合キーロギングと関連付けられます。私たちのユースケースではありません。
  • どのGUIプロセスに注入するかは非常に創造的になります(systemとして実行している場合は、dwm.exeにも注入できます)

ウィッシュリスト - このプロジェクトは週末に作成したもので、以下を追求する時間も意図もありません:

  • GUIなしプロセスへの注入
    • 現在、setwindowshookはWH_CALLWNDPROCを使用しています。WH_GETMESSAGEを使用するように変更できますが、ターゲットプロセスがメッセージループ(GetMessage())を実行している必要があります。
    • メッセージループを実装した非GUIバイナリを見つけられるなら(おそらく無理だと思いますが)、GUIなしバイナリにも注入できます。
    • GUIプロセスがGetMessage()を実行するのは一般的です
  • 完全リフレクティブで、ディスクにドロップする必要がない
    • setwindowshookに基づくと、DLLは*ディスク上になければならない?*ようです
    • エクスポートされたDLL関数の代わりに実行する関数ポインタを渡すためにc#デリゲートを使用してみましたが、機能しませんでした(これはローカルプロセスに対する古典的なc#キーロガー手法ですが、私たちはリモートプロセスで行っています)
    • 他のテクニックを組み込んで試してみてください。実現可能だと思います。
  • 現在のプロセスがMediumでも、Taskmgrは自動的にHigh Integrityとして起動します(つまり、技術的にはDLLを注入すればUACバイパスになります)
    • WIN APIの戻り結果によると、インジェクションは正常に動作しているようです
      • sendMessage()は成功しますが、メッセージは静かにドロップされます。ここで説明されています https://stackoverflow.com/questions/40122964/cross-process-postmessage-uipi-restrictions-and-uiaccess-true
    • しかし、Taskmgrはエクスポートされた関数を呼び出せません。

免責事項

教育目的でのみ使用してください!

ツールをダウンロード