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 サーバ
-
手元の AI(MCP クライアント)
Claude Desktop・Cursor など。どの道具を使うかはこの AI が判断する
-
hexstrike_mcp.py(中継)
151個の MCP ツールとして見せ、呼び出しを HTTP に変える
-
hexstrike_server.py(API)
Flask のサーバ。156本の API を持ち、ポート8888でコマンドを実行する
-
セキュリティツール
nmap などを、サーバを動かしたマシンの上で実行する
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 は送られた任意のコマンドを実行
- 同じネットワークの誰でも届きうる
ソースを読むと、API サーバについて3つのことが分かります(起動しての確認はしていません)。
- 待受は
0.0.0.0に固定:環境変数HEXSTRIKE_HOSTの既定値は127.0.0.1で、起動時の表示にも使われます。しかしサーバを起動するapp.runはhost="0.0.0.0"と書かれていて、この変数を使っていません。表示は 127.0.0.1 なのに、実際は全インターフェイスで待ち受ける作りです。 - 認証が無い:API キーやトークンでリクエストを確かめる仕組みは、ソースに見当たりませんでした。
- 任意のコマンドの窓口がある:
/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つの中身と注意点 と比べてください。どの道具でも、診断してよいのは自分の資産か、書面で許可を得た対象だけです。
参照ソース
- 0x4m4/hexstrike-ai(GitHub) — README・LICENSE・hexstrike_server.py・hexstrike_mcp.py・hexstrike-ai-mcp.json(HEAD 2026-08-03、2026-11-09 確認)
- Model Context Protocol(公式)





