Практика №7. Скрытое туннелирование ICMP, DNS === ## Выполение задания Инфраструктура: ![](https://hackmd.io/_uploads/ryMZLGBB3.png) ### ICMP server Переходим на Kali-Машину и установим необходимые зависимости: ![](https://hackmd.io/_uploads/HkRwER7r3.png) Узнаем ip-адрес: ![](https://hackmd.io/_uploads/Bk7jq0XSn.png) Создадим папку icmp, склонируем репу и перейдем в нее: ![](https://hackmd.io/_uploads/rkAZH0QBh.png) Скомпилируем проект: ![](https://hackmd.io/_uploads/rkHrHCQS2.png) Запустим hans сервер командой `./hans -s 10.1.2.0 -p q123`: ![](https://hackmd.io/_uploads/SyCo8AXB3.png) Командой `ip a` видим что интерфейс поднялся: ![](https://hackmd.io/_uploads/HJ5lvC7H3.png) ### ICMP client Переходим на Debian-машину и установим необходимые зависимости: ![](https://hackmd.io/_uploads/B1PP_RQH3.png) Склонируем репу: ![](https://hackmd.io/_uploads/HkqxFAmr3.png) Переходим в директорию и собираем проект: ![](https://hackmd.io/_uploads/B1_vKAQrh.png) Запустим hans клиент и подключимся к серверу (Kali) командой `./hans -c 192.168.198.133 -p q123` ![](https://hackmd.io/_uploads/HJP7sCQSh.png) Командой `ip a` видим что интерфейс поднялся: ![](https://hackmd.io/_uploads/S14oiRXrn.png) Командой пинг на Сервере проверяем соединение с Клиентом: ![](https://hackmd.io/_uploads/r1NQ2R7Hh.png) Также можно подключиться по ssh: ![](https://hackmd.io/_uploads/Skk52RQB3.png) Захват ICMP-трафика в Wireshark: ![](https://hackmd.io/_uploads/ryYDWk4r3.png) ### Простое DNS-туннелирование Переходим на Kali-Машину и устанавливаем необходимые зависимости: ![](https://hackmd.io/_uploads/BygWU7yVB2.png) Переходим на Debian-Машину и устанавливаем необходимые зависимости: ![](https://hackmd.io/_uploads/Sk0PEkEH3.png) Запуск сервера (`sudo iodined -P q123 10.99.99.1/24 -c i.example.com`): ![](https://hackmd.io/_uploads/ByJfS1VB3.png) Переходим на клиент и редактируем resolv.conf, в качестве nameserver устанавливаем ip сервера (`nano /etc/resolv.conf`): ![](https://hackmd.io/_uploads/r1MyL-4Bn.png) Запуск клиента (`iodine -P q123 i.example.com`): ![](https://hackmd.io/_uploads/ryRsUZVH3.png) Узнаем ip на интерфейсе клиента(`ip a`): ![](https://hackmd.io/_uploads/r1KZDW4r3.png) Командой пинг на Сервере проверяем соединение с Клиентом: ![](https://hackmd.io/_uploads/SJh4D-Erh.png) Также можно подключиться по ssh: ![](https://hackmd.io/_uploads/BkfawZVr2.png) Захват DNS-трафика в Wireshark: ![](https://hackmd.io/_uploads/S1TFYbNr2.png) ### Сложное DNS-туннелирование #### Настройка DNS-server-internal Настройка ip-адреса DNS-серверу: ![](https://hackmd.io/_uploads/B1zYGBVB3.png) Настройка имени DNS-сервера: ![](https://hackmd.io/_uploads/rkIDI44H2.png) Изменение даты: ![](https://hackmd.io/_uploads/ry5H_VVSn.png) Добавление роли DNS-сервера: ![](https://hackmd.io/_uploads/HkDztVEBh.png) Добавление в форвардеров ip-адрес внешнего DNS-сервера: ![](https://hackmd.io/_uploads/Skc2Br4Hn.png) Проверка работоспособности: ![](https://hackmd.io/_uploads/B10XQH4r2.png) #### Настройка DNS-server-external Настройка имени DNS-сервера: ![](https://hackmd.io/_uploads/HyzFcVNBh.png) Изменение даты: ![](https://hackmd.io/_uploads/ByNM1rVr2.png) Добавление роли DNS-сервера: ![](https://hackmd.io/_uploads/H1aEVBEHn.png) Добавление в форвардеров ip-адрес DNS Yandex: ![](https://hackmd.io/_uploads/H1_e_rNr3.png) Проверка работоспособности на сервере: ![](https://hackmd.io/_uploads/H1coOH4Hn.png) Проверка работоспособности на клиенте: ![](https://hackmd.io/_uploads/rkoYtSVBn.png) #### Настройка запрета любого трафика, кроме DNS: Редактируем resolv.conf на Kali внутри сети: ![](https://hackmd.io/_uploads/HkeoQTNH2.png) Ответ от внутреннего DNS-сервера: ![](https://hackmd.io/_uploads/Sy7bE64r2.png) Ответ от google DNS-сервера: ![](https://hackmd.io/_uploads/ryHDNTEH3.png) Добавим правило, которое бы разрешало только трафик внутреннего DNS-сервера: ![](https://hackmd.io/_uploads/H1DSLaESh.png) Также отключим правило, чтобы не было выхода в интернет: ![](https://hackmd.io/_uploads/HykmwTNrh.png) Убедимся, что теперь запрещен любой трафик, кроме внтутреннего DNS: ![](https://hackmd.io/_uploads/ryZ6wp4B2.png) ![](https://hackmd.io/_uploads/SJrXOpEBn.png) Делегирование DNS-зоны: Заходим на внешюю Kali-машину и узнаем ip: ![](https://hackmd.io/_uploads/Hy1tYpEB2.png) Добавим DNS зону: ![](https://hackmd.io/_uploads/Ska2cTVH3.png) Добавим запись, которая, будет перенаправлять на внешний DNS сервер: ![](https://hackmd.io/_uploads/Syc1n6Vr2.png) Добавим запись, которая, будет перенаправлять на внешнюю Kali машину: ![](https://hackmd.io/_uploads/BkVRhTNr2.png) Добавляем tunnel как delegate зону: ![](https://hackmd.io/_uploads/r1dSyCEB3.png) Итого: ![](https://hackmd.io/_uploads/r1t-MREr2.png) Проверка работоспособности: ![](https://hackmd.io/_uploads/HksJm1BSh.png) Проверим tunnel: ![](https://hackmd.io/_uploads/SykUEJSBn.png) Настроим сервер: ![](https://hackmd.io/_uploads/SkGPS1SHh.png) Отредактируем sysctl.conf: ![](https://hackmd.io/_uploads/BJSpdJSSn.png) Результат: ![](https://hackmd.io/_uploads/ByEGY1rSn.png) Ввведем команду iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE - она изменяет исходный адрес пакетов на адрес хоста, через который они отправляются: ![](https://hackmd.io/_uploads/BkaA6bBSh.png) Настроим клиент: ![](https://hackmd.io/_uploads/rkSXIkSr2.png) Проверим соединение: ![](https://hackmd.io/_uploads/Sk-U8JSHh.png) Изменим дефолтный путь через dns интерфейс внешней машины: ![](https://hackmd.io/_uploads/SyY38JrHh.png) Проверка соединения: ![](https://hackmd.io/_uploads/H1ZS-MBH2.png) Захватим DNS трафик: ![](https://hackmd.io/_uploads/BkBBhbrrh.png) Вход на сайт: ![](https://hackmd.io/_uploads/H1FhnZHrn.png)