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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CaddySmith — Cobalt StrikeまたはSliver C2プロファイルからCaddyリダイレクタ設定を生成します。 | Kitploit
ツール/GitHubGitHub/icecubesandwich/caddysmith
ペネトレーションテストフレームワークウェブプロキシと傍受IDS/IPS回避コマンド&コントロールレッドチーミングペイロード開発
GitHubicecubesandwich/caddysmith

CaddySmith

Cobalt StrikeまたはSliver C2プロファイルからCaddyリダイレクタ設定を生成します。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CaddySmith

CaddySmithは、Cobalt StrikeまたはSliverのC2プロファイルを読み取り、Caddyウェブサーバの設定を生成する小さなPythonスクリプトです。生成されたCaddyfileを使用すると、通常のLinuxボックスをリダイレクターに変えることができます。正規のビーコントラフィックはチームサーバーにリバースプロキシされ、それ以外のトラフィック(スキャナー、検索ボット、ブルーチームのプローブ、ランダムなcurlリクエスト)はデコイURLに転送されます。

CaddyはApacheよりも迅速に立ち上げられるフレンドリーなウェブサーバーであり、単一の静的バイナリ、自動Let's Encrypt証明書、a2enmodの手間が不要であるため、このツールを作成しました。

許可されたエンゲージメントのみ。 これは攻撃的セキュリティツールです。テストする書面による許可がある環境に対してのみ実行してください。

サポートされているプロファイル形式

CaddySmithはファイルの内容からフォーマットを自動検出します。

  • Cobalt Strike — set uri "/foo" ディレクティブを含む古典的なテキスト形式。各HTTP-GET / HTTP-POST URIは、プロファイルのクライアントヘッダーが適用された独自の完全一致パスルートになります。
  • Sliver — SliverからエクスポートされたJSONインプラント設定。Sliverには固定URIはなく、path / file / extensionリストからビーコンビルド時に動的に生成されます。CaddySmithはこれを処理するために、トップレベルのパス接頭辞をglobとしてマッチング(例:path /api* /static* /resources*)し、UA内のChromeビルド番号の部分文字列一致を行います(SliverのプラットフォームごとのUA書き換え後も維持されます)。

また、--profile-type cobaltstrikeまたは--profile-type sliverで特定のパーサーを強制することもできます。

機能

プロファイルファイルを指定すると、スクリプトは以下を抽出します。

  • User-Agent文字列
  • URI(CS)またはパス接頭辞(Sliver)
  • クライアント側ヘッダー(CSのみ — Sliverは特定のヘッダーを要求しません)
  • Hostヘッダー(--server-nameを指定しない場合、リダイレクターのドメイン名として使用されます)
  • ステージングが有効かどうか(CSのみ — set host_stage)

次に、以下のようなCaddyfileを生成します。

  1. (オプション)プレーンHTTPトラフィックに403を返す
  2. 約15の既知の悪意のあるUser-Agent(curl、nmap、sqlmap、Googlebotなど)をブロック
  3. 直接IPアクセスとGET/POST以外のHTTPメソッドをブロック
  4. プロファイルのURI(Sliverの場合は接頭辞)のみを、対応するUser-Agentのチェックとともにリバースプロキシする
  5. 一般的なスキャナープローブパス(.env、/wp-admin、.phpなど)をブロック
  6. それ以外のすべてをデコイURLにリダイレクトする

必要条件

  • Python 3.7以上(標準ライブラリのみを使用、pip installは不要)
  • リダイレクター上にCaddy 2.x(インストールガイド)

クイックスタート

root@kitploit:~
python3 caddysmith.py my.profile \
    --backend https://teamserver.internal:443 \
    --decoy   https://www.example.com/ \
    --server-name redirector.example.com \
    --email   [email protected] \
    --forbid-http \
    -o redirector.caddy

生成された設定がredirector.caddyに書き込まれ、標準エラー出力に処理内容のサマリーが表示されます。

生成された設定のデプロイ

オプションA: Caddyfileを直接実行

生成されたファイルをリダイレクターにコピーし、Caddyに対して実行します。CaddyはデフォルトでJSON設定を使用するため、--adapter caddyfileフラグが必要です。

root@kitploit:~
caddy run --config /etc/caddy/redirector.caddy --adapter caddyfile

実行中のインスタンスに更新された設定を再読み込みするには:

root@kitploit:~
caddy reload --config /etc/caddy/redirector.caddy --adapter caddyfile

Caddyがフォーマットの不一致について警告した場合は、以下で修正します。

root@kitploit:~
caddy fmt --overwrite /etc/caddy/redirector.caddy

オプションB: メインのCaddyfileからインポート

ファイルを/etc/caddy/に配置し、メインのCaddyfileからインポートします。

root@kitploit:~
# /etc/caddy/Caddyfile
import /etc/caddy/redirector.caddy

--emailを指定した場合(推奨)、生成されたスニペットにはグローバルオプションブロックが既に含まれているので、メインのCaddyfileにはimport行のみで十分です。指定しなかった場合は、importの上に{ }ブロックでメールを手動で追加してください。

その後、検証と再読み込みを行います。

root@kitploit:~
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy

--server-nameで指定したドメインのAレコードがリダイレクターを指している限り、Caddyは自動的にLet's Encrypt証明書をプロビジョニングします。

すべてのフラグ

ポリシーモード

  • strict(デフォルト) — User-Agent、すべてのクライアントヘッダー、直接IP、HTTPメソッド、プローブパスをチェック
  • lax — 悪意のあるUser-Agentのみをブロック、ルートごとのヘッダーマッチングなし
  • none — プロファイルURIへのリクエストをすべてプロキシ、フィルタリングなし

