
proxychains - 任意のアプリケーションによって行われるすべてのTCP接続を、TORやその他のSOCKS4、SOCKS5、HTTP(S)プロキシなどのプロキシ経由で強制的に通すツール。対応認証タイプ: SOCKS4/5は"user/pass"、HTTPは"basic"。
ProxyChainsは、動的リンクされたプログラムのネットワーク関連libc関数をプリロードされたDLLを介してフックし、SOCKS4a/5またはHTTPプロキシを経由して接続をリダイレクトするUNIXプログラムです。
警告: このプログラムは動的リンクされたプログラムでのみ動作します。 また、proxychainsと実行対象のプログラムの両方が同じ動的リンカー(すなわち同じlibc)を使用している必要があります。
プロセスがforkし、子プロセスでDNSルックアップを行い、親プロセスでそのIPを使用する場合、対応するIPマッピングは見つかりません。これは、forkが親のマッピングテーブルに書き戻すことができないためです。
IRSSIはこの動作を示すため、解決済みのIPアドレスをIRSSIに渡す必要があります(これにはproxyresolvスクリプト(digが必要)を使用できます)。
これは、現在irssiにtor onion urlsを使用できないことを意味します。 この問題を解決するには、外部データストア(ファイル、パイプなど)がDNS <-> IPマッピングを管理する必要があります。もちろん、適切なロックも必要です。 shm_open、mkstempはファイルベースのアプローチの候補ですが、別のオプションはマップロックアップを管理するサーバープロセスを起動することです。 connect()などがフックされているため、これはTCPサーバーであってはなりません。
この変更には消極的です。なぜなら、説明した動作はかなり馬鹿げているように思えるからです(DNSルックアップのためだけにforkを実行する)、そしてirssiは現在のところ既知の影響を受ける唯一のプログラムです。
Proxychains-4.3.0 は、Linux、NetBSD、FreeBSD、OpenBSD、DragonFlyBSD または Mac OS X で使用するすべてのユーザーに pkgsrc で利用可能です。pkgsrc-wip リポジトリをインストールして、wip/proxychains ディレクトリで make install を実行するだけです。
pkgsrcの詳細は link:http://www.pkgsrc.org[pkgsrc] で、pkgsrc-wipの詳細は link:https://pkgsrc.org/wip[Pkgsrc-wip ホームページ] で確認できます。
現在のproxychainsは、homebrewを使ってMac OS Xにインストールできます。非公式の link:https://gist.github.com/3792521[homebrew formula] をBREW_HOME(デフォルトでは /usr/local/Library/Formula/)にダウンロードして、次のコマンドを実行する必要があります。
$ brew install proxychains
# needs a working C compiler, preferably gcc
./configure
make
sudo make install
Version (4.x) は、リモートDNSルックアップのために動的リンクされた"dig"バイナリが必要だったdnsresolverスクリプトを削除しました。 古いスクリプトはTCPを使用する必要があったため、これによりDNSを含むあらゆる操作が高速化されます。 さらに、TORと一緒に使用すると.onion URLを使用できます。 また、壊れたautoconfビルドシステムを単純なMakefileに置き換えました。 利便性のために./configureスクリプトはあります。 また、コマンドラインスイッチ/環境変数を介して渡される設定ファイルのサポートも追加します。
Version (3.x) は、プロキシ経由のDNS解決のサポートを導入します。SOCKS4、SOCKS5、HTTP CONNECTプロキシサーバーをサポートします。
like: your_host <--> proxy1 <--> proxy2 <--> target_host
like: your_host <-->socks5 <--> http <--> socks4 <--> target_host
proxychains nmap -sT -PO -p 80 -iR (find some webservers through proxy)
proxychainsは、次の順序で設定を探します:
詳細は /etc/proxychains.conf を参照してください。
$ proxychains4 telnet targethost.com
この例では、proxychains.conf で指定されたプロキシ(またはチェーンされたプロキシ)を介してtelnetを実行します。
$ proxychains4 -f /etc/proxychains-other.conf targethost2.com
この例では、proxychains.conf とは異なる設定ファイルを使用して、targethost2.comホストに接続します。
$ proxyresolv targethost.com
この例では、proxychains.conf で指定されたプロキシ(またはチェーンされたプロキシ)を介してtargethost.comを解決します。
$ ssh -fN -D 4321 some.example.com
$ PROXYCHAINS_SOCKS5_HOST=127.0.0.1 PROXYCHAINS_SOCKS5_PORT=4321 proxychains zsh
この例では、localhostポート4321上のOpenSSHの"動的プロキシ"(SOCKS5プロキシ)を介してすべてのトラフィックをプロキシするシェルを実行します。
$ export PROXY_DNS_SERVER=8.8.8.8
$ proxychains4 telnet targethost.com
この例では、ユーザーがPROXY_DNS_SERVERを通じて指定した8.8.8.8ネームサーバーを使用してtargethost.comにtelnetします。