# 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 на внешнем периметре.

Для дальнейшей работы необходимо настроить 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 трафика (для пингов), но это не необходимо.

>правила в 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.

>есть уязвимости даже для баз данных
Попробуем атаковать 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 ``` и выбираем эксплойт.

Для дальнейшей работы необходимо настроить параметры эксплойта. Их можно посмотреть с помощью ``` show options ```. Явно необходимыми являются только адрес и порт атакуемого узла, остальные параметры, такие как имя и пароль учетной записи, не обязательны. Настраиваем параметры при помощи ``` set rhost 192.168.217.136 ``` и ``` set rport 4445 ```.

Чтобы исполнить уязвимость, необходимо использовать ```run```. После этого MetaSploit "доставит" скрипт до атакуемого хоста и исполнит его. Если операция прошла успешно, скрипт выведет на экран "WIN" и MetaSploit позволит работать с машиной удаленно.

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

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

>создание пользователя с "ошибкой"

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

>деактивируем правило доступа к pfSense через HTTPS

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

>SOCKS-сервер работает в фоновом режиме
Далее переходим к сессии с взломанным хостом и смотрим его интернет-соединения с помощью команды ```netstat```. Убеждаемся, что машина подключена ко внутреннему серверу с адресом ```192.168.217.136```, который и является pfSense.

>в списке подключений есть psSense
Добавим перенаправление трафика с помощью ```route add 192.168.217.0 255.255.255.0 1```. Благодаря созданному маршруту, любые пакеты из подсети 192.168.217 первой сесси (взломанный хост) будут направляться на наш SOCKS-сервер.

>создание маршрута
Последнее, что необходимо сделать - настроить Firefox для работы с нашим прокси-сервером. Для этого в настройках прописываем необходимый конфиг.

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