proxychains-rs — Rustで再実装されたproxychains
概要
proxychains-rsは、従来のproxychainsの振る舞いと互換性を目指したRust実装のプロジェクトです。最終的にLD_PRELOADなどで注入可能な共有ライブラリ(.so)を生成し、対象プログラムからのソケット操作を差し替えて、指定した複数のプロキシ経由でTCP/UDP接続を順次チェーンします。README(v5.0.0)ではビルド、実行、デバッグ方法や一般的な問題への対処が簡潔にまとめられており、Rustの安全性とモダンなツールチェインで既存ツールの代替を目指します。(約300字)
リポジトリの統計情報
- スター数: 139
- フォーク数: 139
- ウォッチャー数: 139
- コミット数: 3
- ファイル数: 7
- メインの言語: Rust
主な特徴
- proxychains互換の挙動を目指したRust製の実装
- LD_PRELOADなどで注入して動作する共有ライブラリを生成
- TCP/UDP接続を複数プロキシでチェーン可能
- ビルド・実行・デバッグに関するガイドをREADMEに収録
技術的なポイント
proxychains-rsは、既存のproxychainsと同様にユーザ空間でソケットAPIを差し替えることで動作します。実現手法としてはLD_PRELOADや動的リンクの仕組みを利用したシンボルインターセプション(libcのconnectやsocketといった関数を置き換える)を想定しており、注入されたプロセスのソケット操作を捕捉してプロキシ経由の接続フローに置き換えます。Rustで実装する利点は、メモリ安全性・型安全性・モダンなビルド環境(Cargo)による保守性向上で、低レイヤのネットワーク処理を安全に書ける点です。実運用ではTCPのストリーム確立とUDPの「接続しない」性質への対応(フォワーディングや擬似コネクション処理)、DNS解決のプロキシ透過、プロキシチェーンでのプロトコル変換(SOCKS4/SOCKS5/HTTPなど)の取り扱いが技術的な肝になります。また、共有ライブラリ化する際の注意点として、動的リンク順序(LD_PRELOADの適用順)、ターゲットバイナリが静的リンクされている場合の非対応、権限周り(rootやcapabilities)が挙げられます。READMEにはビルド・実行・デバッグ手順やよくあるトラブルシュートが記載されているため、注入環境や依存関係の調整に関する実践的なヒントが得られます。なおLD_PRELOAD依存のため主にPOSIX系(Linux)の環境が想定されます。
プロジェクトの構成
主要なファイルとディレクトリ:
- COPYING: file
- Cargo.lock: file
- Cargo.toml: file
- README.md: file
- VERSION: file
…他 2 ファイル
まとめ
Rustで書かれた、安全志向のproxychains互換ライブラリ実装。注入・デバッグガイドが充実。
リポジトリ情報:
- 名前: proxychains-rs
- 説明: Rust implementation of proxychains — injectable library for chaining TCP/UDP connections via multiple proxies.
- スター数: 139
- 言語: Rust
- URL: https://github.com/adysec/proxychains-rs
- オーナー: adysec
- アバター: https://avatars.githubusercontent.com/u/133128400?v=4
READMEの抜粋:
proxychains-rs (v5.0.0)
This document is a concise usage and build guide for the proxychains-rs repository (version 5.0.0). It focuses on building, running and debugging the Rust implementation that provides proxychains-compatible behavior, and also covers common issues.
Overview
proxychains-rs (v5.0.0) is a Rust implementation that aims to be compatible with existing proxychains behavior. Its goal is to produce a shared library that can be injected into target programs using LD_PRE…