مركز التطوير | DevHub

تمويه C2 عبر Cloudflare وNginx | C2 Obfuscation via Cloudflare & Nginx

الهدف

الفكرة هنا إنك تبني بنية كاملة لـ C2 (Command and Control) تكون آمنة ومموهة، وما يقدر أحد يربطها بجهازك أو يحدد موقعك الحقيقي. تستخدم فيها Cloudflare، VPS، VPN، Nginx، وجهازك الشخصي (غالبًا Kali Linux) عشان تشغل أدوات مثل Sliver أو Metasploit أو أي C2 Framework ثاني.
الطريقة هذي مثالية لأي شخص يشتغل في بيئة Red Team أو يبي يحاكي سيناريو واقعي بشكل احترافي.

مكونات البنية

1. Victim Machine (جهاز الضحية)

هو الجهاز اللي يستقبل الـ Payload أو Beacon، ويتصل بدومينك عن طريق HTTPS، مثل:
https://domain.com

2. Cloudflare

وظيفته إنه يخفي عنوان IP الحقيقي الخاص فيك، ويوفر حماية طبقة أولى.

  • يستقبل اتصال الضحية على بورت 443
  • يوجهه إلى VPS بدل ما يوصلك مباشرة

3. VPS (بدون خدمات)

السيرفر هذا ما عليه لا C2 ولا Nginx. يشتغل كجسر بس: ياخذ الترافيك من Cloudflare، ويرسله لجهازك عبر VPN.

4. VPN Tunnel

النفق هذا هو الرابط المشفر بين VPS وجهازك المحلي (مثلاً Kali). بكذا، يصير VPS يشوف جهازك كأنه داخل نفس الشبكة، ويقدر يمرر الترافيك بأمان.

5. Kali Linux

الجهاز اللي عندك، وفيه كل الخدمات:

  • Nginx يشتغل كـ Reverse Proxy
  • C2 Server (مثل Sliver, Metasploit, Mythic, Covenant… إلخ) يشتغل على بورت داخلي مثل 50050

6. Nginx Reverse Proxy

هو المسؤول عن استقبال الترافيك على بورت 443، وتحويله داخليًا للـ C2. المثال التالي يوضح:

https://10.10.10.10:50050

هذا IP يكون من شبكة VPN، مخصص لجهازك داخل النفق.
ملاحظة:

  • البورت الخارجي (443): اللي يوصله الترافيك من Cloudflare
  • البورت الداخلي (50050): اللي عليه C2 فعليًا

7. C2 Server

الخدمة اللي تستقبل الـ Beacon من الضحية وتبدأ الجلسة. تقدر ترسل أوامر، تتحكم بالجهاز، تسحب بيانات.. كل شي يتم من هنا.

8. Operator (المهاجم)

أنت، كمهاجم، اللي تدير الجلسات وتتحكم في C2 من جهازك المحلي.

مخطط توضيحي للبنية

تسلسل الاتصال بالكامل:

  1. الضحية يتصل بالدومين (domain.com) عبر HTTPS
  2. Cloudflare يحوّل الاتصال إلى VPS على بورت 443
  3. الـ VPS يرسل الترافيك عبر VPN Tunnel إلى جهازك المحلي
  4. Nginx في Kali يستقبل على بورت 443
  5. يعيد التوجيه داخليًا إلى C2 على https://10.10.10.10:50050
  6. C2 يستقبل Beacon ويبدأ الجلسة
  7. Operator يتحكم بالضحية عن طريق C2

إعداد Nginx على Kali

Nginx
server {
    listen 443 ssl;
    server_name domain.com;

    ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;

    location / {
        proxy_pass https://10.10.10.10:50050;
        proxy_ssl_verify off;
        proxy_ssl_server_name on;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}


تأكد إن IP اللي تستخدمه داخلي (من الـ VPN)، مثل 10.10.10.10

إعداد SSL داخل Cloudflare

Cloudflare يعطيك ثلاث خيارات للـ SSL:

النوعالوصفمناسب للاستخدام في C2؟
Flexibleيوصل الضحية عبر HTTPS لكن Cloudflare يرسل HTTP داخليًاغير امن
FullCloudflare يرسل HTTPS، بس ما يتحقق من الشهادة مقبول
Full (Strict)يتحقق من الشهادة وتكون موثوقة الأفضل

الأفضل دائمًا: Full (Strict) + شهادة Let’s Encrypt

كيف تطلع شهادة Let’s Encrypt

1.تثبيت certbot

linux
sudo apt install certbot


2.إنشاء الشهادة:

linux
sudo certbot certonly --standalone -d domain.com


3.المسارات المطلوبة

linux
/etc/letsencrypt/live/domain.com/fullchain.pem
/etc/letsencrypt/live/domain.com/privkey.pem


وحطها في إعدادات Nginx مثل ما هو فوق.

  • لا تشغل C2 على VPS أبدا، خله بجهازك المحلي
  • استخدم VPN آمن مثل WireGuard
  • غيّر البورتات الافتراضية اللي يستخدمها C2
  • فعّل Access Rules في Cloudflare لو تبي تحصر الدخول
  • راقب DNS Queries و Cloudflare Logs باستمرار

الخاتمة

اللي سويته هنا هو بنية نظيفة وآمنة لـ C2، تخلي التواصل يتم عن طريق Cloudflare، ويكون VPS مجرد جسر يوصل الترافيك المشفر إلى جهازك. بكذا حتى لو أحد وصل للدومين، مستحيل يعرف أنت وين فعليًا، ولا كيف C2 شغّال. الطريقة هذي ممتازة لأي شخص يشتغل في بيئة احترافية أو يتعلم تقنيات Red Team بشكل متقدم.

المراجع

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *