---
# System prepended metadata

title: Pentest_3. Эксплутация уязвимостей. MetaSploit Framework

---

# Pentest_3. Эксплутация уязвимостей. MetaSploit Framework

---

Практика 3: создание топологии в Eve-NG, состоящей из машин под управлением Kali-Linux (Debian), Windows 7 (имеющей уязвимости)и Windows 10. Использование MetaSploit для взлома Windows PC

---

## 1. Общая информация

Необходимая топология состоит из Internet-ноды, подключенному к нему фаерволу pfSense, свичу, подключенных к нему Win7, Win10 и Debian машин, а также Kali Linux на внешнем периметре.
![](https://i.imgur.com/gR41sB7.png)

Для дальнейшей работы необходимо настроить pfSense (проброс портов до Windows 7). На веб-интерфейсе фаервола в разделе Firewall --> NAT --> Port Forward создаем два правила:
* NAT IP: 192.168.1.102 (адрес Win7), Dest. Port: 4445, NAT Port: 445
* NAT IP: 192.168.1.102 (адрес Win7), Dest. Port: 3389, NAT Port: 3389

Также можно создать правило для ICMP трафика (для пингов), но это не необходимо.
![](https://i.imgur.com/GYWSR7x.png)
>правила в pfSense

Просканируем открытые порты нашего фаервола для получения информации об атакумой машине. Для этого на внешнем Kali Linux запускаем nmap:``` sudo nmap -A -sV --script=*vuln* 192.168.217.136 ```, где 192.168.217.136 - адрес pfSense. Используемые флаги:
* -A - Активация функции определения ОС и версии, сканирования с использованием скриптов и трассировку
* -sV - Исследование открытых портов для определения информации о службе/версии
* --script=*vuln* - Использование встроенного скрипта vuln для определения уязвимостей

```
Starting Nmap 7.91 ( https://nmap.org ) at 2022-04-29 17:26 MSK
Nmap scan report for 192.168.217.136
Host is up (0.0049s latency).
Not shown: 997 filtered ports
PORT     STATE SERVICE            VERSION
443/tcp  open  ssl/http           nginx
3389/tcp open  ssl/ms-wbt-server?
| rdp-vuln-ms12-020: 
|   VULNERABLE:
|   MS12-020 Remote Desktop Protocol Denial Of Service Vulnerability
|     State: VULNERABLE
|     IDs:  CVE:CVE-2012-0152
|     Risk factor: Medium  CVSSv2: 4.3 (MEDIUM) (AV:N/AC:M/Au:N/C:N/I:N/A:P)
|           Remote Desktop Protocol vulnerability that could allow remote attackers to cause a denial of service.
|           
|     Disclosure date: 2012-03-13
|     References:
|       http://technet.microsoft.com/en-us/security/bulletin/ms12-020
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0152
|   
|   MS12-020 Remote Desktop Protocol Remote Code Execution Vulnerability
|     State: VULNERABLE
|     IDs:  CVE:CVE-2012-0002
|     Risk factor: High  CVSSv2: 9.3 (HIGH) (AV:N/AC:M/Au:N/C:C/I:C/A:C)
|           Remote Desktop Protocol vulnerability that could allow remote attackers to execute arbitrary code on the targeted system.
|           
|     Disclosure date: 2012-03-13
|     References:
|       http://technet.microsoft.com/en-us/security/bulletin/ms12-020
|_      https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0002
4445/tcp open  microsoft-ds       Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
Service Info: Host: PC; OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 49.44 second
```

Nmap нашел следующие уязвимости через порт 3389:
* CVE-2012-0152 - MS12-020 Remote Desktop Protocol Denial Of Service Vulnerability
* CVE-2012-0002 - MS12-020 Remote Desktop Protocol Remote Code Execution Vulnerability
Порт 4445 позволил определить атакумую ОС.

Запускаем MetaSploit Framework при помощи ```msfconsole```. MetaSploit - программное обеспечение, включаеющее в себя уязвимости для различных ОС, а также различные способы их доставки и применения. С помощью ```show exploits/windows/``` можно посмотреть различные эксплоиты для Windows.
![](https://i.imgur.com/VUpmHin.png)
>есть уязвимости даже для баз данных

Попробуем атаковать Win7 машину при помощи уязвимости ms17-010, также известную как EternalBlue. Описание с сайта [threats.kaspersky.com](https://threats.kaspersky.com/ru/threat/Intrusion.Win.MS17-010.*/#:~:text=*,-%D0%93%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F%20%D0%A3%D0%B3%D1%80%D0%BE%D0%B7%D1%8B%20Intrusion&text=%D0%9B%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0%20Intrusion%2D%D0%B0%D1%82%D0%B0%D0%BA%20%D0%B7%D0%B0%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%B5%D1%82%D1%81%D1%8F%20%D0%B2,%D0%B8%20%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8%20%D0%BD%D0%B5%D1%81%D0%B0%D0%BD%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B9%20%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B9%20%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D1%81%D1%82%D0%B8.):


>  Server Message Block (SMB) – это сетевой протокол прикладного уровня, работающий через TCP-порты 139 и 445, которые широко используются для предоставления общего доступа к файлам и принтерам, а также для удаленного доступа к службам.
  Атака Intrusion.Win.MS17-010.* нацелена на компьютеры под управлением Windows и реализуется в попытке эксплуатировать уязвимости протокола SMB, которые были закрыты в бюллетене Microsoft Security Bulletin MS17-010 (https://technet.microsoft.com/en-us/library/security/ms17-010.aspx). Результатом успешной эксплуатации этих уязвимостей может стать удаленное выполнение кода на атакуемых компьютерах, что позволит злоумышленнику загрузить вредоносную программу и распространить ее на другие уязвимые узлы в сети.
  Успешно реализованная атака позволяет злоумышленнику удаленно выполнить код на атакуемых компьютерах, загрузить вредоносную программу и распространить ее на другие уязвимые узлы в сети.
  Эксплойты, нацеленные на уязвимости, закрытые в MS17-010, были использованы в атаках вирусов-вымогателей WannaCry и ExPetr.


Выполняем поиск при помощи ``` search eternalblue ``` и выбираем эксплойт.
![](https://i.imgur.com/ldiCbdm.png)

Для дальнейшей работы необходимо настроить параметры эксплойта. Их можно посмотреть с помощью ``` show options ```. Явно необходимыми являются только адрес и порт атакуемого узла, остальные параметры, такие как имя и пароль учетной записи, не обязательны. Настраиваем параметры при помощи ``` set rhost 192.168.217.136 ``` и ``` set rport 4445 ```.
![](https://i.imgur.com/i4ersmR.png)

Чтобы исполнить уязвимость, необходимо использовать ```run```. После этого MetaSploit "доставит" скрипт до атакуемого хоста и исполнит его. Если операция прошла успешно, скрипт выведет на экран "WIN" и MetaSploit позволит работать с машиной удаленно.
![](https://i.imgur.com/1CGgKkx.jpg)
>процесс отправки и применения скрипта

Попробуем получить скриншот рабочего стола при помощи команды ```screenshare```. Откроется окно браузера с трансляцией рабочего стола взломанного ПК:

![](https://i.imgur.com/9OcQ6rS.png)
>рабочий стол

Создать нового пользователя можно при помощи ```run getgui -u username -p pass```. По какой-то причине, MetaSploit выкидывает ошибки при исполнении операции, однако по факту пользователь уже создан.

![](https://i.imgur.com/6UgK5mz.png)
>создание пользователя с "ошибкой"

![](https://i.imgur.com/BxmjRXe.png)
>однако пользователь по факту уже есть

Далее будем делать проксирование при помощи MetaSploit. Задача заключается в перенаправлении трафика с атакованной машины на нашу Kali-Linux с целью дальнейшего исследования внутренней сети. В нашем случае попробуем получить доступ с Kali к pfSense. Так как в настройках pfSense активно правило подключения к фаерволу через HTTPS, Kali и так имеет к нему доступ - деактивируем правило.

![](https://i.imgur.com/g4vRGAu.png)
>деактивируем правило доступа к pfSense через HTTPS

![](https://i.imgur.com/xTgI2kg.png)
>убеждаемся, что Kali не имеет доступа к фаерволу

Для проксирования трафика используем протокол SOCKS5 (сетевой протокол сеансового уровня модели OSI, который позволяет пересылать пакеты от клиента к серверу через прокси-сервер). SOCKS есть в MetaSploit, настроим его таким образом, чтобы IP используемого сервера совпадал с локальным адресом (127.0.0.1) и запустим, чтобы процесс работал в фоне.

![](https://i.imgur.com/aymxHq4.png)
>SOCKS-сервер работает в фоновом режиме

Далее переходим к сессии с взломанным хостом и смотрим его интернет-соединения с помощью команды ```netstat```. Убеждаемся, что машина подключена ко внутреннему серверу с адресом ```192.168.217.136```, который и является pfSense.
![](https://i.imgur.com/bPfJNTo.png)
>в списке подключений есть psSense

Добавим перенаправление трафика с помощью ```route add 192.168.217.0 255.255.255.0 1```. Благодаря созданному маршруту, любые пакеты из подсети 192.168.217 первой сесси (взломанный хост) будут направляться на наш SOCKS-сервер.
![](https://i.imgur.com/RrhJ3Hh.png)
>создание маршрута

Последнее, что необходимо сделать - настроить Firefox для работы с нашим прокси-сервером. Для этого в настройках прописываем необходимый конфиг.
![](https://i.imgur.com/ADDKTK4.png)

Пробуем подключиться к pfSense - вуаля! Доступ получен при помощи проксирования трафика взломанного хоста.

![](https://i.imgur.com/JTKfV08.png)





