###### tags: `HackerU-CIT`
# CSB-3 - №4
CSB-3._12.07.2021_Cyber Infrastructure Threats
[Оглавление курса](https://hackmd.io/Yp9g_F6sTE-0ED_uwyM2tw#CSB-3_12072021_Cyber-Infrastructure-Threats)
* [Занятие 4. Tunnel: OpenVPN L3, DHCP PfSense](https://hackmd.io/RuKHGIfSTm2AlYh2yXCRcg?both)
[Базовый курс Linux](https://www.opennet.ru/docs/RUS/linux_base/)
#### Настройка сервера OVPN
`ip -c a`
`nano /etc/network/interfaces`
*auto ens3*
*iface ens3 inet dhcp*
`systemctl restart networking.service`
`ip -c a` + UP
`ping ya.ru` +
`nano /etc/hostname`
*OVPN-SRV*
`nano /etc/hosts`
*127.0.0.1 OVPN-SRV*
`reboot` +
`apt update`
`apt upgrade`
Устанавливаем OVPN
[angristan/openvpn-install](https://github.com/angristan/openvpn-install)
`apt install curl`
`curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh`
`chmod +x openvpn-install.sh`
`./openvpn-install.sh`
#### [Инструкция по настройке сервера OpenVPN L3](https://hackmd.io/SXriUctpT1OrKurFfyjP3w?view)
DNS cat /etc/resolv.conf
###### Error:
IPv6 Repositoriy

**disable ipv6 debian**
РЕшение
Добавить в nano /etc/sysctl.conf строки
Issue the command sysctl -w net. ipv6. conf. all. disable_ipv6=1.
Issue the command sysctl -w net. ipv6. conf. default. disable_ipv6=1.
sysctl -p
root@kali-Security:~# apt update
**GPG error: http://mirror-1.truenetwork.ru/kali kali-rolling InRelease**
РЕшение
wget 'https://archive.kali.org/archive-key.asc'
apt-key add archive-key.asc
**scp root@<ip вашего OpenVPN Servera>:/root/kali.ovpn /root**
`scp root@172.30.51.31:/root/kali.ovpn /root`
scp root@IP-SRV:/root/kali.ovpn ./kali.conf
/etc/openvpn/server.conf
nano /etc/openvpn/server.conf
убираем push-и
перезапускаем сервер ovpn
root@OVPN-SRV:~# systemctl restart openvpn
root@OVPN-SRV:~# systemctl status openvpn
закоментировали в файле kali.conf insider.conf
#explicit-exit-notify
#ignore-unknown-option block-outside-dns
#setenv opt block-outside-dns # Prevent Windows 10 DNS leak
запускаем ovpn на клиентах
`openvpn --config kali.conf`
подтверждение соединения
*Initialization Sequence Completed*
запущенная консоль держит соединение нужна ещё одна консоль
запускаем дублирующую консоль проверяем доступ второго адреса на тунельном интерфейсе
**добавляем в конфиг сервера OVPN**
`nano /etc/openvpn/server.conf`
*client-to-client*
`service openvpn restart`
**Настроили DHCP PfSense**
**Добавляем маршрут от кали внутрь**
root@kali-Security:~# ip route add 192.168.100.0/24 via 10.8.0.2
root@kali-Security:~# ip route list
default via 172.30.51.254 dev eth0 proto dhcp metric 100
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.3
172.30.51.0/24 dev eth0 proto kernel scope link src 172.30.51.75 metric 100
192.168.100.0/24 via 10.8.0.2 dev tun0
На лине внутри
nano /etc/resolv.conf
namesrver 8.8.8.8
apt install tcpdump
tcpdump -i tun0
есть трафик но невидно сети за хостом, нужно править client content directory на сервере.
Для того, чтобы сервер мог роутить пакеты в сеть за клиентом необходимо выполнить следующие шаги.
Переходим в наш openvpn server и создаем файл следующей командой (с названием клиентам, сеть за которым мы хотим видеть, у меня insider)
> **nano /etc/openvpn/ccd/insider**
Список клиентов на сервере OVPN **tail -n 50 /var/log/openvpn/status.log**
В данный файл добавляем следующую команду:
***iroute 192.168.100.0 255.255.255.0***
После этого сохраняем конфиг и выходим (Ctrl+X, затем клавиша y).
Также, необходимо отметить, что для возможности подключения атакующего клиента в инфраструктуру атакуемого, необходимо прописать маршрут до адреса сети этой инфраструктуры через атакуемого клиента, сделать это можно командой **ip route add 192.168.100.0/24 via 10.8.0.3** (вводить в консоли атакующего, то есть kali, адресация нужна ваша, брать с адресации атакуемого клиента).
НО, данную команду необходимо будет вводить при каждом подключении к openvpn серверу. Поэтому для решения данной проблемы заставим сервер передавать маршрут нужному клиенту при его подключении, для этого создаем следующий файл (если у вас клиент не **kali** то указывайте свой):
> **nano /etc/openvpn/ccd/kali**
В данный файл добавляем следующую команду:
***push "route 192.168.100.0 255.255.255.0 10.8.0.3"***
ip route add 192.168.100.0/24 via 10.8.0.3
root@OVPN-SRV:/etc/openvpn/ccd# nano /etc/openvpn/ccd/kali
root@OVPN-SRV:/etc/openvpn/ccd# systemctl restart openvpn
Как видим, после настройки пинги выполняются. Но попробуем обратиться к другим устройствам внутри данной инфраструктуры, например к маршрутизатору 192.168.100.254.
> ping <ip маршрутизатора атакумого клиента>
Как видим общения не получается. Для того чтобы можно было обращаться внутрь сети, необходимо, чтобы функцию NAT на атакуемом клиенте. Для этого заходим на атакуемый клиент и выполняем следующие команды:
**nano /etc/sysctl.conf**
*net.ipv4.ipforward=1*
Применяем изменения в конфигурации:
**sysctl -p**
А теперь, заставим клиент натить трафик через себя, для этого будем использовать утилиту iptables, которая управляет встроенным файерволом linux машин (уже включена в ОС по умолчанию), добавляем правило для nat, которое будет через интерфейс tun перенаправлять трафик внутрь инфраструктуры:
**iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE**
Попробуем снова пропинговать адрес маршрутизатора 192.168.100.254.
Как видим пингуется. Значит, нам удалось получить доступ внутрь инфраструктуры за VPN Client. Таким образом мы можем просканировать сеть за клиентом любым удобным способом.