# Практика №4. Revers Shells & Reverse SSH connections
## Построить инфраструктуру в системе EVE-NG (есть возможность ее импортировать)
Была импортирована инфрастуктура в pnte-lab.

---
## Настроить каждое устройство в соответсвии со следующими параметрами:
* Kali-2021, Win-7, Win-10, Debian - получение адреса DHCP
* устройство RPi-4 - использовать как “мостовое” устройство (необходимо для SSH tunneling L2)
Так же необходимо было настроить VLAN'ы. Устройство с Windows 7 Должно находиться в 10 влане, а устройство с Windows 10 в 20 влане.
Настройка вланов бужет производиться на pfsense с устройства устройства с Windows. Для этого в браузере нужно открыть ip-адрес межсетевого экрана и во вкладке Interfaces выбрать vlans, в котором эти вланы необходимо создать.


После их создания нужно добавить их на интерфейсы.

Затем в правиоах нужно добавить статическую конфигурацию с указанием маски 24 для каждого влана.

Затем в настройках dhcp сервера для каждого интерфейса нужно нажать галочку на его разрешение на интерфейсе и указать диапазон адресов.



И под конец в фаерволле нужно настроить правила,в котором нужно выбрать соответствующий интерфейс для каждого влана.

На этом настройка вланов на pfsense закончена.
Затем необходимо настроить вланы на Switch. Открыв его и прописав команды ena и conf t, был произведен переход в конфигурационный режим. Далее были созданы 10 и 20 вланы.

Затем на интерфейсах они были подняты. Интерфейс e0/2 идет к устройству с win 7, а интерфейс e0/3 ведет к устройству c win 10.

Затем на интерфейсе e0/0, который идет к устройству с Debian, настраивается транковый мод, чтобы через него шли тегированные кадры всех вланов.

Далее нужно открыть Debian и с помощью команды dhclient он должен получить ip-адрес.

Затем нужно установить пакет bridge-utils, который понадобится для создания моста.

Далее нужно перейти в файл /etc/network/interfaces с помощью редактора nano, в котром необходимо настроить интерфейсы и мост, который нужен для соединения различных сегментов сети.

Как видно, мост поднялся и интерфейсы настроены.

### **Reverse SSH**
Для проведения удаленного подключения Kali Linux к устройству с Windows 10, будет использован Debian для создания тоннеля.
Для этого нужно нужно прописать команду `ssh -R 3395:172.16.20.12:3389 user@192.168.186.130`
где -R означает удаленное подключение, 3395 - любой выбранный порт, 172.16.20.12 - ip-адрес windows 10, 3389 - порт подключения, user - Имя пользователя, 192.168.186.130 - ip адрес устройства с Kali Linux. Как видно, оно произошло успешно и подключение к кали линуксу произошло.

Так же необходимо включить на Windows 10 удаленный рабочий стол, чтобы можно было к ней подключиться.

Далее с помощью команды `sudo xfreerdp /u:user /p:eve@123 /v:127:0.0.1:3395` нужно подключиться удаленно к устройству с Windows 10. Подключение проходит успешно.


В отдельном окне открывается рабочий стол.

### **L3-туннелирование**
Для осуществления L3 Туннелирования, нужно сначала включить ssh для проведения туннелирования.

Затем нужно открыть файл /etc/ssh/sshd.config и нужно включить PermitTunnel для туннелирования и PermitRootLogin Для лоигрования от рута.



Далее нужно перезапустить ssh и поставить пароль для root, у которого изначально не было пароля в системе, с помозью команды passwd root.

На Debian нужно поднять туннель, используя флаг -w, где 0:0 номера интерфейсов на локальной и удаленной машине. В качестве ip адреса используется ip адрес кали линукса

Введя на кали команду ip a, можно убедиться, что появился тоннель tun0, который раннее был создан.

Далее, чтобы концы тоннеля могли содеиниться, нужно добавить ip адреса. На kali linux буде добавлен ip адрес 10.8.0.1 на интерфейс tun0.

Затем он поднимается командой ip link set tun0 up. И как можно заметить, он перешел в состояние Unknown, что уже не DOWN.

Соответственно, аналогичным образом нужно поднять тоннель и на Debian машине.

Так же добавляется ip 10.8.0.2 на интерфейс tun0, а затем поднимается. Все проходит успешно.


Затем нужно прописать статическую маршрутизацию, чтобы новый ip адрес на Debian так же был известен в локальной сети.

Далее следует добавить сеть вланов, т.к. это другие сети и о них могут не знать. Можно проверить, что все успешно добавилось командой ip route.


Так же необходимо ввести на дебиане следующую команду, которая будет шифровать адреса при выходе в Интернет.

Чтобы подключиться к windows 10 на ней стоит выключить всю защиту. После чего можно к ней подключатьсяю через xfreeerdp, указа в качестве логина user, пароля eve@123, ip-адрес windows 10 и порт.


После подключения открывается отдельное окно, транслирующее все, что происходит на рабочем столе Windows 10. Таким образом, туннелирование L3 уровня прошло успешно.

### **L2-туннелирование**
Для начала нужно проверить как проходит пинг на Windows 10. Для этого можно воспользоваться командой tcpdump с grep ICMP, который будет смотреть только пинги протокола ICMP.
**tcpdump** - инструмент командной строки, который способен перехватывать и анализировать сетевой трафик.

На wi10 нужно начать пинговать восьмерки, и, как видно, tcpdump их успешно отображает.


Для создания тоннеля необходимо использовать ssh с указанием ip адреса устройства, с которым этот тоннель будет создан, в нашем случай ip адрес кали линукса, флаг -o указывает, что будет использоваться канальный уровень L2, akfu -w создаст любой локальный и удаленный порт.

далее сочетанием клавиш открыв новое окно ctrl + alt + f2 и убедиться, что был создан интерфейс tap0.

Так же интерфейс tap0 был создан и на кали линуксе.

Далее командой brctl show можно посмотреть bridge-интерфейсы на устройстве. Как видно, созданный интерфейс необходимо добавить.

Добавляется это командой drctl add br0 tap0. Интерфейс был успешно добавлен.

Теперь этот интерфейс нужно поднять командой ip link set dev tap0. Поднимается он успешно.

Аналогично поднимается на кали линуксе.

Для получения ip адреса на интерфейсе, нужно прописать dhclient tap0.

Теперь можно запустить tcpdump на кали линукс, он определяет протокол DTP.

С помощью протокола CDP было обнаружено устройство Switch, которое как раз присутствует в сети в инфрастуктуре. А так же можно увидеть активность на межсетевом экране pfsense.

