# Практика №4. Revers Shells & Reverse SSH connections ##
Выполнил студент группы БСБО-04-20 Зырянов Антон Дмитриевич.
## Задание к практической работе №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

## Выполнение практики
### Уровень L3
#### IP-адреса машинок:
Pf-sense: WAN 192.168.8.142, LAN 192.168.1.1

Kali: 192.168.8.131

Debian: 192.168.1.100

#### Настроим кали:
Настроим и включим SSH

По умолчанию, в некоторых системах Linux для суперпользователя root вход по SSH с использованием пароля не работает. При попытке подключиться можно увидеть сообщение «access denied» или «permission denied». Такая настройка необходима для обеспечения большей безопасности системе.
PermitRootLogin yes - разрешить подключаться по ssh к root пользователю

Параметр PermitTunnel разрешает использование перенаправления для устройств TUN и может принимать значения yes, point-to-point (3-й уровень модели OSI), ethernet (2-й уровень модели OSI) и no. Значение yes означает, что одновременно разрешается point-to-point и ethernet.

Настройка пароля для root

#### Создадим tap интерфейс
Создадим tun интерфейс и проверим, создался ли он на обоих машинках.



Настроим интерфейс на кали и включим его

Настроим интерфейс на дебиане и включим его

#### Настроим маршрутизацию

`ip route add 192.168.1.0/24 via 10.8.0.2`
#### Настроим NAT
Debian:
`iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE `
А теперь пропингуем внутренний интерфейс фаервола

### Уровень L2
Для начала нужно объединить оба интерфейса на debian машинке в один bridge интерфейс.
> Интерфейсы Bridge являются виртуальными сетевыми интерфейсами, которые объединяют несколько физических сетевых интерфейсов для выполнения функций коммутатора (физические интерфейсы, добавленные в коммутатор, становятся портами коммутатора)
> `apt install bridge-utils`
>
> `nano /etc/network/intefaces`
В настройках интерфейсов выставляются следующие значения:

Далее обновляется сеть.
> `service networking restart`
Можно проверить ip-адреса у windows машин.
Win-7: 192.168.1.103

Win-10: 192.168.1.102

Далее настраиваем ssh-туннель уровня L2 от debian до Kali:
> `ssh root@192.168.8.131 -o Tunnel=ethernet -w any:any`

Получение tap0 интерфейса на debian:

На Kali:

Теперь объединяем добавленный интерфейс в существующий bridge:
> `brctl addif br0 tap0`

Теперь нужно только включить интерфейс на обоих устройствах.
> `ip link set dev tap0 up`
Получим ip адрес внутренней сетки на tap0 интерфейс Kali

Доступ до внутреннего интерфейса фаервола получен.

### Настройка vlan
#### Pf-sense настройка для одного vlan
1) Создание самих VLAN-ов



2) Создание DHCP-сервера для VLAN-ов и по одному виртуальному интерфейсу 192.168.x.254 для каждого VLAN.


3) Создание правил на фаерволе для того, чтобы машины могли выходить в интернет


#### Далее настройка VLAN на switch
> e0/2# switchport mode access
> e0/2# switchport access valn 10
>
> e1/0# switchport mode access
> e1/0# switchport access vlan 20
>
> e0/0# switchport trunk encapsulation dot1q
> e0/0# switchport mode trunk
#### Проверка
Проверим - раздался ли адрес по dhcp для vlan10 и работает ли на машинках интернет
win-7


win-10


Проверить входящий трафик, чтобы увидеть, есть ли у него теги VLAN, можно используя tcpdump с параметром -e и vlan. Запустим утилиту с Kali, у которой появился доступ к внутренней сети.
> `tcpdump -i tap0 -nn -e vlan`
