
ligolo-ng v0.9.1
高度でありながらシンプルな、TUNインターフェースを使用したトンネリング/ピボッティングツールです。
Ligolo-ng : VPNのようにトンネリング

TUNインターフェースを使用する、高度でありながらシンプルなトンネリングツール。
📑 Ligolo-ng ドキュメント (セットアップ/クイックスタート)
[!TIP] Ligolo-ng 0.8 では多くの新機能が追加されました。以下を含みます:
- 🌐 API と L'ami du Raisin による美しい Web インターフェースにより、マルチプレイヤー が可能に!
- ⚙️ シンプルな設定ファイルでトンネリング/プロキシ設定を保持
- 🚦 デーモンモード で Ligolo-ng をサービスとして実行
- 🔗 特定のエージェントが接続するたびにトンネリングを自動設定するオートバインド
- 📶 Windows、Linux、MacOS、BSD での簡単かつ自動(autoroute)なルートとインターフェース管理!
- 💀 エージェントキル、リモートでエージェントを終了
ぜひお試しください!
目次
- はじめに
- 特徴
- デモ
- Ligolo/Chisel/Meterpreterとの違いは?
- 使い方 - ドキュメント - チュートリアル
- 管理者/root権限は必要ですか?
- 対応プロトコル/パケット
- パフォーマンス
- 注意点
- 今後の予定
- クレジット
はじめに
Ligolo-ng は、tunインターフェースを使用して(SOCKSを必要とせずに)リバースTCP/TLS接続からトンネルを確立できる、シンプルで軽量かつ高速なツールです。
特徴
- Tunインターフェース (SOCKS/Proxychainsはもう不要!)
- エージェント選択とネットワーク情報を備えたシンプルなUI
- 簡単に使用・セットアップ可能
- Let's Encryptによる自動証明書設定
- 高性能(多重化)
- エージェントに権限は不要
- エージェント上でのソケットリスニング/バインディング
- エージェントで複数のプラットフォームに対応
- 複数トンネルの処理が可能
- リバース/バインド接続
- 自動トンネル/リスナー回復(ネットワーク問題時)
- Websocket対応
デモ
Ligolo/Chisel/Meterpreterとの違いは?
SOCKSプロキシやTCP/UDPフォワーダーを使用する代わりに、Ligolo-ng は Gvisor を使用してユーザーランドネットワークスタックを作成します。
リレー/プロキシサーバーを実行すると、tun インターフェースが使用され、このインターフェースに送信されたパケットは変換され、エージェントのリモートネットワークに送信されます。
例として、TCP接続の場合:
- SYN はリモートで connect() に変換されます
- connect() が成功すると SYN-ACK が送り返されます
- connect後にECONNRESET、ECONNABORTED、ECONNREFUSEDシステムコールが返された場合は RST が送信されます
- タイムアウト時は何も送信されません
これにより、proxychains を使用せずに nmap のようなツールを実行できます(よりシンプルかつ高速)。
使い方 - ドキュメント - チュートリアル
Ligolo-ngのドキュメントと、セットアップ手順は Ligolo-ng Documentation にあります。
管理者/root権限は必要ですか?
エージェント側では、いいえ! 管理者権限なしですべて実行可能です。
ただし、リレー/プロキシサーバーでは、tun インターフェースを作成できる必要があります。
対応プロトコル/パケット
- TCP
- UDP
- ICMP(エコー要求)
パフォーマンス
100 Mbits/秒以上を簡単に達成できます。以下は、200Mbits/秒のサーバーから200Mbits/秒の接続への iperf を使用したテストです。
$ iperf3 -c 10.10.0.1 -p 24483
Connecting to host 10.10.0.1, port 24483
[ 5] local 10.10.0.224 port 50654 connected to 10.10.0.1 port 24483
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 12.5 MBytes 105 Mbits/sec 0 164 KBytes
[ 5] 1.00-2.00 sec 12.7 MBytes 107 Mbits/sec 0 263 KBytes
[ 5] 2.00-3.00 sec 12.4 MBytes 104 Mbits/sec 0 263 KBytes
[ 5] 3.00-4.00 sec 12.7 MBytes 106 Mbits/sec 0 263 KBytes
[ 5] 4.00-5.00 sec 13.1 MBytes 110 Mbits/sec 2 134 KBytes
[ 5] 5.00-6.00 sec 13.4 MBytes 113 Mbits/sec 0 147 KBytes
[ 5] 6.00-7.00 sec 12.6 MBytes 105 Mbits/sec 0 158 KBytes
[ 5] 7.00-8.00 sec 12.1 MBytes 101 Mbits/sec 0 173 KBytes
[ 5] 8.00-9.00 sec 12.7 MBytes 106 Mbits/sec 0 182 KBytes
[ 5] 9.00-10.00 sec 12.6 MBytes 106 Mbits/sec 0 188 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 127 MBytes 106 Mbits/sec 2 sender
[ 5] 0.00-10.08 sec 125 MBytes 104 Mbits/sec receiver
注意点
エージェントが権限なしで動作しているため、生のパケットを転送することはできません。 NMAP SYN-SCAN を実行すると、エージェント上で TCP connect() が実行されます。
nmap を使用する際は、誤検出を避けるために --unprivileged または -PE を使用してください。
今後の予定
- 無効なTCP接続からの ACK 受信時に RST を送信しない(nmapがホストを起動中と報告するのを防ぐ)
- mTLS対応追加
クレジット
- Nicolas Chatelain <nicolas -at- chatelain.me>
- Jeremie Bedjai (Ligolo-ng-Web)
