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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
NachoVPN — おいしいが、悪意のあるSSL-VPNサーバー 🌮 | Kitploit
ツール/GitHubGitHub/amberwolfcyber/nachovpn
特権昇格脆弱性分析エクスプロイトネットワークセキュリティペネトレーションテストレッドチーミングペイロード開発敵対的攻撃
GitHubamberwolfcyber/nachovpn

NachoVPN

おいしいが、悪意のあるSSL-VPNサーバー 🌮

リポジトリを見る
26731117ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

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

NachoVPN 🌮🔒

NachoVPN は、不正な VPN サーバーを使用して SSL-VPN クライアントを悪用することを実証する Proof of Concept です。

プラグイン方式のアーキテクチャを採用しており、コミュニティが追加の SSL-VPN 製品への対応を貢献できるようになっています。現在、Cisco AnyConnect、SonicWall NetExtender、Palo Alto GlobalProtect、Ivanti Connect Secure など、さまざまな人気の企業向け VPN 製品をサポートしています。

詳細については、ブログ記事 と HackFest Hollywood 2024 のプレゼンテーション [スライド|ビデオ] を参照してください。

インストール

前提条件

  • Python 3.9 以降
  • Docker(オプション)
  • osslsigncode(Linux のみ)
  • msitools(Linux のみ)
  • python3-netfilter(Linux のみ)
  • git

Linux のセットアップ

NachoVPN は Ubuntu 22.04 でビルドおよびテストされています。

  • python3-nftables と nftables をインストールします。

  • 必要に応じて setcap を使用して sudo の要求を回避します:

    sudo setcap 'cap_net_raw,cap_net_bind_service,cap_net_admin=eip' /usr/bin/python3.10
    
  • IP 転送を有効にします:

    sudo sysctl -w net.ipv4.ip_forward=1
    

ソースからのインストール

NachoVPN は pip を使用して GitHub からインストールできます。これには git がインストールされている必要があることに注意してください。

まず、仮想環境を作成します。

Linux では、nftables が動作するように、仮想環境がシステムの site-packages にアクセスできることを確認してください:

python3 -m venv env --system-site-packages
source env/bin/activate

Windows では、nftables(およびパケット転送)が無効になっているため、次を使用します:

python -m venv env
.\env\Scripts\activate

次に、NachoVPN をインストールします:

pip install git+https://github.com/AmberWolfCyber/NachoVPN.git

Docker を使用したい場合は、GitHub Container Registry からコンテナをプルできます:

docker pull ghcr.io/AmberWolfCyber/nachovpn:release

配布用のビルド

wheel ファイルのビルド

まず、このリポジトリをクローンし、pip で setuptools と wheel をインストールします。その後、setup.py スクリプトを実行できます:

git clone https://github.com/AmberWolfCyber/NachoVPN
pip install -U setuptools wheel
python setup.py bdist_wheel

これにより、dist ディレクトリに wheel ファイルが生成され、pip でインストールできるようになります:

pip install dist/nachovpn-1.0.0-py3-none-any.whl

ローカル開発用のビルド

あるいは、ローカル開発では、次のコマンドを使用してパッケージを編集可能モードでインストールできます:

pip install -e .

コンテナイメージのビルド

次のコマンドでコンテナイメージをビルドできます:

docker build -t nachovpn:latest .

実行

サーバーをスタンドアロンとして実行するには、次を使用します:

python -m nachovpn.server

または、Docker を使用してサーバーを実行できます:

docker run -e SERVER_FQDN=connect.nachovpn.local -e EXTERNAL_IP=1.2.3.4 -v ./certs:/app/certs -p 80:80 -p 443:443 --rm -it nachovpn

これにより、certbot を使用して SERVER_FQDN 用の証明書が生成され、コンテナにマウントした certs ディレクトリに保存されます。

あるいは、テスト目的であれば、SKIP_CERTBOT 環境変数を設定することで証明書の生成をスキップできます。

この場合、代わりに自己署名証明書が生成されます。

docker run -e SERVER_FQDN=connect.nachovpn.local -e SKIP_CERTBOT=1 -e EXTERNAL_IP=1.2.3.4 -p 443:443 --rm -it nachovpn

便利なように、サンプルの docker-compose ファイル も提供されています。

デバッグ

デバッグに役立つように、ログの詳細度を上げるには nachovpn を -d または --debug コマンドライン引数で実行できます。

あるいは、ログが多すぎる場合は、代わりに q または --quiet コマンドライン引数を使用できます。

プラグイン

NachoVPN は次のプラグインと機能をサポートしています:

