# **Практика №6. OpenVPN L2 - туннелирование** ## **Подготовка стенда** Network bridge (Сетевой мост) - сетевое устройство, предназначенное для объединения сегментов сети передачи данных в единую сеть **OpenVPN L2** нужна для создания сетевого соединения на канальном уровне (уровень L2) между 2 удалёнными сетями. Так же сервисы L2 VPN обычно используются для построения корпоративных сетей в рамках одного города, потому что OpenVPN L2 прокладывает Ethernet-мост между 2 удалёнными сетями и, таким образом, устройства (подключённые к мосту) могут обмениваться данными напрямую, потому что находятся в рамках одного localhost. Инфраструктуру взял из практики №5. ![](https://i.imgur.com/dcu8pQR.png) <center>Рисунок 1. Инфраструктура</center> --- ## OpenVPN L2. Tunneling внутрь корпоративной инфраструктуры Для начала создал папку revers-shells на машинке Kali-Lunux (mkdir <название папки>). В этой папке я создаю revers-shell подключение (рис. 2). * **Payload** - штука, которая запускается на машинке жертвы и она будет выполнять какой-то первичный код для того, чтобы заполучить первоначальный доступ. * **Execute** - это выполнение этого кода, чтобы сделать revers-shell подключение. ![](https://hackmd.io/_uploads/S15nzkF4h.png) <center>Рисунок 2. Создание папки revers-shells</center> На рисунке 2.1. показаны все найденные уязвимости (payloads), их всего 553 штуки. ![](https://hackmd.io/_uploads/Hk_wugF4h.png) <center> Рисунок 2.1 show payloads</center> Для начала надо сменить tun0 интерфейс (с которым работал в практике №5) на tap0 интерфейс. tap0 (tap-bridge) отличается от tun0 (tunnel) тем, что он работает на уровне L2, нужен для eth-соединений между машинками. Зашёл в server.config, закоментировал dev tun и добавил dev tap (рис. 3). Так же я зашёл в RPi4 и тоже самое закомментировал dev tun и добавил dev tap (рис. 3.1). Поднялся интерфейс tap0 на RPi4-тачке (рис. 3.2.). Так же tap0 интерфейс появился на Kali Linux (рис. 3.3). С помощью команды **dhclient tap0** я передал ip на tap0 интерфейс (рис. 3.4.). Я выполнил команду **set LHOST [ip eth0]**, можно указать в нем все **нули**, но я указал свой **ip адрес** и в этом случае он "слушает" только на этом интерфейсе. Так же запустил команду **run**, чтобы он запустился и можно было работать (рис. 3.5.). ![](https://hackmd.io/_uploads/r1UnBWFEn.png) <center>Рисунок 3. sudo nano server.conf</center> ![](https://hackmd.io/_uploads/BkiPvbKE2.png) <center>Рисунок 3.1. nano/etc/openvpn/client.conf</center> ![](https://hackmd.io/_uploads/HJAbdWKV2.png) <center>Рисунок 3.2. Интерфейс tap0 на Debian-RPi4-тачке</center> ![](https://hackmd.io/_uploads/rylEYbtNh.png) <center>Рисунок 3.3. Интерфейс tap0 на Kali Linux</center> ![](https://hackmd.io/_uploads/rkEpYWFV2.png) <center>Рисунок 3.4. ip на tap0</center> ![](https://hackmd.io/_uploads/r1_V2WFE3.png) <center>Рисунок 3.5. LHOST</center> Создал на kali-тачке файл .exe, чтобы его можно было открыть на компе жертвы и была возможность установить revers соединение (рис. 3.6). Так же на рисунке 3.6. видно, что я запустил простейшую python3 команду, чтобы этот файл можно было скачать с браузера. Действительно, его можно скачать с браузера, на рисунке 3.7. показано, что я зашёл с win-10 тачки, ввёл в браузере ip eth0 и открылась страница, с которой можно скачать файл reverse.exe. На рисунке 3.8. видно, что я скачал файл reverse.exe, помимо него есть скаченный файл meterpreter с практики №3. Запустил файл reverse.exe на win-10 машинке и у меня появился доступ с kali-linux до win-10 машинки, я прописал такие команды как **sysinfo**, **whoami** для того, чтобы определить свои права на этой машинке (рис 3.9.) ![](https://hackmd.io/_uploads/S1GmnzFEh.png) <center>Рисунок 3.6. Создал файл reverse.exe</center> ![](https://hackmd.io/_uploads/B1iKnzYV3.png) <center>Рисунок 3.7. Файл reverse.exe в браузере на win-10 тачке</center> ![](https://hackmd.io/_uploads/r1Y40MKE2.png) <center>Рисунок 3.8. Скаченный файл reverse.exe</center> ![](https://hackmd.io/_uploads/BJqOWmYEn.png) <center>Рисунок 3.9. Доступ к win-10 тачке</center> На рисунке 4 видно, что я запустил search smbghost. Это один из видов пост эксплуатации. Эту штуку можно использовать локально, то есть, когда получили доступ до локальной машинки, мы фактически являемся там локальными, мы можем запустить всё что угодно. Я решил попробовать эту штуку и выбрал экслоит **use 0** и посмотреть опции **show options**. ![](https://hackmd.io/_uploads/HJGUmQK4n.png) <center>Рисунок 4. smbghost</center>