---
# System prepended metadata

title: Практика №4. Проникновение за периметр инфраструктуры. Технология SSH Port forwarding / SSH Tunneling

---

# Практика №4. Проникновение за периметр инфраструктуры. Технология SSH Port forwarding / SSH Tunneling

## Подготовка стенда
Инфраструктура использую ту, которая была в практике №3 (рис. 1)

![](https://i.imgur.com/FmQpjbB.png)
<center> Рисунок 1. Инфраструктура </center>


---


## Reverse SSH connect
С помощью ssh я подключился к Kali через win-10 машинку (рис. 2).

![](https://i.imgur.com/uP7KRGM.png)
<center> Рисунок 2. Подключение к Kali </center>

Я еще раз подключился к kali через новый терминал (рис. 2.1), но в этом случае через порт RDP (3389). Kali видит этот порт (рис. 2.2).

![](https://i.imgur.com/G5nIOvk.png)
<center> Рисунок 2.1. Подключение к Kali </center>

![](https://i.imgur.com/QFlwd1g.png)
<center> Рисунок 2.2. Порты на linux машинке </center>


Я подключился с помощью xfreerdp к win-10 машинке. 
Команда: xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3395 (рис 2.3).

![](https://i.imgur.com/ARF1ZcI.png)
<center> Рисунок 2.3. xfreerdp </center>



![](https://i.imgur.com/C2KuhAK.png)
<center> Рисунок 2.4. Подключение к Kali </center>

![](https://i.imgur.com/DYnZqoo.png)
<center> Рисунок 2.5. Порты на Kali </center>


Подключился к win-7 машинке через kali. **Итог** можно с любой машинке во внутренней части сети пробрасывать любой порт к любой машинке.
Команда: xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3395 (рис 2.6).
![](https://i.imgur.com/gFF3LtL.png)
<center> Рисунок 2.6. Подключение к Win-7 </center>

## SSH tunneling L3
Туннелирование - построения сетей, при котором один сетевой протокол инкапсулируется в другой.

SSH tunneling нужна, чтобы иметь доступ ко всем машинкам в инфраструктуре. Сложная штука, для этого я сделал тоннель между Kali и Debian и настроил NAT на Debian машинке и маршрутизацию на Kali. 


На рисунке 3 видно, что я вошёл в ssh config, поставил "PermitRootLogin yes" и "PermitTunneling yes". На рисунке 3.1 видно, что я подключился к Kali машинке через Debian. На рисунке 3.3. показан, что появился tun0 интерфейс, но на нем нет ip адреса, на рисунке 3.4. добавляется ip адрес к tun0 интерфейсу. На debian тоже туннель поднял (рис. 3.5.). На рисунке 3.6. я с kali пропинговал 10.8.0.1/ 

Чтобы я с Kali мог пинговать FW на Debian я поставил на Debian NAT (рис. 3.7), видно, что FW пингуется (рис. 3.8).
К win-7 машинке подключился через туннель (рис. 3.9).

![](https://i.imgur.com/HplBC41.png)
<center>Рисунок 3. ssh root </center>

![](https://i.imgur.com/G1HA4Uc.png)
<center>Рисунок 3.1. Подключился к Kali машинке </center>

Коннект по ssh -w 0:0 root[ip kali] произошел (рис. 3.2.)

![](https://i.imgur.com/6IsFbSa.png)
<center>Рисунок 3.2. Коннект по ssh</center>

![](https://i.imgur.com/pg2rj8H.png)
<center>Рисунок 3.3. Есть tun0 интерфейс</center>

![](https://i.imgur.com/Qu8W7r1.png)
<center>Рисунок 3.4. Появился ip на tun0 интерфейсе</center>

![](https://i.imgur.com/3CFylh1.png)
<center>Рисунок 3.5. Появился ip на tun0 интерфейсе</center>

![](https://i.imgur.com/olVjC2k.png)
<center>Рисунок 3.6. ping 10.8.0.1</center>

![](https://i.imgur.com/JbxxXa8.png)
<center>Рисунок 3.7. NAT</center>

![](https://i.imgur.com/w5tkhH0.png)
<center>Рисунок 3.8. ping FW</center>

![](https://i.imgur.com/j6QOBMu.png)
<center>Рисунок 3.9. Подключение к win-7 машинке</center>

![](https://i.imgur.com/zT2Q8mD.png)
<center>Рисунок 3.10. Зашел в pfsens</center>


## SSH tunneling L2
Для туннелирования уровня L2 пришлось немного изменить инфраструктуру (рис. 4). 2 интерфейса - e0(ens3) и e1(ens4) стартуют, я их объединил в один интерфейс, чтобы они между собой пропускали трафик как делает коммутатор и получил ip еще (рис. 4.1). На рисунке 4.2 видно, что всё работает. На win-7 машинки всё работает, все ip получил, ping 8.8.8.8 пингуются через Debian-RPi4 (рис. 4.3).

Для создания туннеля уровня L2 надо установить ssh-соединение с дополнительными характеристиками.

ssh root@192.168.192.131 -o Tunnel=ethernet -w any:any

Флаг -o нужен для указания параметра файла конфигурации в cmd. Мы используем Tunnel=ethernet для настройки туннеля уровня L2. Флаг -w используется для указания интерфейсов.

![](https://i.imgur.com/hyp3XWx.png)
<center>Рисунок 4. Инфраструктура</center>

![](https://i.imgur.com/h7tId76.png)
<center>Рисунок 4.1. Конфиг</center>

![](https://i.imgur.com/qcJ4Efq.png)
<center>Рисунок 4.2. ip a</center>

![](https://i.imgur.com/ZFaU38h.png)
<center>Рисунок 4.3. ip a</center>

![](https://i.imgur.com/3ks4pQz.png)
<center>Рисунок 4.4. Создание туннеля</center>

![](https://i.imgur.com/MSbZHPJ.png)
<center>Рисунок 4.5. Интерфейс tap0 создался</center>

![](https://i.imgur.com/TC36PBL.png)
<center>Рисунок 4.6. Поднял интерфейсы</center>

![](https://i.imgur.com/FZrgSxA.png)
<center>Рисунок 4.7. Поднял интерфейсы на Kali</center>

![](https://i.imgur.com/tUBFd4W.png)
<center>Рисунок 4.8. Поднял ip на tap0</center>
