# Практическая работа №4 "Revers Shells & Reverse SSH connections" Выполнил студент группы БСБО-04-20: Люцько С.А. Проверил преподаватель: Садыков Ильдар Венерович **Москва 2023г.** --- ## Организация проброса портов внутрь инфраструктуры на локальное устройство Построим следующую топологию: ![](https://i.imgur.com/zY6MJ8t.png) **Задача:** работая с устройства Kali-2022, обойдя межсетевой экран, получить доступ к устройству из локальной сети за этим экраном (будет выполнено для устройства Win-10). Определим IP адреса интересующих нас устройств. **Win-10:** 192.168.1.102 ![](https://i.imgur.com/CQ7cbh9.png) **Kali-2022:** 192.168.10.129 ![](https://i.imgur.com/d6kh1nV.png) Попробуем организовать SSH подключение с Win-10 к Kali-2022. Для этого сперва откроем SSH на Kali-2022: ``` sudo sevice ssh start sudo systemctl enable ssh ``` ![](https://i.imgur.com/QDZeti8.png) И заодно разрешим удалённые подключение на Win-10: Настройки -> Система -> О системе -> Сведения о системе -> Настройка удалённого доступа Выставляем следующие настройки: ![](https://i.imgur.com/GD0LClZ.png) Подключимся Win-10 -> Kali-2022: ``` ssh user@192.168.10.129 ``` ![](https://i.imgur.com/TV3E4LB.png) Из результатов видим, что firewall не блокирует SSH подключение изнутри наружу. Подключимся Kali-2022 -> Win-10: ``` ssh user@192.168.1.102 ``` ![](https://i.imgur.com/oO7CTiN.png) Неудача. Организовать SSH подключение стандартным способом извне невозможно. Однако данное ограничение можно обойти путём проброса портов на локальное устройство. Для этого на устройстве Win-10 пропишем следующую команду: ``` ssh -R 3390:locahost:3389 user@192.168.10.129 ``` ![](https://i.imgur.com/F8HsuRW.png) Просмотрим список прослушиваемых портов на Kali-2022: ``` ss -tunlp ``` ![](https://i.imgur.com/p6wjBpp.png) Видим, что в списке имеется некий процесс на порту 3390. А теперь попробуем по RDP подключиться к локальному хосту на Kali Linux. ``` xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3390 ``` ![](https://i.imgur.com/x6Y4H9c.png) Успех! Мы получили доступ к Win-10 с Kali-2022: ![](https://i.imgur.com/yukxGQD.png) --- ## L3 туннелирование На данном этапе будет организовано SSH-туннелирование. Сперва изменим файл конфигурации (/etc/ssh/sshd_config) для того, чтобы это стало возможным. ``` nano /etc/ssh/sshd_config ``` Изменения следующие: ![](https://i.imgur.com/me1vYFV.png) ![](https://i.imgur.com/lxDYE62.png) Перезапустим SSH сервис: ``` service ssh restart ``` ![](https://i.imgur.com/Gl0Vo5h.png) Мы разрешили туннелирование и открыли возможность логиниться как root. Сменим пароль для root: ``` passwd root ``` ![](https://i.imgur.com/sxeTvQm.png) Включим устройство Debian и установим с него туннель ``` sudo -i ssh -w 0:0 root@192.168.10.129 ``` ![](https://i.imgur.com/e0B9C9e.png) На Linux-2022 же появился заветный tun интерфейс, однако на данный момент он выключен: ![](https://i.imgur.com/8Rr4v4A.png) Настроим его IP адрес и включим его на Kali-2022: ``` ip addr add 10.8.0.1/24 dev tun0 ip link set tun0 up ``` ![](https://i.imgur.com/J7hotKK.png) Теперь же настроим его IP адрес и включим его на Debian: ``` ip addr add 10.8.0.2/24 dev tun0 ip link set tun0 up ``` ![](https://i.imgur.com/9oYcOwS.png) Теперь же Debian пингуется с Kali-2022: ![](https://i.imgur.com/uT0jhMj.png) А вот сетка пока пинговаться не будет. Чтобы это исправить, включим маршрутизацию на Debian: ``` nano /etc/sysctl.conf ``` Вносим следующие правки: ![](https://i.imgur.com/ucBXCPC.png) Проверяем: ![](https://i.imgur.com/gtMtZ7C.png) Осталось на Kali-2022 настроить маршрут до сетки 192.168.1.0/24: ``` ip route add 192.168.1.0/24 via 10.8.0.2 ``` Теперь пинг проходит успешно! ![](https://i.imgur.com/BntjaNv.png) --- ## L2 туннелирование Перестроим топологию следующим образом: ![](https://i.imgur.com/NoaCNza.png) Теперь необходимо Debian-RPi4 сделать "мостовым" устройством: ``` apt update apt install bridge-utils nano /etc/network/interfaces ``` Вносим следующие правки: ![](https://i.imgur.com/uBewJy9.png) Перезапускаем networking ``` service networking restart ``` IP адреса успешно получены. **Debian-RPi4:** 192.168.1.106 ![](https://i.imgur.com/jOcdemi.png) **Win-7:** 192.168.1.108 ![](https://i.imgur.com/YJ2hoAu.png) **Win-10:** 192.168.1.107 ![](https://i.imgur.com/TrbN5VV.png) Используем утилиту tcpdump для перехвата трафика: ``` apt install tcpdump -y tcpdump -i br0 | grep ICMP ``` ![](https://i.imgur.com/y9GsKkH.png) Переходим к настройке туннеля. На Debian-RPi4: ``` ssh root@192.168.10.129 -o Tunnel=ethernet -w any:any ``` Тем временем на Kali-2022 и Debian-RPi4 появились новые интерфейсы tap0: ![](https://i.imgur.com/IVSUvP6.png) ![](https://i.imgur.com/15p1OKp.png) Поднимем эти интерфейсы на обоих устройствах, а на Debian-RPi4 добавим его в "мост". Debian-RPi4: ``` ip link set dev tap0 up brctl addif br0 tap0 ``` ![](https://i.imgur.com/k35g2FR.png) Kali-2022: ``` ip link set dev tap0 up ``` ![](https://i.imgur.com/BEbTfsm.png) Можно пробовать на Kali-2022 получить адрес по DHCP: ``` dhclient tap0 ``` ![](https://i.imgur.com/VXdylRv.png) Проверка: ![](https://i.imgur.com/BYacCmI.png) Успешно! Мы внутри сети! (и можем получить доступ, например, к pfSense) ![](https://i.imgur.com/AeYMomp.png) Утилита tcpdump теперь также отрабатывает на Kali-2022. ![](https://i.imgur.com/SgxDtEp.png)