







السمعة:
السلام عليكم ورحمة الله وبركاته
جمعة مباركة علينا وعليكم يارب
رابط تحميل المشين : https://www.vulnhub.com/entry/web-machine-n7,756/
رابط مباشر : https://download.vulnhub.com/webmachine/Web-Machine-N7.ova
بعد استيراد المشين إلى داخل البيئة الوهمية وتشغيلها رح تظهر لنا بالشكل هذا:
الواضح أن موقع الويب موجود على الكالي, الحين بنحاول نكتشف الIP Address وبما أن المشين شغالة مع الكالي على نفس الشبكة ف بسوي بحث وبشوف. . . مع العلم إني خليتهم الإثنين على bridge adapter.
الحين في أكثر من طريقة لحتى أعمل ARP على الشبكة وأقدر أشوف مين الأجهزة الموجودة معي ممكن استخدم arp-scan وممكن تستخدم angryip وممكن تعمل سكربت بسيط بايثون , أنت اختار الطريقة اللي تناسبك.
Python:
import socket
def scan_local_network():
"""Scans the local network for devices that are active and returns their names and IP addresses. """
network_prefix = '192.168.1' # Specify your network prefix here
alive_devices = []
for host in range(1, 255):
ip_address = f"{network_prefix}.{host}"
try:
hostname = socket.gethostbyaddr(ip_address)[0]
alive_devices.append((hostname, ip_address))
except socket.herror:
pass
return alive_devices
# Main execution
devices = scan_local_network()
for hostname, ip_address in devices:
print(f"Device Name: {hostname}, IP Address: {ip_address}")
وممكن تستخدم الأمر sudo arp-scan --localnet
الآن لو نفذنا الأمر ايش رح نشوف ؟
زين، الآن IP المشين هو 192.168.1.18 بجرب أفتحه ونشوف
زين، لو تصفحنا موقع الويب ما في إلا كبسة about us وما تشتغل يعني مو مربوطة بصفحة ثانية + صفحة profile.php وهي صفحة شغالة لكن لما أضغط عليها ما تعطي شيء صفحة بيضاء.
زين، نشوف السورس كود ونشوف الميموري ونحاول نبحث عن أي معلومة وبنفس اللحظة بدنا نعمل bruteforce على شكل enumerating لـ المجلدات في السيرفر.
طبعاً لك حرية استخدام الأداة المناسبة لك ولكن أنا رح أحاول ب gobuster + dirb ورح أتركلك مصادر تنزيل الأدوات في نهاية الموضوع.
طبعاً لا ننسى نسوي scan nmap اثناء القيام بال enumerating.
هاي نتيجة ال dirb وطبعاً ما نكتفي بنتيجة أداة وحدة وممكن نشتغل بشكل يدوي ونكتب admin,administration,administrating,etc... إذا كان الهدف هو البحث عن لوحة تحكم.
وبالسيناريوهات الحقيقية دائماً ما يميل المخترق الى لوحة التحكم فهي باب جداً مهم للوصول للسيرفر.
وهاي نتيجة ال gobuster اللي ممكن تستخدم معه extention enum. وبرضه ما أنسى أشوف إذا في ملف robots.txt لأنه ممكن يحتوي مسارات مهمة.
طبعاً لازم أنوّه لشغلة جداً مهمة وهي أن قوة ال enum معتمدة على قوة ال wordlist اللي أنت بتستخدمها
خلينا نشوف ملف exploit.html ايش محتواه.
وهذا السورس كود تاعه
طبعاً اللي يهمني هون طريقة إرسال الداتا والوجهة؟
لو جربنا نكبس زي أي بني آدم بحاول يجرّب ويكتشف رح أحاول أرفع ملف البايثون اللي عملناه من شوي ونجرب
وهذه النتيجة :
وهذا الخطأ غير اعتيادي يعني هذا لا يٌصنّف مع أخطاء ال status code وهو أن المتصفح نفسه مش قادر يبني اتصال مع الرابط في الأعلى والسبب أنه التوجيه كان ل localhost وهو لازم يكون ل ip الموقع نفسه وهذا اللي رح أغيره الآن وأجرب .
زين، الآن بغيّر الاكشن لـ http://192.168.1.18/profile.php
طبعاً أنا جربت أعمل php reverse shell وحتى ممكن تلاقي مصادر بالجوجل حتى أقدر أرفعه وأعمل reverse connection مع السيرفر ولكن كل هذا الكلام ما نفع لأن السيناريو ببساطة كان عبارة إنك تغيّر من local host الى ال ip تاع المشين ببساطة ولو بعثت الريكويست بيعطيك نص FLAG
وحالياً وبعد بحث طويل لقيت مسار /enter_network والمسار هذا موجود لكن يحتاج wordlist قوية علشان يطلع معك بالنتائج.
البديهيات لما بشوف في نموذج تعبئة مثل هذا ؟ ويكون يطلب اسم مستخدم وكلمة مرور؟ أول حاجة أفكر فيها هي bypass login على طول بستخدم مثلاً ' OR 1=1-- لكن ما ضبطت وبعمل intercept يعني اعتراض للإتصال وبشوف شكل الpacket
قراءة سريعة لل request والكوكيز والمعلومات اللي بتروح للسيرفر بال POST Method
ولكن في حاجة حلوة بالكوكيز إنها مقسومة لقسمين:
الأول : user=JGFyZ29uMmkkdj0xOSRtPTY1NTM2LHQ9NCxwPTEkTmtSRU1VNWhTVmxSWmpGTmExQmtUQSRFeWh6MlF1am8zNkl3QzZKVFE3ZFFONTZVc28weUVDK1lGNW50ckJYdnIw
الثاني : role=MjEyMzJmMjk3YTU3YTVhNzQzODk0YTBlNGE4MDFmYzM%253D
وهنا حاجة مهمة أن في urlencode بال role بالجزء الأخير من النص. ولو سوينا decode رح نلاقي قيمة MD5 ولو سوينا crack رح نلاقيها admin
وبعد الإنتهاء من التحليل والنظرة هاي بدنا نحاول نعمل enumerating على الفولدر enter_network رح نجد مسار admin.php بندخل له وبنشوف.
هذه هي الصفحة والكلام المكتوب يقول أن هاي الصفحة فقط مسموحة للمدير فقط.
وهون نشوف شكل ال intercept
وهنا نقدر نغيّر الrole ونكتب admin بشكل واضح ويطلع معنا باقي ال FLAG
تعديل:** كما يمكننا دائماً فحص SQLmap عن طريق حفظ ال intercept request وطلبه عن طريق sqlmap -r وكنت شفت هاذي الطريقة بأحد ال writeups
لكن فكرة المشين جداً بسيطة ومو معقدة ابداً ويمكن التحدي كان بإيجاد فولدر enter_network وهذا التحدي لا يعتمد ع الانسان بقدر ما يعتمد على ال enum
ملخص للمشين اشتغلنا عليها من البداية بال target بحيث جلبنا ال IP وبعد هيك شفنا أن في apache2 شغال عن طريق فحص nmap يعني في webserver وحاولنا نكتشف ونجرب وظائف الموقع واستعملنا gobuster+dirb واستعملنا ال extention scan حتى أعمل locate على الملفات والمجلدات أيضاً وبإمكانك دايماً توسّع ال ext وتستخدم sql,xml,backup,etc....
وفي النهاية لعبنا شوي مع ال urlencode,base64,md5
تقييم للمشين هي ( سهلة جداً )
دمتم بخير
ستورم
dirb : https://www.kali.org/tools/dirb/
gobuster : https://www.kali.org/tools/gobuster/
MD5 crack : https://crackstation.net/
gobuster : https://www.kali.org/tools/gobuster/
MD5 crack : https://crackstation.net/
التعديل الأخير بواسطة المشرف: