إن اختراق مضيف واحد داخل شبكة داخلية لا فائدة منه دون مسار تنقل موثوق. توفر أنفاق SOCKS5 عبر SSH أقل زمن وصول وأكثر الطرق استقلالية عن الأدوات للحركة الجانبية — إلا أن معظم المشغلين يسيئون تكوينها أو يتركون آثارًا جنائية يمكن لفريق الدفاع الماهر اكتشافها في ثوانٍ. في عام 2024، لا يزال وكيل SOCKS5 المُعد بشكل صحيح يتفوق على وكلاء HTTP CONNECT من حيث إنتاجية TCP الخام، ومع أدوات مثل proxychains-ng وChisel، يمكنك توجيه nmap وMetasploit والنصوص البرمجية المخصصة عبر جلسة SSH واحدة دون لمس قواعد جدار الحماية للهدف.
لماذا يتفوق SOCKS5 عبر SSH على إعادة توجيه المنافذ
إعادة توجيه المنافذ المحلية الثابتة (-L) تُجبرك على ربط كل خدمة بعيدة بمنفذ محلي قبل أن تتمكن من التفاعل معها. إذا كنت بحاجة إلى مسح شبكة فرعية /24، فسيتعين عليك إنشاء 254 إعادة توجيه منفصلة. يحل التوجيه الديناميكي SOCKS5 (-D) هذه المشكلة من خلال كشف وكيل SOCKS5 محلي يوجه أي اتصال TCP عبر نفق SSH إلى المضيف البعيد. يُعرّف البروتوكول في RFC 1928 ويتعامل مع المصادقة وUDP (اختياري) وIPv6. عمليًا، تحصل على مستمع محلي واحد — عادةً على 127.0.0.1:1080 — ويمكن لكل أداة تدعم وكلاء SOCKS استخدامه. الحمل الإضافي ضئيل: تشفير SSH يضيف ربما 5-10% من استخدام المعالج، لكن زمن الوصول أقل بكثير من VPN أو إعادة توجيه المنفذ العكسي عبر واجهة ويب.
إعداد مستمع SOCKS5 على موطئ قدم لينكس
افترض أن لديك شل على مضيف لينكس داخل الشبكة المستهدفة. أسرع طريقة لإنشاء محور تنقل هي تشغيل ssh -D 1080 -N -f user@your-listener من المضيف المخترق عائدًا إلى جهاز الهجوم الخاص بك. لكن هذا يتطلب وصول SSH صادر، والذي قد يكون محظورًا. بدلاً من ذلك، قم بتشغيل التوجيه الديناميكي من جهاز الهجوم إلى المضيف المخترق:
ssh -D 1080 -N -f compromised_user@compromised_host
يفتح هذا وكيل SOCKS5 على المنفذ المحلي 1080. الآن قم بتكوين proxychains-ng (/etc/proxychains.conf) لاستخدام هذا الوكيل:
socks5 127.0.0.1 1080
ثم قم بتشغيل أي أداة TCP عبر النفق:
proxychains4 nmap -sT -Pn -p 445,3389 10.10.10.0/24
لاحظ أن nmap يتطلب -sT (مسح اتصال TCP) لأن SOCKS5 لا يدعم حزم SYN الخام. بالنسبة لـ Metasploit، قم بتعيين setg Proxies socks5:127.0.0.1:1080 وستمر جميع وحدات المساعدة والاستغلال عبر المحور. تعمل هذه التقنية في بيئات CTF مثل Hack The Box أو Proving Grounds حيث الهدف هو الوصول إلى شبكة فرعية ثانية.
Chisel وLigolo-ng والمقايضات
عندما يكون SSH غير متاح — ربما يعمل الهدف بنظام Windows أو لا يحتوي على خادم SSH — تسد أدوات الأنفاق البديلة الفجوة. يستخدم Chisel خادمًا وعميلًا مبنيين بلغة Go ينقلان TCP عبر HTTP/HTTPS. قم بتشغيل الخادم على جهاز الهجوم: chisel server -p 8000 --reverse. على المضيف المخترق، قم بتشغيل العميل: chisel client your_ip:8000 R:socks. يمنحك هذا مستمع SOCKS5 على جانب الخادم. Chisel سريع ويعمل عبر مرشحات الخروج المقيدة، لكن حركة المرور الخاصة به غير مشفرة افتراضيًا — قم بتغليفها في TLS أو استخدم SSH إذا كنت تهتم بأمن العمليات.
Ligolo-ng يتبع نهجًا مختلفًا: فهو ينشئ نفق شبكة على الطبقة 3 باستخدام واجهات TUN/TAP. بدلاً من SOCKS5، تقوم بتوجيه نطاقات IP كاملة عبر المحور. هذا يعني أنه يمكنك تشغيل nmap -sS (مسح SYN) بدون proxychains. المقايضة هي الحمل الإداري: تحتاج إلى صلاحيات الجذر على كلا الطرفين، ويتطلب إعداد النفق إضافة مسارات على جهاز الهجوم. بالنسبة لـ CTFs حيث تتحكم في كلا الجانبين، يكون Ligolo-ng أسرع. في الاختبارات الحقيقية، يكون نهج SOCKS5 أكثر قابلية للنقل لأنه يعمل بدون صلاحيات مرتفعة على مضيف المحور.
إشارات الكشف التي يتركها المهاجمون
كل طريقة تنقل تترك آثارًا. التوجيه الديناميكي SSH ينشئ مقبس استماع على المضيف المخترق — ss -tlnp يُظهر عملية ssh مرتبطة بـ 127.0.0.1:1080. يمكن لفرق الدفاع ربط ذلك باتصالات SSH الصادرة إلى عنوان IP خارجي. عملية عميل Chisel تُسمى chisel افتراضيًا — من السهل اكتشافها بمراقبة العمليات. يتطلب Ligolo-ng جهاز TUN (ip link show)، وهو أمر غير طبيعي على الخادم.
والأسوأ من ذلك، أن العديد من المشغلين ينسون التنظيف. تبقى جلسة SSH نشطة حتى يقتلها المضيف البعيد أو ينقطع الاتصال. لا يترك Proxychains آثارًا محلية، لكن حركة المرور nmap نفسها — مسوحات منافذ غير عادية تنشأ من مضيف لا يقوم عادةً بالمسح — تطلق إنذارات IDS. الخطأ الأكثر شيوعًا هو إعادة استخدام منفذ SOCKS5 الافتراضي 1080. غيّره إلى منفذ عابر عالي (مثل ssh -D 53421) وقم بتسمية تكوين proxychains لتجنب ترك ملف تكوين افتراضي. في CTF، لا يهم أي من هذا. في اختبار اختراق حقيقي، هذه الإشارات هي كيف يتم القبض عليك.