IPベースのファイアウォールを突破するプロキシトリック

IPベースのファイアウォールを突破するプロキシトリック

IPベースのファイアウォールとその限界を理解する

IPベースのファイアウォールは、ネットワークセキュリティの由緒ある番兵であり、送信元または宛先IPアドレスに基づいてトラフィックを許可または拒否します。しかし、その厳格さにも弱点がないわけではありません。ホワイトリストに登録されたIPアドレス範囲からのリクエストのみを許可するように設定されたファイアウォールは、リクエストが信頼できるエンクレーブ内から発信されたように見える場合、回避される可能性があります。これが「プロキシトリック」の真髄です。これは、デュマの巧妙な策略を彷彿とさせる、エレガントでありながら破壊的な手法です。


プロキシトリック:内部リレーでIPベースのファイアウォールをバイパスする

プロキシトリックの根幹は、通常はファイアウォールの信頼範囲内にある中間マシンを利用してトラフィックを中継することです。このプロキシを介したリクエストを巧みに操作することで、外部の攻撃者は内部関係者を装い、ファイアウォールの堅牢なファサードをすり抜けることができます。

使用されるプロキシの種類

プロキシタイプ 説明 典型的な使用例 複雑 ステルス性
SSHトンネル SSHを介してローカルポートを安全に転送します 管理アクセス、テスト 低い 高い
HTTP接続 任意のTCPトラフィックをトンネリングするためにHTTP CONNECTメソッドを利用する WebおよびAPIアクセス 中くらい 中くらい
SOCKS プロキシ TCP接続用の汎用リレー(SSHまたは専用プロキシサーバー経由の場合が多い) ウェブ閲覧、データ流出 低い 高い
リバースプロキシ 外部クライアントからのトラフィックを内部サービスに転送します 内部ウェブサーバーへのアクセス 高い 中くらい

ステップバイステップ:SSHトンネリングによるプロキシトリックの実装

ファイアウォール内のジャンプ ボックスの資格情報を持っていると仮定します。

  1. SSHトンネルを確立する

バッシュ
ssh -L 8080:internal.service.local:80 [email protected]

このコマンドは、ローカルマシンのポート8080を 内部サービスローカル、中継経由 ジャンプボックス.

  1. 内部サービスにアクセスする

ブラウザまたはcurlで:

バッシュ
カール http://localhost:8080/

このリクエストは、 ジャンプボックスファイアウォールが信頼するものです。

リソース: SSHポート転送チュートリアル


HTTP CONNECTプロキシの作成 ソカット そして ncat

ファイアウォールがアウトバウンドHTTP/HTTPSを許可している場合、HTTP CONNECTメソッドは非常に有効なツールです。信頼できるホストに軽量プロキシを導入することも可能です。

  1. Socatでプロキシを展開する

内部ホストの場合:

バッシュ
socat TCP-LISTEN:3128,reuseaddr,fork TCP:target.internal:80

  1. クライアントの設定

ブラウザまたはツールで、内部ホストを HTTP プロキシ (ポート 3128) として使用するように設定します。

参照: Socat ドキュメント


SOCKSプロキシ:SSHの最も微妙な機能

SSH の動的転送により、セッションを SOCKS プロキシに変換できます。

ssh -D 1080 [email protected]

アプリケーションを設定してトラフィックをルーティングする ローカルホスト:1080トラフィックは暗号化され、ジャンプ ボックスを通過した後、内部ネットワークの聖域内に出てきます。

リソース: OpenSSH SOCKS プロキシガイド


リバースプロキシ:ファイアウォールを根本から変える

より永続的または複雑なニーズには、次のようなリバースプロキシが適しています。 ングロク または 繊維強化プラスチック 信頼できる内部ホストにインストールできます。リバースプロキシは外部サーバーへの送信トンネルを確立し、受信接続を内部ネットワークに中継します。これにより、ファイアウォールの方向性が損なわれます。

サンプル frp 構成 (内部ホスト上)

[共通] server_addr = external.server.com server_port = 7000 [web] type = http local_port = 80 custom_domains = myinternal.example.com

比較: ファイアウォール回避のためのプロキシアプローチ

方法 内部ホストで必要なセットアップ 外部制御 暗号化 監査回避 適している
SSHトンネル SSHサーバー はい はい 適度 時々手動でアクセス
HTTP接続 HTTP プロキシ (例: socat) はい いいえ 低い Web/APIトラフィック
SOCKS プロキシ SSHサーバー はい はい 高い Web、CLIツール、自動化
リバースプロキシ カスタムソフトウェア(ngrok、frp) はい 様々 低い 永続的なウェブアクセス

実践的な対策

  • ネットワークセグメンテーション: 可能な限り、内部プロキシ ホストのアクセスを制限します。
  • 出力フィルタリング: 内部ホストからの送信接続を無効にするか制限します。
  • プロキシ検出: 異常なプロキシプロセスを監視する(例: ソカット, ncat、-L/-D フラグ付きの SSH)。
  • ゼロトラストモデル: IPベースの信頼を超えて、 相互TLS、認証されたリバース プロキシ、またはユーザーごとのアクセス制御などです。

さらに読む


例: 完全なエクスプロイトワークフロー

ウェブアプリケーションが内部IPアドレス範囲からのみアクセス可能だとします。以下のシーケンスは典型的なエクスプロイトの例です。

  1. ファイアウォール内のホスト (ジャンプ ボックス) を侵害します。
  2. SSH SOCKS プロキシを確立します。

バッシュ
ssh -D 1080 攻撃者@jumpbox.internal

  1. ブラウザまたはツールのトラフィックをプロキシ経由でルーティングします。
  2. ローカル SOCKS プロキシ経由で内部 Web アプリケーションにアクセスします。
  3. オプション: 永続的なアクセスのためにリバース プロキシ (frp、ngrok) を展開します。

要約表: 実行可能な手順とツール

ステップ ツール/コマンドの例 目的
ローカルポート転送(SSH) ssh -L 8080:ターゲット:80 ユーザー@ジャンプボックス 単一の内部サービスにアクセス
ダイナミック SOCKS プロキシ (SSH) ssh -D 1080 ユーザー@ジャンプボックス 任意のトラフィックをプロキシする
HTTP CONNECT プロキシ (socat/ncat) socat TCP-LISTEN:3128、フォークTCP:ターゲット:80 Web/APIプロキシ
リバースプロキシ(frp) 上記のfrp設定を参照 外部から内部への永続的なアクセス

ネットワークセキュリティの分野において、プロキシトリックは、モンテ・クリスト伯のように、誰も通れない道を探し求める者たちの創意工夫の証です。防御側にとっての教訓は、IPアドレスを信用してはならないということです。IPアドレスは、味方にも敵にもなり得る仮面であり、決して偽装できるものではないからです。

ソランジュ・ルフェーブル

ソランジュ・ルフェーブル

シニアプロキシアナリスト

デジタル パスウェイの専門家である Solange Lefebvre は、10 年以上にわたって ProxyMist の分析部門の指揮を執ってきました。ネットワーク セキュリティとプロキシ サーバー管理における比類のない専門知識を持つ彼女は、世界で最も包括的な SOCKS、HTTP、エリート、匿名プロキシ サーバーのリストをまとめ、維持することに尽力してきました。正確さを重視するフランス人である Solange は、ProxyMist が安全なインターネット ソリューションの最前線に留まるよう尽力しています。

コメント (0)

まだコメントはありません。あなたが最初のコメントを投稿できます!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です