مضى على الشبكة و يوم من العطاء.
  • تحذير: يجب على كل روّاد الشبكة تشغيل برامج الاختراق داخل الأنظمة الوهمية وهي بهدف التعلم وحماية الأعضاء والتوعية بها

شرح + حل مشين Web Machine (N7) من موقع VulnHub

STORMSTORM is verified member.

>_ عضو ماسي _<
>:: v1p ::<

السمعة:

image.gif

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


رابط تحميل المشين : https://www.vulnhub.com/entry/web-machine-n7,756/
رابط مباشر : https://download.vulnhub.com/webmachine/Web-Machine-N7.ova

بعد استيراد المشين إلى داخل البيئة الوهمية وتشغيلها رح تظهر لنا بالشكل هذا:

1705629212000.png


الواضح أن موقع الويب موجود على الكالي, الحين بنحاول نكتشف ال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

الآن لو نفذنا الأمر ايش رح نشوف ؟

1705663292033.png


زين، الآن IP المشين هو 192.168.1.18 بجرب أفتحه ونشوف

1705664118467.png


زين، لو تصفحنا موقع الويب ما في إلا كبسة about us وما تشتغل يعني مو مربوطة بصفحة ثانية + صفحة profile.php وهي صفحة شغالة لكن لما أضغط عليها ما تعطي شيء صفحة بيضاء.


زين، نشوف السورس كود ونشوف الميموري ونحاول نبحث عن أي معلومة وبنفس اللحظة بدنا نعمل bruteforce على شكل enumerating لـ المجلدات في السيرفر.

طبعاً لك حرية استخدام الأداة المناسبة لك ولكن أنا رح أحاول ب gobuster + dirb ورح أتركلك مصادر تنزيل الأدوات في نهاية الموضوع.

طبعاً لا ننسى نسوي scan nmap اثناء القيام بال enumerating.


1705663914238.png




1705664373689.png


هاي نتيجة ال dirb وطبعاً ما نكتفي بنتيجة أداة وحدة وممكن نشتغل بشكل يدوي ونكتب admin,administration,administrating,etc... إذا كان الهدف هو البحث عن لوحة تحكم.

وبالسيناريوهات الحقيقية دائماً ما يميل المخترق الى لوحة التحكم فهي باب جداً مهم للوصول للسيرفر.

1705664879906.png


وهاي نتيجة ال gobuster اللي ممكن تستخدم معه extention enum. وبرضه ما أنسى أشوف إذا في ملف robots.txt لأنه ممكن يحتوي مسارات مهمة.

طبعاً لازم أنوّه لشغلة جداً مهمة وهي أن قوة ال enum معتمدة على قوة ال wordlist اللي أنت بتستخدمها

خلينا نشوف ملف exploit.html ايش محتواه.

1705666031649.png


وهذا السورس كود تاعه

1705666054723.png


طبعاً اللي يهمني هون طريقة إرسال الداتا والوجهة؟

لو جربنا نكبس زي أي بني آدم بحاول يجرّب ويكتشف رح أحاول أرفع ملف البايثون اللي عملناه من شوي ونجرب


1705666192958.png


وهذه النتيجة :

1705666214393.png


وهذا الخطأ غير اعتيادي يعني هذا لا يٌصنّف مع أخطاء ال status code وهو أن المتصفح نفسه مش قادر يبني اتصال مع الرابط في الأعلى والسبب أنه التوجيه كان ل localhost وهو لازم يكون ل ip الموقع نفسه وهذا اللي رح أغيره الآن وأجرب .

1705666921877.png


زين، الآن بغيّر الاكشن لـ http://192.168.1.18/profile.php

1705667098639.png


طبعاً أنا جربت أعمل php reverse shell وحتى ممكن تلاقي مصادر بالجوجل حتى أقدر أرفعه وأعمل reverse connection مع السيرفر ولكن كل هذا الكلام ما نفع لأن السيناريو ببساطة كان عبارة إنك تغيّر من local host الى ال ip تاع المشين ببساطة ولو بعثت الريكويست بيعطيك نص FLAG

1705667404379.png


وحالياً وبعد بحث طويل لقيت مسار /enter_network والمسار هذا موجود لكن يحتاج wordlist قوية علشان يطلع معك بالنتائج.

1705667532482.png


البديهيات لما بشوف في نموذج تعبئة مثل هذا ؟ ويكون يطلب اسم مستخدم وكلمة مرور؟ أول حاجة أفكر فيها هي bypass login على طول بستخدم مثلاً ' OR 1=1-- لكن ما ضبطت
وبعمل intercept يعني اعتراض للإتصال وبشوف شكل الpacket

1705668117452.png


قراءة سريعة لل request والكوكيز والمعلومات اللي بتروح للسيرفر بال POST Method
ولكن في حاجة حلوة بالكوكيز إنها مقسومة لقسمين:

الأول : user=JGFyZ29uMmkkdj0xOSRtPTY1NTM2LHQ9NCxwPTEkTmtSRU1VNWhTVmxSWmpGTmExQmtUQSRFeWh6MlF1am8zNkl3QzZKVFE3ZFFONTZVc28weUVDK1lGNW50ckJYdnIw
الثاني : role=MjEyMzJmMjk3YTU3YTVhNzQzODk0YTBlNGE4MDFmYzM%253D

وهنا حاجة مهمة أن في urlencode بال role بالجزء الأخير من النص. ولو سوينا decode رح نلاقي قيمة MD5 ولو سوينا crack رح نلاقيها admin

1705668270980.png


1705668276588.png


وبعد الإنتهاء من التحليل والنظرة هاي بدنا نحاول نعمل enumerating على الفولدر enter_network رح نجد مسار admin.php بندخل له وبنشوف.

1705668743406.png


1705668661526.png


هذه هي الصفحة والكلام المكتوب يقول أن هاي الصفحة فقط مسموحة للمدير فقط.

وهون نشوف شكل ال intercept

1705668813955.png


وهنا نقدر نغيّر الrole ونكتب admin بشكل واضح ويطلع معنا باقي ال FLAG

1705668875184.png


تعديل:** كما يمكننا دائماً فحص 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
تقييم للمشين هي ( سهلة جداً )

دمتم بخير
ستورم

 
التعديل الأخير بواسطة المشرف:

آخر المشاركات

فانوس

رمضان
عودة
أعلى