###### tags: `Bypass` # ICMP-туннелирование Топология ![](https://i.imgur.com/YO7VPZi.png) *`У нас в сети разрешен только ping`* Загружаем утилиту icmp-туннелирования: ![](https://i.imgur.com/SRdxHey.png) ![](https://i.imgur.com/8VXV01h.png) Переименовываем папку, переходим в нее и собираем программу коммандной make: ![](https://i.imgur.com/vDmG8dv.png) Закидываем в папку выше: `mv hans ..` Передаем файл hans на машину внутри сети, которая клиент: ![](https://i.imgur.com/TQpaVFx.png) > На машине сервере запускаем ./hans -s 10.1.2.0 -p password ![](https://i.imgur.com/xZLyhoW.png) Как видим, создан туннель **tun0** На сервере: ![](https://i.imgur.com/0My1DUp.png) ![](https://i.imgur.com/URRdxc6.png) На клиенте: ![](https://i.imgur.com/shU0ocB.png) ![](https://i.imgur.com/umsXH42.png) ![](https://i.imgur.com/wOyPazn.png) По итогу, мы можем подключаться по ssh, когда изнутри разрешен только пинг ![](https://i.imgur.com/HBm7zNP.png) `Задача: сделать маршрутизатором машину клиента, чтобы все машины получали интернет через клиентскую машину:` Включаем форвардинг трафика на машине сервера: ![](https://i.imgur.com/Wi7BRhi.png) `nano /etc/resolv.conf - проверить чтобы прописан был nameserver 8.8.8.8` Прокидываем нат с tun0 на eth0: ![](https://i.imgur.com/kFQFw6D.png) ![](https://i.imgur.com/AzCnkdD.png) На машине клиента у нас туннель до 4.166, чтобы соединение не оборвалось, прописываем 4.166 шлюзом по умолчанию: ![](https://i.imgur.com/JEhpd9i.png) Прописываем на клиенте ip форвардинг: ![](https://i.imgur.com/XLTwFN1.png) Удаляем старый дефолтный маршрут: ![](https://i.imgur.com/jtHYPwh.png) Получилось: ![](https://i.imgur.com/PzXyOAN.png) связь с сервером осталась: ![](https://i.imgur.com/6iVPoke.png) Добавим адрес туннеля сервака как адрес шлюза по умолчанию: ![](https://i.imgur.com/JTg5F7p.png) Добавляем маршрут через созданный туннель, и интернет есть: ![](https://i.imgur.com/VZoZQiK.png) Теперь в качестве шлюза указываем адрес кали клиента и трафик будет маршрутизироваться через него по туннелю наружу.