HexStrike AI は、Claude や GPT などの AI に、nmap をはじめとするセキュリティツールを使わせるための MCP サーバです。README は「150以上のセキュリティツールと12以上の自律 AI エージェント」をうたい、GitHub のスターは約1.34万(2026-11-09)、ライセンスは MIT です。手元の AI に道具だけを持たせる型なので導入は手軽ですが、ツールを実行する API サーバは認証を持たず、全インターフェイスで待ち受けます。

HOW IT CONNECTSHexStrike AI のつながり方

判断は手元の AI、実行は HTTP の API サーバ

  1. 手元の AI(MCP クライアント)

    Claude Desktop・Cursor など。どの道具を使うかはこの AI が判断する

  2. hexstrike_mcp.py(中継)

    151個の MCP ツールとして見せ、呼び出しを HTTP に変える

  3. hexstrike_server.py(API)

    Flask のサーバ。156本の API を持ち、ポート8888でコマンドを実行する

  4. セキュリティツール

    nmap などを、サーバを動かしたマシンの上で実行する

出典: 0x4m4/hexstrike-ai のソース(HEAD 2026-08-03)を当サイトで確認(2026-11-09)

30秒でわかる(2026-11-09)

  • ・何ができる:手元の AI(Claude Desktop・Cursor など)から、MCP 経由でセキュリティツールを呼ばせる
  • ・中身:中継役 hexstrike_mcp.py(MCP ツール151個)と、実行役の API サーバ hexstrike_server.py(Flask・API 156本)
  • ・危うさ:API は認証なし、待受は 0.0.0.0 固定、/api/command は送られた任意のコマンドを実行
  • ・対策:外と通信できない VM かコンテナで動かし、ポート8888をファイアウォールで閉じる

まずやること(使っている・使う予定の人向け)

  • 今動かしているなら:ポート8888がほかのマシンから届く状態になっていないか、すぐ確かめる。届くなら止める。
  • これから入れるなら:専用の VM に入れ、外部への待受を閉じてから起動する。手元の普段使いの PC には入れない。
  • MCP クライアントの確認を残す:alwaysAllow に入れず、AI がツールを呼ぶたびに人が確かめる。

AI ペンテスト OSS の全体像は AIペネトレーションテストOSSの選び方|主要7本の違いと、動かす前に決める5つ にまとめています。ソフトウェアの依存全体を守る考え方は サプライチェーン攻撃とは|手口・防御ツール比較・npm 12の新機構まで実践解説 を参照してください。

HexStrike AIとは——AIに道具を渡すMCPサーバ

HexStrike AI は2つの Python ファイルでできています。hexstrike_mcp.py は MCP の中継役で、セキュリティツールを MCP のツールとして AI に見せ、呼び出しを HTTP のリクエストに変えます。hexstrike_server.py は Flask の API サーバで、受け取ったリクエストに応じて、サーバを動かしているマシンの上でツールを実行します。

項目 内容(2026-11-09 時点)
ライセンス MIT(LICENSE ファイル、著作者 Muhammad Osama)
版 MCP 設定例の表記は v6.0。Git のタグは無し、HEAD は 2026-08-03
MCP ツールの数 151個(@mcp.tool の数)
API の数 156本(@app.route の数)、既定のポートは8888
規模 API サーバ 17,289行、中継役 5,470行

README の「150以上」は、MCP ツールの定義数とおおむね一致します。ただしその中には、任意のコマンドを実行する汎用の窓口も含まれます。151種類の別々のツールがあるという意味ではない点に注意が要ります。

判断するのは、つないだ AI の側です。Claude Desktop や Cursor の MCP 設定に中継役を登録すると、AI が「このホストのポートを調べる」などと判断して、対応するツールを呼びます。作業の質は、接続した AI の能力と、どこまで自動で実行を許すかの設定で決まります。

API サーバの危うさ——認証なし・全インターフェイス・任意のコマンド

WHAT THE CODE SAYS設定から読める期待と、コードの実際

127.0.0.1 と書いてあっても、0.0.0.0 で待ち受ける

設定の見た目

  • HEXSTRIKE_HOST の既定値は 127.0.0.1
  • 起動時の表示も 127.0.0.1:8888
  • MCP の設定例は alwaysAllow が空
  • 「自律実行が嫌なら alwaysAllow を外せ」と注記

コードの実際

  • app.run は host="0.0.0.0" に固定
  • API に認証の仕組みが見当たらない
  • /api/command は送られた任意のコマンドを実行
  • 同じネットワークの誰でも届きうる
出典: hexstrike_server.py の 99 行目・9137 行目・17289 行目、hexstrike-ai-mcp.json(当サイトで確認、2026-11-09)。起動しての確認はしていない

ソースを読むと、API サーバについて3つのことが分かります(起動しての確認はしていません)。

  1. 待受は 0.0.0.0 に固定:環境変数 HEXSTRIKE_HOST の既定値は 127.0.0.1 で、起動時の表示にも使われます。しかしサーバを起動する app.run は host="0.0.0.0" と書かれていて、この変数を使っていません。表示は 127.0.0.1 なのに、実際は全インターフェイスで待ち受ける作りです。
  2. 認証が無い:API キーやトークンでリクエストを確かめる仕組みは、ソースに見当たりませんでした。
  3. 任意のコマンドの窓口がある:/api/command は、リクエストで送られたコマンドをそのまま実行する汎用の API です。

この3つが重なると、同じネットワークにいる誰でも、HexStrike AI を動かしているマシンの上で、その権限のままコマンドを実行できることになります。セキュリティツールの多くは強い権限を求めるため、管理者権限で動かしていればなおさらです。カフェや社内の共有ネットワーク、クラウドの公開 IP で動かすのは避けるべき構成です。

影響範囲と対策

影響を受けるのは、HexStrike AI の API サーバを、ほかのマシンから届くネットワークで動かしている環境です。MCP クライアント側で毎回の確認を求めていても、API を直接呼ばれる経路は止まりません。

  • 外と通信できない場所で動かす:専用の VM かコンテナに入れ、ポート8888を外部に公開しない。コンテナならポートを公開せずに使う構成にする。
  • ファイアウォールで閉じる:ホストのファイアウォールで、ポート8888への外部からの接続を拒否する。HEXSTRIKE_HOST を変えても待受は変わらない。
  • 普段使いのマシンに入れない:認証情報やソースコードがあるマシンで動かすと、窓口から届く範囲がそのまま広がる。
  • 使い終わったら止める:常駐させず、診断の間だけ起動する。

自分の取得したソースで確かめる

更新で直っている可能性もあるので、手元に取得したリポジトリで、起動の行を確かめておきます。

grep -n "app.run(" hexstrike_server.py

2026-11-09 時点の HEAD では app.run(host="0.0.0.0", port=API_PORT, debug=DEBUG_MODE) と出ます。ここが API_HOST を使う形に変わっていれば、HEXSTRIKE_HOST で待受を絞れるようになっています。このコマンドが見るのはソースの記述だけなので、実際に外から届くかどうかは、このコマンドだけでは判断できません。動かしている環境のファイアウォールとポートの公開設定もあわせて確かめてください。

HexStrike AI はどんな人に向くか

向く 向かない
隔離した検証環境で、手元の AI にツールを使わせて学びたい 共有ネットワークや公開 IP のマシンで常駐させたい
AI の判断を毎回確かめながら、道具の使い方を広げたい 範囲の制御や認証を道具に任せたい

自己ホストの画面で複数のエージェントを回す型なら PentAGIとは|自律型AIペンテストOSSの仕組みと、既定設定で気をつける4点、論文の流れを汲む対話型なら PentestGPTとは|論文の対話型とClaude Codeを動かす自律型、2つの中身と注意点 と比べてください。どの道具でも、診断してよいのは自分の資産か、書面で許可を得た対象だけです。

参照ソース