# Проникновение вовнутрь периметра инфраструктуры. В данной статье рассматриваются способы проникновения вовнутрь периметра инфраструктуры с использованием проброса портов, а также организации 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 и позволяющая перехватывать трафик между узлами, которые расположены в пределах одного широковещательного домена.*