
ABYSS C2 — إطار عمل استغلال HiSilicon DVR (CVE-2020-25078). منصة تعليمية لأبحاث أمن إنترنت الأشياء.
⚠️ لأغراض تعليمية / توضيحية فقط
هذا البرنامج مُقدَّم حصريًا للأغراض التعليمية وبحوث الأمن السيبراني المصرح بها. وهو مصمم لتوضيح الثغرات الأمنية الشائعة في إنترنت الأشياء وتقنيات ما بعد الاستغلال في بيئة خاضعة للسيطرة ومصرح بها.
يجب عليك عدم استخدام هذا البرنامج على:
- أي نظام أو جهاز لا تملكه
- أي نظام أو جهاز ليس لديك إذن كتابي صريح لاختباره
- أي بنية تحتية إنتاجية دون موافقة مسبقة
لا يتحمل المنشئ أي مسؤولية أو تبعة عن أي إساءة استخدام أو ضرر أو نشاط غير قانوني يتم تنفيذه باستخدام هذا البرنامج. باستخدامك لهذا البرنامج، فإنك تقر بأنك وحدك المسؤول عن ضمان الامتثال لجميع القوانين واللوائح المعمول بها في نطاق ولايتك القضائية. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني بموجب قوانين مثل قانون الاحتيال وإساءة استخدام الحاسوب (CFAA) والقوانين المماثلة في جميع أنحاء العالم.
هذا المشروع موجود لتوضيح:
- كيفية عمل CVE-2020-25078 (كشف معلومات أجهزة HiSilicon DVR)
- نقاط الضعف الأمنية في أجهزة إنترنت الأشياء ولماذا تُعد تحديثات البرامج الثابتة مهمة
- تقنيات ما بعد الاستغلال حتى يفهم المدافعون تكتيكات المهاجمين وتقنياتهم وإجراءاتهم (TTPs)
- أهمية تقسيم الشبكة والنظافة في إدارة بيانات الاعتماد
إذا كنت لا تملكه، فلا تلمسه.
ABYSS C2 هو إطار عمل متكامل للقيادة والتحكم (Command & Control) مبني بلغة Python/Flask مع لوحة ويب داكنة في الوقت الفعلي. وهو يوضح سلسلة الهجوم الكاملة ضد أجهزة إنترنت الأشياء (تحديدًا أجهزة DVR وكاميرات IP القائمة على HiSilicon المتأثرة بـ CVE-2020-25078) — بدءًا من الاستطلاع وجمع الأهداف، مرورًا بالاستغلال، وما بعد الاستغلال، والاستمرارية، والحركة الجانبية، وصولًا إلى استخراج البيانات.
CVE-2020-25078 هي ثغرة اجتياز المسار / كشف معلومات في أجهزة DVR/NVR القائمة على HiSilicon Hi3516/Hi3518/Hi3519. يمكن للمهاجمين غير المصادق عليهم الوصول إلى ملفات الإعدادات (/mnt/mtd/Config/Account*) التي تحتوي على بيانات اعتماد المدير بنص واضح عبر اجتياز الدليل في خادم HTTP.
panel/ ├── server.py # Flask + SocketIO C2 web panel (~1200 lines, 50+ API routes) ├── database.py # SQLite ORM — 11 tables (cameras, vulns, creds, shells, DNS, ASN, etc.) ├── scanner.py # Multi-threaded TCP/HTTP vulnerability scanner ├── exploit.py # CVE-2020-25078 exploit — 37 vulnerable paths, 14 credential parsers ├── telnet_client.py # Raw telnet command execution against owned devices ├── brute.py # Multi-threaded brute force engine ├── web_exploit.py # Full website vulnerability scanner (CMS detection, exposed files, SQLi) ├── web_cves.py # CVE scanner — Log4Shell, Spring4Shell, Confluence, Ghostcat, etc. ├── web_bugs.py # Bug class scanner — SQLi, LFI, SSRF, XXE, CmdI, JWT, etc. ├── web_brute.py # Web brute force — forms, WordPress xmlrpc, Basic Auth, cred stuffing ├── network_exploit.py # Network service exploit scanner — SMB, RDP, VNC, databases, etc. ├── cred_spray.py # Multi-service credential spraying ├── recon_asn.py # ASN import, organization search, IP-to-ASN lookup ├── recon_dns.py # DNS recon — all record types, subdomain brute, zone transfer ├── recon_jarm.py # JARM TLS server fingerprinting ├── recon_waf.py # WAF detection and identification ├── recon_geoip.py # GeoIP lookup and bulk IP geolocation ├── portscan.py # TCP port scanner with banner grabbing, SYN option, multiple presets ├── persistence.py # SSH key injection, cron backdoors, full deployment ├── reverse_shell.py # Payload generator + multi-session listener ├── pivot_chain.py # Multi-hop command execution and TCP relay ├── socks_pivot.py # SOCKS5 proxy through compromised hosts ├── botnet.py # Bot grouping, fan-out commands, health checks, payload deployment ├── intel.py # Telegram/Discord webhooks, AbuseIPDB, screenshot capture ├── scheduler.py # APScheduler-based job scheduling ├── proxy_rotation.py # Proxy list rotation for stealth ├── stealth.py # Traffic obfuscation utilities ├── inject_key.py # SSH key injection variants ├── inject_ssh.py # SSH-based injection ├── launch.py # Simple launcher wrapper ├── auto_exploit.py # Automated exploitation routines ├── templates/ │ └── index.html # Dark-themed SPA — 8 tabs, real-time updates, terminal └── requirements.txt # Python dependencies
### مخطط قاعدة البيانات
تحتوي قاعدة بيانات SQLite (`cameras.db`، التي يتم إنشاؤها تلقائيًا عند أول تشغيل) على 11 جدولًا:
| الجدول | الغرض |
|-------|---------|
| `cameras` | الأجهزة المخترقة — IP، بيانات الاعتماد، الطراز، البرنامج الثابت، الرقم التسلسلي، الحالة |
| `command_log` | سجل تدقيق كامل لكل أمر نُفِّذ ومخرجاته |
| `scan_results` | سجل الفحص — أي عناوين IP تم فحصها وما إذا كانت قابلة للاختراق |
| `web_vulns` | ثغرات الويب المكتشفة (CVE، الخطورة، الدليل) |
| `network_vulns` | ثغرات خدمات الشبكة المكتشفة |
| `shells` | جلسات الصدفة العكسية النشطة |
| `dns_records` | نتائج استطلاع DNS |
| `cred_vault` | بيانات الاعتماد المجمعة مصنفة حسب الخدمة |
| `asn_targets` | بادئات ASN ونطاقات IP المستوردة |
| `web_targets` | أهداف الويب مع البيانات الوصفية (الحالة، الخادم، CMS، JARM، WAF) |
| `scan_jobs` | تتبع المهام — نوع الفحص، الهدف، المدة، عدد النتائج |
| `scan_log` | سجل النشاط على مستوى الوحدة للتدقيق |
---
## التثبيت
### المتطلبات الأساسية
- بايثون 3.10 أو أحدث
- pip
- Git (اختياري)
### الخطوة 1 — الاستنساخ أو التنزيل```bash
git clone https://github.com/YOUR_USERNAME/abyss-c2.git
cd abyss-c2
python -m venv venv
venv\Scripts\activate
source venv/bin/activate
### الخطوة 3 — تثبيت التبعيات```bash
pip install -r requirements.txt
تتوقع وحدات القوة الغاشمة وجود قائمة كلمات rockyou.txt في جذر المشروع. نظرًا لحدود حجم الملف في GitHub (100 ميغابايت)، فإنها غير مضمنة في هذا المستودع.```bash
cp /usr/share/wordlists/rockyou.txt.gz . gunzip rockyou.txt.gz
إذا لم تكن بحاجة إلى القوة الغاشمة، فإن الوحدات الأخرى تعمل دون قائمة كلمات.
### الخطوة 5 — الإطلاق```bash
python server.py
افتح http://localhost:5000 في متصفحك.
يتم إنشاء قاعدة البيانات تلقائيًا عند أول تشغيل — لا حاجة لأي إعداد.
عند فتح اللوحة لأول مرة، سترى:
هذا هو مركز القيادة الخاص بك. يمكنك هنا:
جلب الأهداف من محركات البحث:
الفحص اليدوي:
192.168.1.0/24)بمجرد اختراق الأجهزة (تظهر في الجدول):
العمليات الجماعية:
وضع فحص الويب (تبديل عبر زر WEB):
ست وحدات استطلاع:
ماسح CVE — يفحص أكثر من 20 ثغرة CVE معروفة: Log4Shell (CVE-2021-44228), Spring4Shell (CVE-2022-22965), Confluence (CVE-2022-26134), Ghostcat (CVE-2020-1938), Struts2 (CVE-2017-5638), Jenkins (CVE-2018-1000861), GitLab (CVE-2021-22205), Exchange ProxyShell/ProxyLogon, F5 BIG-IP (CVE-2022-1388), Citrix (CVE-2019-19781), MOVEit (CVE-2023-34362), Ivanti (CVE-2024-21887), vCenter (CVE-2021-21972), PHPUnit (CVE-2017-9841), GeoServer (CVE-2024-36401), Apache Solr (CVE-2019-17558)، وثغرات إضافات WordPress.
ماسح فئة الثغرات — يختبر: حقن SQL الأعمى، حقن الأوامر، تضمين الملفات المحلية، تزوير الطلبات من جانب الخادم، الكيان الخارجي XML، هجمات JWT، الاستيلاء على النطاق الفرعي، تهريب طلب HTTP، استعلام GraphQL، الإعداد الخاطئ لـ CORS.
القوة الغاشمة للويب — أربعة أوضاع:
تظهر النتائج في جدول الثغرات المكتشفة أدناه.
ماسح استغلال الشبكة — يفحص خدمات الشبكة الشائعة بحثًا عن ثغرات معروفة: SMB (EternalBlue, SMBGhost), RDP (BlueKeep), VNC (تجاوز المصادقة), FTP (وصول مجهول), SNMP (المجتمعات الافتراضية), Redis (بدون مصادقة), MongoDB (بدون مصادقة), Elasticsearch (بدون مصادقة), CouchDB (بدون مصادقة), MySQL/MSSQL/PostgreSQL (بيانات اعتماد افتراضية), Memcached (بدون مصادقة), IPMI (تجاوز المصادقة)، القيم الافتراضية Mirai-IoT.
رش البيانات المعتمدة — رش بيانات اعتماد تم جمعها أو مخصصة عبر خدمات متعددة: Telnet, SSH, FTP, HTTP Basic, WordPress, SMB, Redis, MySQL, MongoDB, VNC، أو ALL دفعة واحدة.
تملأ النتائج جدول ثغرات الشبكة وخزنة البيانات المعتمدة.
ثلاثة إجراءات نشر للأجهزة المخترقة:
/root/.ssh/authorized_keys (أو مسارات متعددة)سلسلة التنقل — تنفيذ الأوامر عبر عدة مضيفين وسيطين:``` hop1 → hop2 → hop3 → command
**SOCKS Pivot** — ابدأ وكيل SOCKS5 محليًا يمرر حركة المرور عبر جهاز مخترق، مما يتيح لك استخدام proxychains أو أي أداة متوافقة مع SOCKS للوصول إلى الشبكة الداخلية.
### التبويب 6 — القذائف العكسية (Reverse Shells)
- **مولّد الحمولة** — اختر نوع القذيفة (bash، python، perl، php، nc، ruby، node، lua، إلخ)، واضبط LHOST/LPORT، وانقر GENERATE — تظهر الحمولة، وانقر للنسخ
- **المستمع** — ابدأ مستمعًا على أي منفذ، فهو يدير تلقائيًا اتصالات متزامنة متعددة
- **الجلسات النشطة** — انقر على أي جلسة للتفاعل، واكتب الأوامر وانقر SEND
- يعرض جدول **جميع القذائف** كل استدعاء قشرة عكسية تم استلامه، مع الحالة
### التبويب 7 — البوت نت (Botnet)
لإدارة مجموعات كبيرة من الأجهزة المخترقة:
- **أمر التوزيع (Fan-Out)** — تنفيذ أمر عبر جميع البوتات (مع إمكانية التصفية حسب الوسم)
- **فحص الصحة** — اختبار اتصال جميع البوتات والإبلاغ عن حالة متصل/غير متصل
- **وسم بوت (Tag Bot)** — تعيين وسوم للبوتات لتجميعها (مثل: `eu`، `cameras`، `high-value`)
- **نشر الحمولة** — دفع حمولة إلى جميع البوتات في مجموعة وسوم
- **ملخص البوتات** — يعرض العدد الإجمالي، وعدد المتصلين، وتفصيلًا حسب كل وسم
### التبويب 8 — الإعدادات
- **Telegram/Discord** — تكوين إشعارات webhook للأحداث (اختراق جديد، اكتمال الفحص، إلخ)
- **AbuseIPDB** — التحقق من سمعة عنوان IP
- **لقطة الشاشة** — التقاط لقطة HTTP من واجهة الويب الخاصة بالكاميرا
- **الجدولة (Scheduler)** — إعداد مهام متكررة (مثل: فحص الصحة كل 3600 ثانية)
- **سجل الفحص** — أثر تدقيق كامل لجميع عمليات الوحدات، مع إمكانية التصفية حسب نوع الوحدة
---
## مرجع API
تتوفر REST API كاملة على `http://localhost:5000/api/`. النقاط الرئيسية:
| Endpoint | Method | Description |
|----------|--------|-------------|
| `/api/cameras` | GET | سرد جميع الأجهزة المخترقة |
| `/api/cameras/<ip>` | GET | الحصول على تفاصيل الجهاز |
| `/api/stats` | GET | إحصائيات لوحة التحكم |
| `/api/scan/start` | POST | بدء الماسح (CIDRs، الأهداف، الخيوط) |
| `/api/scan/stop` | POST | إيقاف الماسح |
| `/api/scan/status` | GET | حالة تشغيل الماسح + الإحصائيات |
| `/api/exploit/check` | POST | فحص عنوان IP واحد بحثًا عن CVE-2020-25078 |
| `/api/fetch_targets` | POST | جلب من Shodan/FOFA/ZoomEye/Free |
| `/api/web_scan` | POST | فحص كامل لثغرات موقع الويب |
| `/api/web_cves/scan` | POST | فحص CVE ضد الهدف |
| `/api/web_bugs/scan` | POST | فحص فئة الثغرات ضد الهدف |
| `/api/web_brute` | POST | تخمين كلمات مرور الويب (Web brute force) |
| `/api/network/scan` | POST | فحص استغلال الشبكة |
| `/api/cred_spray` | POST | رشّ الاعتمادات (Credential spraying) |
| `/api/portscan` | POST | فحص منافذ TCP |
| `/api/recon/asn` | POST | استيراد/استعلام/بحث ASN |
| `/api/recon/dns` | POST | استطلاع DNS |
| `/api/recon/jarm` | POST | بصمة JARM |
| `/api/recon/waf` | POST | كشف WAF |
| `/api/recon/geoip` | POST | استعلام GeoIP |
| `/api/persistence/deploy` | POST | نشر آلية الثبات (ssh_key/cron/full) |
| `/api/revshell/generate` | POST | توليد حمولة القشرة العكسية |
| `/api/revshell/listen` | POST | بدء مستمع القشرة العكسية |
| `/api/revshell/stop` | POST | إيقاف المستمع |
| `/api/botnet/bots` | GET | قائمة البوتات + ملخص المجموعة |
| `/api/botnet/fanout` | POST | تنفيذ أمر عبر البوتات |
| `/api/botnet/health` | POST | فحص صحة البوتات |
| `/api/botnet/deploy` | POST | نشر حمولة إلى البوتات |
| `/api/socks/start` | POST | بدء وكيل SOCKS5 |
| `/api/socks/stop` | POST | إيقاف وكيل SOCKS5 |
| `/api/intel/config` | GET/POST | الحصول/تعيين إعدادات الإشعارات |
| `/api/intel/screenshot` | POST | التقاط لقطة شاشة الكاميرا |
| `/api/intel/notify` | POST | إرسال إشعار تجريبي |
| `/api/scheduler/jobs` | GET | سرد المهام المجدولة |
| `/api/scheduler/add` | POST | إضافة مهمة مجدولة |
| `/api/scheduler/remove` | POST | إزالة مهمة مجدولة |
| `/api/credentials` | GET | خزنة الاعتمادات |
| `/api/web_vulns` | GET | قائمة ثغرات الويب |
| `/api/network_vulns` | GET | قائمة ثغرات الشبكة |
| `/api/shells` | GET | جميع جلسات القشرة العكسية |
| `/api/scan_log` | GET | سجل تدقيق مع فلاتر الوحدة/الهدف |
| `/api/scan_jobs` | GET | سجل مهام الفحص |
أحداث WebSocket (SocketIO):
- `scanner_event` — تقدم الفحص في الوقت الفعلي (نشط، قابل للاستغلال، مُخترَق، الحالة)
- `stats_update` — تغيير إحصائيات لوحة التحكم
- `cameras_list` — تحديث جدول الكاميرات
- `new_camera` — اختراق جهاز جديد
- `command_result` — مخرجات أمر Telnet
- `mass_result` / `mass_result_item` — نتائج الأوامر الجماعية
- `brute_event` — تقدم القوة الغاشمة
- `web_cve_event` / `web_cves_done` — تقدم فحص CVE
- `web_bug_event` / `web_bugs_done` — تقدم فحص الثغرات
- `network_event` / `network_done` — تقدم فحص الشبكة
- `spray_event` / `spray_done` — تقدم رشّ الاعتمادات
- `portscan_event` / `portscan_done` — تقدم فحص المنافذ
- `persistence_result` — نتيجة نشر آلية الثبات
- `revshell_event` — بيانات/اتصالات القشرة العكسية
- `botnet_event` / `botnet_fanout_done` — عمليات البوت نت
---
## تفاصيل تقنية
### سلسلة استغلال CVE-2020-25078
1. **فحص البقاء على قيد الحياة (Alive check)** — اتصال TCP بالمنفذ 80
2. **بصمة HTTP** — فحص الاستجابة بحثًا عن 15 توقيعًا معروفًا لأجهزة DVR (`AppName="Hipcam"`، `hi3516`، `WEB SERVICE`، إلخ)
3. **عبور المسار (Path traversal)** — محاولة 37 مسارًا معروفًا قابلًا للاستغلال (`/../../../../../../../../../mnt/mtd/Config/Account1`، إلخ)
4. **استخراج الاعتمادات** — تحليل الاستجابة باستخدام 14 نمط regex تغطي تنسيقات INI وXML وJSON وURL-encoded والثنائي وbase64 والمفصول بنقطتين والتنسيقات الخاصة بـ DVR
5. **تصفية البيانات غير المرغوبة** — إزالة عدوانية للإيجابيات الكاذبة (وسوم HTML، ترويسات HTTP، كلمات شائعة)
6. **التراجع الافتراضي** — إذا كان الجهاز قابلًا للاستغلال ولكن لم يتم استخراج اعتمادات، فجرّب 22 زوج اعتمادات افتراضيًا معروفًا
### بنية الماسح
- تجمّع خيوط مع عدد عاملين قابل للتهيئة (الافتراضي 50)
- توزيع الأهداف قائم على قائمة انتظار
- إرسال أحداث SocketIO في الوقت الفعلي إلى واجهة المستخدم
- إحصائيات آمنة للخيوط مع أقفال mutex
- توسيع نطاق CIDR مع استبعاد عنوان الشبكة والبث
- فحص متعدد المنافذ (80, 8080, 443, 8443, 554, 8000, 81, 88, 8888, 37777)
---
## إخلاء المسؤولية
**يُقدَّم هذا البرنامج لأغراض تعليمية وتوضيحية فقط.**
يُقصد استخدام هذا المشروع حصريًا في مهام اختبار الأمان المصرح بها، أو البيئات التعليمية، أو على الأنظمة التي تمتلكها. التقنيات المعروضة هنا معروفة جيدًا في صناعة الأمن السيبراني وموثقة لمساعدة المدافعين على فهم منهجيات الهجوم.
**باستخدامك لهذا البرنامج، فإنك توافق على ما يلي:**
1. لن تستخدمه إلا على الأنظمة التي تمتلكها أو لديك إذن كتابي صريح لاختبارها
2. أنت مسؤول عن الامتثال لجميع القوانين المحلية والولائية والوطنية والدولية المعمول بها
3. لا يتحمل منشئو هذا المشروع ومساهموه **أي مسؤولية على الإطلاق** عن أي:
- استخدام غير مصرح به أو غير قانوني لهذا البرنامج
- ضرر ناتج عن استخدام هذا البرنامج أو إساءة استخدامه
- عواقب قانونية ناتجة عن استخدام هذا البرنامج
4. لا يقدم هذا البرنامج أي ضمان من أي نوع، صريح أو ضمني
**إذا لم تكن متأكدًا مما إذا كانت حالة استخدامك قانونية أو مصرحًا بها، فلا تستخدم هذا البرنامج.**
لا يشكل وجود هذا المشروع تشجيعًا على الانخراط في أنشطة غير قانونية. إنه موجود لأن فهم التقنيات الهجومية أمر ضروري لبناء دفاعات فعالة.
---
## الترخيص
يُقدَّم هذا المشروع كما هو لأغراض تعليمية. بدون ضمان. بدون مسؤولية. الاستخدام على مسؤوليتك الخاصة.
---
*تذكّر: البحث الأمني موجود لجعل الأنظمة أكثر أمانًا، وليس لكسرها. استخدم هذه المعرفة للدفاع، وليس للهجوم.*
| الوحدة | ماذا تفعل |
|---|
| بحث ASN | استيراد جميع البادئات من ASN، البحث في المؤسسات، ومعرفة أي ASN ينتمي إليه عنوان IP معين |
| استطلاع DNS | تعداد DNS كامل — سجلات A وAAAA وMX وNS وTXT وSOA وCNAME + تخمين النطاقات الفرعية + محاولات نقل المنطقة AXFR |
| بصمة JARM | بصمة خادم TLS — تحدد تنفيذ TLS حتى خلف موازنات التحميل |
| كشف WAF | تحدد أي WAF (Cloudflare, CloudFront, Imperva, Akamai, إلخ) يقف أمام الهدف |
| GeoIP | تحديد الموقع الجغرافي ومزود الخدمة لأي IP |
| فحص المنافذ | فحص منافذ TCP مع 6 إعدادات مسبقة — Web, Top 100, Top 1000, Full, IoT, Databases — مع التقاط اللافتات |