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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-49144 — 概念実証 CVE-2025-49144 | Kitploit
ツール/GitHubGitHub/vr00mm/cve-2025-49144
特権昇格永続化メカニズムエクスプロイトコマンド&コントロールソーシャルエンジニアリング学習と教育レッドチーミングペイロード開発バイナリエクスプロイト
GitHubvr00mm/cve-2025-49144

CVE-2025-49144

概念実証 CVE-2025-49144

リポジトリを見る
61年前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

Notepad++ バイナリプランティング PoC (CVE-2025-49144)

⚠️ 教育目的のみ
このコードは、バイナリプランティングの脆弱性を理解するための教育および研究目的で設計されています。適切な許可を得た管理された環境でのみ使用してください。

📋 概要

この Proof of Concept は、Notepad++ インストーラにおけるバイナリプランティングの脆弱性(CVE-2025-49144)を示すものです。この脆弱性は GHSA-9vx8-v79m-6m24 で参照されています。攻撃者は、Notepad++ インストーラと同じディレクトリに regsvr32.exe という悪意のある実行ファイルを配置することで、SYSTEM 権限を獲得できます。

🎯 脆弱性の詳細

  • 対象: Notepad++ インストーラ(v8.8.2 より前の全バージョン)
  • 手法: 悪意のある regsvr32.exe によるバイナリプランティング
  • 根本原因: Notepad++ インストーラが regsvr32 などのシステムバイナリを絶対パス指定なしで呼び出す
  • 影響: ユーザーがインストーラを実行すると、システムが自動的に悪意のあるファイルを SYSTEM 権限で読み込み、攻撃者に対象マシンの完全な制御権を与える
  • 攻撃ベクトル: ソーシャルエンジニアリングまたはクリックジャッキングにより、ユーザーをだまして正当なインストーラと悪意のある実行ファイルを同じディレクトリ(通常はダウンロードフォルダ)にダウンロードさせる

🏗️ アーキテクチャ

PoC は複数のコンポーネントで構成されています:

root@kitploit:~
┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│ Notepad++       │    │ Malicious        │    │  Reverse Shell  │
│ Installer       │───▶│ regsvr32.exe     │───▶│   (PowerShell)  │
│ (searches for   │    │ (CGO binary)     │    │  with SYSTEM    │
│  regsvr32.exe)  │    │                  │    │  privileges     │
└─────────────────┘    └──────────────────┘    └─────────────────┘

コアコンポーネント

🔧 技術的特徴

🛡️ 回避技術

  • 文字列難読化: PowerShell パスを XOR エンコードして静的分析を回避
  • デタッチドプロセス: 親プロセス終了後も存続する独立したプロセスを作成
  • トークン偽装: SYSTEM トークンを奪って権限昇格
  • プロセスハロウイング: 正当な Windows プロセスにコードを注入

🌐 ネットワーク機能

  • TCP Keep-Alive: ファイアウォールを通過する永続的な接続を維持
  • 接続リトライ: 設定可能な遅延で自動再接続
  • タイムアウト処理: 適切なタイムアウトによるノンブロッキングソケット操作
  • レート制限: 接続のスパムと検出を防止

💻 システム統合

  • CGO 統合: システムコールのためのシームレスな Go から C への相互運用
  • 実行ファイル偽装: 正規の regsvr32.exe の動作を模倣
  • マルチスレッド: stdin/stdout/stderr 処理用の個別スレッド
  • エラー回復: 接続障害やプロセス終了の適切な処理
  • リソース管理: ハンドル、ソケット、メモリの適切なクリーンアップ

🚀 ビルド手順

前提条件

root@kitploit:~
# Go (1.24+) をインストール
# CGO コンパイル用に MinGW-w64 をインストール
# バージョン管理用に Git をインストール

コンパイル

root@kitploit:~
# リポジトリのクローン
git clone https://github.com/Vr00mm/CVE-2025-49144
cd CVE-2025-49144

# 実行ファイルとしてビルド(regsvr32.exe として偽装)

# 最大ステルスの場合(デバッグ情報除去)
go build -ldflags="-s -w" -o regsvr32.exe

# 開発用(デバッグシンボル付き)
go build -o regsvr32_debug.exe

📖 使用方法

バイナリプランティング(主要攻撃ベクトル)

root@kitploit:~
# 1. 悪意のある regsvr32.exe を Notepad++ インストーラと同じディレクトリに配置
# 通常はユーザーがインストーラをダウンロードするダウンロードフォルダ
copy regsvr32.exe "C:\Users\%USERNAME%\Downloads\"

# 2. ユーザーが公式の Notepad++ インストーラをダウンロードフォルダにダウンロード
# 3. ユーザーがインストーラを実行すると、インストーラは現在のディレクトリで regsvr32.exe を最初に検索
# 4. インストーラが悪意のある regsvr32.exe を見つけ、SYSTEM 権限で実行

# 5. 受信リバースシェル接続を待機
ncat -tlnp 4445

🔍 攻撃フロー

root@kitploit:~
sequenceDiagram
    participant User
    participant Attacker
    participant Downloads
    participant NotepadInstaller
    participant MaliciousRegsvr32
    participant SystemProcess

    User->>Downloads: Download Notepad++ installer
    Attacker->>Downloads: Place malicious regsvr32.exe (social engineering)
    User->>NotepadInstaller: Run installer from Downloads folder
    NotepadInstaller->>Downloads: Search for regsvr32.exe in current directory
    Downloads->>MaliciousRegsvr32: Find malicious regsvr32.exe first
    NotepadInstaller->>MaliciousRegsvr32: Execute with SYSTEM privileges
    MaliciousRegsvr32->>MaliciousRegsvr32: Create detached process
    MaliciousRegsvr32->>SystemProcess: Enumerate SYSTEM processes
    SystemProcess->>MaliciousRegsvr32: Steal token from winlogon/services
    MaliciousRegsvr32->>MaliciousRegsvr32: Create PowerShell with SYSTEM token
    MaliciousRegsvr32->>Attacker: Establish reverse connection
    MaliciousRegsvr32->>NotepadInstaller: Continue with legitimate regsvr32 functionality
    Attacker->>SystemProcess: Execute commands as SYSTEM