通常はstrictが適切です。laxは、実際のビーコンが接続できない原因をデバッグする場合に便利です。

動作例

Amazonのエンドポイントを模倣したプロファイルがあり、redirector.0xtb.shにデプロイしたいとします。

root@kitploit:~
python3 caddysmith.py amazon.profile \
    --backend https://10.1.1.10:443 \
    --decoy   https://www.amazon.com/ \
    --server-name redirector.0xtb.sh \
    --forbid-http \
    --policy strict \
    -o /etc/caddy/redirector.caddy

サマリーには、構築されたルートが正確に表示されます。

root@kitploit:~
Routes built:   2
  - [profile-get] /broadcast
  - [profile-post] /1/events/com.amazon.csm.csa.prod

再生成したときにルートが何も表示されない場合は、プロファイルの解析に失敗した可能性があります。標準エラー出力の警告を確認してください。

Sliverの例

Sliverのインプラント設定(JSON)の場合:

root@kitploit:~
python3 caddysmith.py sliver-implant.json \
    --backend https://10.1.1.10:443 \
    --decoy   https://www.amazon.com/ \
    --server-name redirector.0xtb.sh \
    --email   [email protected] \
    --forbid-http \
    --policy strict \
    -o /etc/caddy/redirector.caddy

サマリーではSliverが検出されたことが示され、接頭辞ルートが表示されます。

root@kitploit:~
Profile type:   sliver
Routes built:   1
  - [sliver] /api /public /resources /services /static (prefix)

Sliverはpath × file × extensionの組み合わせからランダムにURIを生成するため、生成されるpathマッチャーは完全一致パスではなく、接頭辞globを使用します(path /api* /public* /resources* /services* /static*)。User-AgentマッチャーはChromeビルド番号の部分文字列(例:3921.146)を使用します。これはSliverがプラットフォームごとのUA書き換え後も保持する値です。

デプロイ後のスモークテスト

root@kitploit:~
# プレーンHTTPは403になるはず(--forbid-httpを使用した場合)
curl -I http://redirector.0xtb.sh/

# ベアホスト名はデコイにリダイレクトされるはず
curl -kI https://redirector.0xtb.sh/

# 悪意のあるUAもリダイレクトされるはず
curl -kI -A "curl/8.4.0" https://redirector.0xtb.sh/broadcast

# 正しいUA + パスを持つリクエストはプロキシされて200になるはず
# strictモードでは、プロファイルのすべてのクライアントヘッダーも送信する必要があります。

既知の制限事項

  • ステージングルールは生成されません(Cobalt Strike)。 CSプロファイルにset host_stage "true"がある場合(または設定がない場合)、スクリプトは警告を表示し、ステージャーURIをスキップします。プロファイルにset host_stage "false";を追加するか、--extra-uriでステージャーURIを明示的に渡してください。
  • Sliverの接頭辞マッチングはCSの完全一致よりも広いです。 Sliverの場合、プロキシルートは/api、/staticなどで始まるすべてのURLを対象とします。たまたまこれらの接頭辞を使用するスキャナープローブ(例:/api/.env)はローカルでブロックされずにチームサーバーに送信されますが、Sliver自身のHTTPトランスポートはインプラントIDで認証するため、不正なリクエストはC2レイヤーで拒否されます。UAによるゲートでほとんどのスキャナーは除外されます。
  • 1回の実行で1つのバックエンドのみ。 すべてのルートは同じ--backendにプロキシされます。複数のチームサーバーが必要な場合は、スクリプトを複数回実行し、手動でマージしてください。
  • プロファイルURIの解析は行ベースです(Cobalt Strike)。 set uri "/path1 /path2";(1行に複数のパス)は機能しますが、珍しいフォーマットはパーサーで問題を起こす可能性があります。サマリーのルートリストを確認して、正しく解析されたか確認してください。
  • HTTPSバックエンドの証明書検証はデフォルトで無効です。 チームサーバーは通常自己署名証明書を使用するため、生成された設定にはtls_insecure_skip_verifyが含まれます。バックエンドが正規の証明書を使用している場合は、生成されたファイルからその行を削除してください。

クレジット

ApacheベースのMalleable-Redirectorは、このスクリプトが生成するものの出発点であり、同じ3トラックのURIモデル(プロファイルURI / 追加URI / 緩和URI)、同じポリシーモード、同じ一般的なレイアウトを持っています。CaddySmithは出力をApacheの.htaccessではなくCaddyの構文に変換するだけです。

ライセンス

MIT

ツールをダウンロード
フラグデフォルト説明
profile(必須).profileファイルへのパス
--backendhttps://teamserver.local:443マッチしたトラフィックのプロキシ先
--decoyhttps://www.example.com/マッチしなかったトラフィックのリダイレクト先
--server-namec2.example.comリダイレクターのドメイン名
--policystrictstrict、lax、またはnone
--profile-typeauto強制的にcobaltstrikeまたはsliver(デフォルトは自動検出)
--extra-uri PATH—プロキシする追加のURI(UAチェックあり)。繰り返し可能。
--lax-uri PATH—プロキシする追加のURI(チェックなし)。繰り返し可能。
--allow-ua STRING—--extra-uriルートで許可する追加のUA。繰り返し可能。
--forbid-httpoffプレーンHTTPに403を返す
--email EMAIL—Let's Encrypt登録および更新通知用のメールアドレス
-o, --output FILEstdout設定をファイルに書き込む