
proxychains - أداة تُجبر أي اتصال TCP يُنشأ بواسطة أي تطبيق على المرور عبر بروكسي مثل TOR أو أي بروكسي SOCKS4 أو SOCKS5 أو HTTP(S) آخر. أنواع المصادقة المدعومة: "user/pass" لـ SOCKS4/5 و"basic" لـ HTTP.
ProxyChains هو برنامج UNIX، يعترض دوال libc المتعلقة بالشبكة في البرامج المرتبطة ديناميكيًا عبر DLL محمّلة مسبقًا، ويعيد توجيه الاتصالات عبر بروكسيات SOCKS4a/5 أو HTTP.
تحذير: يعمل هذا البرنامج فقط مع البرامج المرتبطة ديناميكيًا. كما يجب أن يستخدم كلٌّ من proxychains والبرنامج المطلوب تشغيله نفس الرابط الديناميكي (أي نفس libc)
عندما تستدعي عملية fork، وتقوم بعمل بحث DNS في العملية الابنة، ثم تستخدم عنوان IP في العملية الأم، لن يتم العثور على تعيين IP المقابل، وذلك لأن fork لا يمكنها الكتابة مرة أخرى إلى جدول التعيين الخاص بالعملية الأم. يُظهر IRSSI هذا السلوك، لذا عليك تمرير عنوان IP المُحلَّل إليه. (يمكنك استخدام سكربت proxyresolv (يتطلب "dig") للقيام بذلك)
هذا يعني أنك لا تستطيع حاليًا استخدام عناوين tor onion لـ irssi. لحل هذه المشكلة، يجب أن يدير مخزن بيانات خارجي (ملف، أنبوب pipe، ...) تعيين dns <-> ip. بالطبع يجب أن يكون هناك قفل مناسب. shm_open وmkstemp مرشّحان محتملان لمنهج قائم على الملف، الخيار الآخر هو إنشاء عملية خادم من نوع ما تدير عمليات البحث في جدول التعيين. وبما أن connect() وغيرها قد تم اعتراضها، يجب ألا يكون هذا خادم TCP.
أنا متردد في إجراء هذا التغيير، لأن السلوك الموصوف يبدو سخيفًا إلى حدٍّ ما (القيام بـ fork فقط من أجل بحث DNS)، وirssi حاليًا هو البرنامج الوحيد المعروف المتأثر بهذا.
Proxychains-4.3.0 متاح عبر pkgsrc لكل من يستخدمه على Linux، NetBSD، FreeBSD، OpenBSD، DragonFlyBSD أو Mac OS X. تحتاج فقط إلى تثبيت مستودع pkgsrc-wip وتشغيل make install في دليل wip/proxychains.
يمكنك معرفة المزيد عن pkgsrc على link:http://www.pkgsrc.org[pkgsrc] وعن pkgsrc-wip على link:https://pkgsrc.org/wip[Pkgsrc-wip homepage]
يمكنك تثبيت proxychains الحالي على Mac OS X باستخدام homebrew. عليك تنزيل 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
الإصدار (4.x) يزيل سكربت dnsresolver الذي كان يتطلب وجود ثنائي "dig" مرتبط ديناميكيًا لإجراء بحث DNS عن بُعد. هذا يسرّع أي عملية تتضمن DNS، لأن السكربت القديم كان عليه استخدام TCP. بالإضافة إلى ذلك، يتيح استخدام عناوين .onion عند استخدامه مع TOR. كما أزال نظام البناء autoconf المعطوب واستبدله بملف Makefile بسيط. توجد سكربت ./configure بالرغم من ذلك لتسهيل الاستخدام. كما يضيف دعمًا لملف إعداد يُمرَّر عبر مفاتيح سطر الأوامر/متغيرات البيئة.
الإصدار (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
في هذا المثال، سيتم تشغيل telnet عبر البروكسي (أو البروكسيات المتسلسلة) المحددة بواسطة proxychains.conf
$ proxychains4 -f /etc/proxychains-other.conf targethost2.com
في هذا المثال، سيتم استخدام ملف إعداد مختلف عن proxychains.conf للاتصال بالمضيف targethost2.com.
$ proxyresolv targethost.com
في هذا المثال، سيتم حل targethost.com عبر البروكسي (أو البروكسيات المتسلسلة) المحددة بواسطة proxychains.conf
$ ssh -fN -D 4321 some.example.com
$ PROXYCHAINS_SOCKS5_HOST=127.0.0.1 PROXYCHAINS_SOCKS5_PORT=4321 proxychains zsh
في هذا المثال، سيتم تشغيل صدفة (shell) مع تمرير كل الحركة عبر "البروكسي الديناميكي" لـ OpenSSH (بروكسي SOCKS5) على المنفذ 4321 في المضيف المحلي.
$ export PROXY_DNS_SERVER=8.8.8.8
$ proxychains4 telnet targethost.com
في هذا المثال، سيتم استخدام telnet للاتصال بـ targethost.com باستخدام خادم الأسماء 8.8.8.8 الذي قدمه المستخدم عبر PROXY_DNS_SERVER.