🎓 教育的側面

実証されるセキュリティ概念

  1. バイナリプランティング

    • 安全でない実行ファイル検索パスの動作
    • インストーラの脆弱性を介した権限昇格
    • ソーシャルエンジニアリング攻撃ベクトル
  2. 権限昇格

    • トークン偽装手法
    • プロセストークン窃取
    • SYSTEM レベルのアクセス獲得
  3. 永続化メカニズム

    • デタッチドプロセス作成
    • サービスプロセス模倣
    • 接続リトライロジック
  4. ネットワークプログラミング

    • リバースシェルの実装
    • C 言語のソケットプログラミング
    • クロスプラットフォームネットワーキング
  5. CGO プログラミング

    • Go から C への相互運用
    • Go によるシステムレベルプログラミング
    • 言語間統合

学習目標

  • バイナリプランティング脆弱性の仕組みを理解する
  • インストーラにおける安全でない実行ファイル検索パスについて学ぶ
  • インストーラの欠陥を介した Windows 権限昇格を探求する
  • ソーシャルエンジニアリング攻撃ベクトルを研究する
  • CGO プログラミングと言語間統合を実践する
  • セキュアコーディングと脆弱性分析を実践する

🛡️ 検出と緩和策

検出方法

root@kitploit:~
# 不審な regsvr32 の使用を監視
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-PowerShell/Operational'; ID=4104}

# 異常なネットワーク接続を確認
netstat -ano | findstr ":4445"

# プロセス作成を監視
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4688}

緩和戦略

  • 即時対応: Notepad++ v8.8.2 以降にアップグレードする。このバージョンでは regsvr32 などの実行ファイルを呼び出す際に絶対パスを明示的に指定する
  • アプリケーションのホワイトリスト化: AppLocker や Windows Defender Application Control などのツールを使用
  • 実行ファイルの検証: すべての実行ファイルにデジタル署名検証を実装
  • パス検証: アプリケーションがシステムユーティリティにフルパスを使用することを保証
  • 最小権限の原則: アプリケーションを最小限の必要な権限で実行
  • ネットワーク監視: 異常な発信接続を監視
  • エンドポイント検出: EDR ソリューションを導入してプロセスハロウイングを検出
  • 設定の確認: ダウンロードフォルダなどのユーザー書き込み可能な場所からインストーラを実行しない

⚖️ 法的・倫理的注意事項

⚠️ 重要な免責事項

  • 許可が必要: 自分が所有する環境、または明示的なテスト許可を得た環境でのみ使用すること
  • 教育目的: このコードは学習とセキュリティ研究のために設計されています
  • 悪意のない意図: 不正アクセスや違法行為を目的としていません
  • 責任ある開示: 発見した脆弱性は適切なチャネルを通じて報告すること

倫理ガイドライン

  1. 責任ある使用: 正当なセキュリティテストと教育のためにのみ使用すること
  2. 不正アクセス禁止: 許可なくシステムに展開しないこと
  3. 適切な帰属: 元の研究者と脆弱性発見者にクレジットを付与すること
  4. 知識の共有: 発見事項をセキュリティコミュニティと責任を持って共有すること

🔧 トラブルシューティング

よくある問題

接続障害

root@kitploit:~
# ポートが利用可能か確認
netstat -ano | findstr ":4445"

# ファイアウォール設定を確認
netsh advfirewall firewall show rule name=all | findstr "4445"

ビルドエラー

root@kitploit:~
# CGO が有効であることを確認
set CGO_ENABLED=1

# MinGW のインストールを確認
gcc --version

# Go のインストールが CGO をサポートしているか確認
go env CGO_ENABLED

トークン取得失敗

  • プログラムが十分な権限で実行されていることを確認
  • SYSTEM プロセスがトークン窃取に利用可能か確認
  • Windows バージョンの互換性を確認
  • 注意: この脆弱性は v8.8.2 より前のすべての Notepad++ バージョンに影響するため、PoC は幅広いインストール環境で動作するはず

📚 参考文献

  • CVE-2025-49144 リポジトリ
  • Notepad++ セキュリティアドバイザリ GHSA-9vx8-v79m-6m24
  • NVD CVE-2025-49144
  • MITRE ATT&CK T1574.007 - PATH 環境変数によるパスインターセプション
  • MITRE ATT&CK T1134 - アクセストークン操作
  • Microsoft ドキュメント - セキュアなバイナリロード

📄 ライセンス

このプロジェクトは教育目的のため MIT ライセンスの下で公開されています。詳細は LICENSE ファイルを参照してください。


忘れないでください: このツールは教育および許可されたテスト目的のみです。常に責任ある開示の実践に従い、法的境界を尊重してください。

ツールをダウンロード
ファイル目的行数
main.goエントリポイント、regsvr32 実行の処理~80
winbind.h関数宣言を含むメインヘッダ~45
main.cコアのリバースシェルランチャーとデタッチドプロセス作成~75
shell.c難読化された PowerShell 実行を含むシェルハンドラ~120
process.cトークン取得と SYSTEM プロセス作成~195
socket.cTCP Keep-Alive を使用したネットワーク接続~85
threads.cソケットとパイプ間の I/O スレッド処理~60
utils.c入力検証とレート制限~35
obfuscate.cPowerShell パスの難読化手法~70