Plugin製品CVEWindows RCEmacOS RCE特権URI ハンドラーパケットキャプチャデモ
CiscoCisco AnyConnectN/A✅✅❌❌✅Windows / macOS
SonicWallSonicWall NetExtenderCVE-2024-29014✅❌✅✅❌Windows
PaloAltoPalo Alto GlobalProtectCVE-2024-5921 (部分修正)✅✅✅❌✅Windows / macOS / iOS
PulseSecureIvanti Connect SecureCVE-2020-8241(バイパス済み)✅✅✅✅ (Windows のみ - 22.8R1 ではデフォルトで無効)✅Windows
NetskopeNetskopeCVE-2025-0309✅❌✅❌❌Windows
DelineaProtocol HandlerCVE-2026-????✅✅❌✅❌Windows

URI ハンドラー

  • Ivanti Connect Secure(Pulse Secure)URI ハンドラーは、NachoVPN サーバーの /pulse URL にアクセスすることでトリガーできます。
  • SonicWall NetExtender URI ハンドラーは、NachoVPN サーバーの /sonicwall URL にアクセスすることでトリガーできます。これには、クライアントマシンに SonicWall Connect Agent がインストールされている必要があります。
  • Delinea URI ハンドラーは、NachoVPN サーバーの /delinea URL にアクセスすることでトリガーできます。

動作上の注意

  • 信頼された認証局(CA)によって署名された TLS 証明書を使用することをお勧めします。docker コンテナは certbot を使用してこのプロセスを自動化します。信頼された証明書を使用しない場合、NachoVPN は代わりに自己署名証明書を生成します。その場合、ほとんどのケースでクライアントに証明書警告が表示されるか、自己署名証明書を受け入れるようにクライアント設定を変更しない限り接続が拒否されます。Palo Alto GlobalProtect プラグインでは、これにより MSI インストーラも失敗します。
  • SonicWall プラグインの有効なコードサイニング証明書をシミュレートするため、NachoVPN は NACAgent.exe ペイロードを自己署名証明書で署名します。テスト目的であれば、エクスプロイトをトリガーする前に /sonicwall/ca.crt からこの CA 証明書をダウンロードしてインストールできます。本番環境では、公開 CA から有効なコードサイニング証明書を取得し、NACAgent.exe ペイロードに署名して、payloads ディレクトリに配置する必要があります(docker を使用する場合は /app/payloads にボリュームマウントします)。
  • 便宜上、SonicWall プラグイン用のデフォルトの NACAgent.exe ペイロードが生成され、payloads ディレクトリに書き込まれます。これは、現在のユーザーのデスクトップ上で SYSTEM として新しい cmd.exe プロセスを起動するだけです。
  • Palo Alto GlobalProtect プラグインでは、MSI インストーラと msi_version.txt ファイルが downloads ディレクトリに存在する必要があります。手動で追加するか、msi_downloader.py スクリプトを実行してダウンロードしてください。
  • Palo Alto GlobalProtect のダウングレード攻撃を実行するには、GlobalProtect.msi.old と GlobalProtect64.msi.old が downloads フォルダに存在することを確認してください。これらのファイルには、6.2.6 より前 のバージョン(例:6.2.5)の 未変更 の MSI インストーラが含まれている必要があります。

プラグインの無効化

プラグインを無効にするには、DISABLED_PLUGINS 環境変数に追加します。例:

DISABLED_PLUGINS=CiscoPlugin,SonicWallPlugin

環境変数

NachoVPN は環境変数を使用して設定されます。これにより、コンテナ化されたデプロイメントと簡単に互換性を持たせることができます。

グローバル環境変数:

Variable説明デフォルト
SERVER_FQDNサーバーの完全修飾ドメイン名。connect.nachovpn.local
EXTERNAL_IPサーバーの外部 IP アドレス。127.0.0.1
WRITE_PCAPキャプチャした PCAP ファイルをディスクに書き込むかどうか。false
DISABLED_PLUGINS無効にするプラグインのカンマ区切りリスト。
USE_DYNAMIC_SERVER_THUMBPRINTサーバー証明書のフィンガープリントをサーバーから動的に計算するかどうか(プロキシの背後にいる場合に便利)。false
SERVER_SHA1_THUMBPRINTサーバー証明書の計算済み SHA1 フィンガープリントを上書きできます。
SERVER_MD5_THUMBPRINTサーバー証明書の計算済み MD5 フィンガープリントを上書きできます。
SMB_ENABLEDトンネルを介して \\10.10.0.1\<SMB_SHARE_NAME> で利用可能な SMB 共有を有効にします。false
SMB_SHARE_NAMESMB 共有に使用する名前。SHARE
SMB_SHARE_PATHSMB 共有に使用するディレクトリのパス。smb
TUNNEL_PRIVATEtrue に設定すると、トンネリングは有効になりますが、VPN クライアントのインターネット転送は無効になります。クライアントは SMB 共有にのみアクセスできます。false
TUNNEL_FULLtrue に設定すると、フルトンネリングが有効になり、VPN クライアントがインターネットにアクセスできるようになります。また、TUNNEL_PRIVATE=true を暗黙的に含みます。false

プラグイン固有の環境変数:

ツールをダウンロード