Post

Bypass Company Firewall using HTTP Tunnels

السلام عليكم ورحمة الله وبركاته

بعض الأحيان في العمل تجد مدير الشبكة قد قام بغلق أغلب المنافذ، والكثير من المواقع محجوبة، وبالتالي سيعقد حياتك ومشاغلك الإنترنتية … كما كنت اعمل بالشبكة في عملي السابق ::18 طيب ما العمل هل نقول له خلاص أنتصرت وأنا أستسلم؟ ولا أستطيع عمل سوى ما تسمح لنا به؟

الجواب: لا ومليون لا …

ولهذا جاء موضوعي لهذا اليوم وذلك لحل هذه المشكلة ولتجتاوز هذه الحواجز التي وضعها لنا هذا الأدمن :) ولكي نثبت له ولغيره بإننا قادرين على تجاوز وقفز جميع الحواجز … Bypassing قوانينكم ومحدداتكم مستمرة … واليوم نتجاوزها بطريقة غير التي شرحتها في المرات السابقة … اليوم نشرحها بإستخدام برنامج httptunnel …

في أي مؤسسة أو شركة أو دائرة حكومية، ربما المنافذ المفتوحة لك هي فقط 80 و 443 والذي هم لـ HTTP و HTTPS على التوالي … وهذه المنافذ هي التي سنستغلها في تمرير بياناتنا الى المواقع أو الخدمات التي نحتاجها في الخارج والتي يمنعها علينا مدير الشبكة … هذه المنافذ من الصعب غلقها ومن الصعب جداً فلترتها ولهذا هي بيئة خصبة وسهلة لما يسمى بـ HTTP Tunneling … سنقوم بواسطة الأداة التي ذكرتها httptunnel بعمل مجرى لنا لنمرر من خلاله بياناتنا الى الخدمات التي نريدها في خارج المؤسسة، الشركة أو الدائرة … والجميل في ما سأشرحه هو إننا سنقوم بعمل ممر مشفر بإستعمال التشفير الذي يستعمله SSH وبالتالي نحصل على ممرات مشفرة … أليكم هذه الصورة التوضيحية:

بالبداية ما سنحتاج له هو التالي:

جهاز المنزل/

– يكون عليه httptunnel server …

– الإعدادات اللازمة لإستعمال المنافذ المطلوبة (سأشرح شرح الحاجة للمنفذ 22 أي منفذ الـ SSH ولهذا نحتاج هنا الى SSH Server) …

– الإعدادات اللازمة في الجدار الناري لمرور الحزم الى المنفذ 22 …

جهاز العمل/

– برنامج httptunnel client …

– برنامج للإتصال بالـ SSH Server (على جنو/لينوكس ssh نفسه وعلى الويندوز putty) …

الآن لنقم بتركيب البرنامج على النظام في المنزل بالبداية:

Ubuntu/Debian:

1
apt-get install httptunnel

Fedora/CentOS:

1
rpm -ivh http://www.macgyver.org/software/httptunnel/httptunnel-3.3-1.i386.rpm.

وللآخرين أستعمل الكود المصدري:

1
ftp://ftp.nocrew.org/pub/nocrew/unix/httptunnel-3.0.5.tar.gz

وأكيد تعرف الخطوات الباقية ::18

الآن على جهازك الذي بالمنزل نفذ الأمر التالي (بصلاحيات root):

1
# hts -F localhost:22 443

أو

1
$ sudo hts -F localhost:22 443

وهذه الخيارات تعني:

– أستعملنا hts والتي هي الـ httptunnel server.

– أستعملنا الخيار F والذي يعني forward تمرير، وهو نفس الخيار –forward-port.

– قمنا بتمرير البيانات الواصلة الى المنفذ 443 الى 22.

الآن لنقوم بإعدادات الخدمة SSH المناسبة (على جهازك المنزلي). قم بتحرير الملف:

1
# vim /etc/ssh/sshd_config

وبعد ذلك تاكد من وجود هذه الخيارات وبالشكل التالي:

1
2
3
4
AllowTcpForwarding yes
GatewayPorts yes
X11Forwarding yes
PermitTunnel yes

الآن تريد من جهازك الذي في الشركة أن تستعمل الممر للإتصال بالجهاز الذي في منزلك للدخول الى خدمة SSH نفذ التالي:

1
htc -F 44444 WORK_IP:443

مثال:

1
htc -F 44444 172.16.0.166:443

الخيارات هنا تعني:

– استعملنا البرنامج htc والذي هو httptunnel client.

– أستعملنا الخيار F وذلك لتمرير كل الحزم الواصلة الى المنفذ 44444 الى المنفذ 443 على IP الخاص بجهاز في العمل (في المثال 172.16.0.166).

– لا تنسى تستبدل بدل كلمة WORK_IP، رقم الأي بي الخاص بجهازك في العمل.

الآن لنتصل على الجهاز الذي بالمنزل على الخدمة SSH (منفذها 22) والذي حجبت الشركة عندنا في العمل من الوصول له من خلال الأمر التالي:

1
ssh -p 44444 root@localhost

وهكذا سنكون قد تمكنا من الدخول الى الجهاز المنزلي بواسطة الـ HTTP Tunnel الذي عملناه …

الآن نحن لا نريد الوصول الى جهازنا المنزلي لتنفيذ الأوامر فقط، لا نريد أن نستعمل الممر لإستعمال الخدمات التي تعمل على المنافذ المحجوبة عندنا بالشركة مثل برامج الدردشة مثل GTalk و Yahoo أو إستعمال IRC أو البريد الألكتروني … كل ذلك سنقوم به بالخطوات القادمة … تابع معي …

الآن سنحتاج الى عمل SOCKS Proxy خاص بنا وذلك لتمرير جميع الحزم من خلاله. أول شيء سنقوم به هو فتح الممر:

1
htc --forward-port 55555 172.16.0.166:443

ثاني شيء سنقوم به هو الإتصال على هذا الممر:

1
ssh -D 2222 -P 55555 root@localhost

بعد ذلك أذهب الى المتصفح لديك وقم بعمل الإعدادات اللازمة كالتالي:

أذهب الى المتصفح firefox مثلاً ومن ثم الى Edit ومن ثم الى Preferences ومن ثم الى Advanced ومن ثم الى Network ومن ثم الى Settings وقم بإختيار التالي:

1
Manual Proxy configuration

أختر الخيار الأخير SOCKS Host ومن ثم ضع في الخانة الأولى: 127.0.0.1 وفي الثانية ضع رقم المنفذ الذي أستعملته والذي هو هنا 2222 وتأكد من إختيار SOCKS v5 وأضغط على OK وخلاص …

أو كما في الصورة التالية:

الآن تستطيع تصفح النت من خلال هذا البروكسي الجديد :) وللتأكد أذهب الى المواقع التي تعرض لك الـ IP الخارجي لك مع البروكسي وتصفح نفس الموقع بدون البروكسي وسترى إنك فعلاً تعمل بواسطة البروكسي هذا :)

لإستعمال برنامج المحادثة مثلاً Pidgin أو البريد Mozilla كلما عليك فعله هو إستعمال نفس الإعدادات التي أستعملتها للمتصفح firefox والمنفذ 2222 وتقوم بالإتصال من خلاله … سأترك إعداداته لكم للتجربة …

لمزيد من المعلومات:

Main httptunnel site

FAQ

Httptunnel for Fedora/CentOS

هذا ما لدي ودمتم بود …

This post is licensed under CC BY 4.0 by the author.