<h1>Практическая работа №4. Reverse Shells & Reverse SSH connections</h1>
# Задание к практической работе №4
- Построить инфраструктуру в системе EVE-NG (есть возможность ее импортировать)
- Настроить каждое устройство в соответсвии со следующими параметрами:
- Kali-2021, Win-7, Win-10, Debian - получение адреса DHCP
- устройство RPi-4 - использовать как “мостовое” устройство (необходимо для SSH tunneling L2)
Kali-2021:
Для просмотра сетевых настроек вводим команду `ip a`:

Как видим, мы уже получили ip адрес на этой машине
Debian:
Точно также вводим `ip a`:

Видим, что в этом случае мы не получили ip автоматически
Запрашиваем ip адрес от DHCP сервера (используя команду `dhclient`):

Настроим debian машину - сделаем её "мостовым" устройством, используя ens3 и ens4:
Введём команду ``sudo nano /etc/network/interfaces`` и отредактируем файл следующим образом:

Далее перезагрузим сеть с помощью команды ``sudo service networking restart`` и получим следующий результат в ``ip a``:

Теперь мы можем спокойно получить ip адрес на windows машинах:
Windows 7:

Windows 10:

Теперь переходим в Kali машину и открываем конфиг командой ``sudo nano /etc/ssh/sshd_config``:
Разрешаем авторизацию через root'а, добавив строку PermitRootLogin yes, включим PermitTunnel (в строке PermitTunnel yes), а также включим переадресацию портов для SSH (в строке AllowTcpForwarding yes)
После внесения изменений в файлик, перезапустим службу ssh командой `sudo service ssh restart`
Теперь Kali машинка настроена и мы можем приступать к Debian машинке:
Пропишем следующую команду: `sudo ssh root@192.168.149.131 -o Tunnel=ethernet -w any:any`
Подключаемся в качестве root пользователя к Kali машинке:

Теперь введя команду `ip a` на дебиан, мы увидим новый интерфейс tap0:

Как можно заметить, интерфейс выключен, поэтому включим его командой `ip link set dev tap0 up`
Результат:

Добавим этот интерфейс в наш мост br0 с помощью команды `brctl addif br0 tap0`
Проверим наш мост, введя команду `brctl show`:

Теперь проделаем то же самое на Kali машинке:
Результат:

Получаем ip адрес по dhcp для tap0 с помощью команды `sudo dhclient tap0`:

Теперь мы имеем доступ ко внутренней инфраструктуре и можем спокойно делать всё что только захотим
Например, пинг внутреннего IP фаервола:

Ну или можем зайти в панель управления pfsence


**Port Forwarding:**
Зайдём в Windows 10 и подключимся по ssh к Kali машинке:

Создадим второе подключение командой `ssh -R 3395:localhost:3389 user@192.168.149.131`

Теперь мы будем перенаправлять трафик из локального порта 3395 на удалённый порт 3389
Проверим порты на Kali командой `ss -tunlp`

Теперь подключаемся к удалённому рабочему столу Win-10 используя команду `xfreerdp /u:admin /p:eve@123 /v:127.0.0.1:3395`

Теперь проводим те же самые манипуляции с Win-7:
Создаём ssh сессию:

Вводим команду `xfreerdp /u:admin /p:eve@123 /v:127.0.0.1:3395` и подключаемся к удалённому экрану win-7:

**Туннелирование L3**
Теперь нашей задачей является создание интерфейса туннеля между Debian и Kali
Изменим конфиг сетевых интерфейсов в Debian
Вводим `sudo nano /etc/network/interfaces`

Создадим интерфейс tun0 с помощью команды `sudo ssh -w 0:0 root@192.168.149.131:`

Смотрим `ip a` на Debian:

Видим новый интерфейс tun0
Теперь в Kali linux надо добавить ip на соответствующий интерфейс:
`ip addr add 10.8.0.1/24 dev tun0`
Поднимем интерфейс `sudo ip link set tun0 up`
Результат:

Производим такие же действия в Debian, дав разве что другой адрес интерфейсу:

Теперь включаем ip forward на debian
`sudo nano /etc/sysctl.conf`

Добавим маршрут на kali машинку:

На debian введём команду, чтобы изменить исходный адрес пакетов на адрес хоста, через который они отправляются:
`sudo iptables -t nat -A POSTROUTING -o br0 MASQUERADE`
Теперь мы получили доступ к панели управления pfsence на Kali машинке:
