Конфиг, чтобы сделать только пакет приема pcap
Я пытаюсь использовать pcap для изменения пакета перед отправкой. Например, у меня есть сервер (под управлением Ubuntu), прослушивающий порт 8000. Прежде чем он отправит SYN-ACK для входящего пакета SYN, я пытаюсь изменить SYN-ACK с помощью pcap.
Пока что я могу получить SYN-ACK, сгенерированный ОС, в pcap, изменить и отправить его. Но отправляются два пакета: (1) оригинальный пакет SYN-ACK, сгенерированный ОС, (2) модифицированный пакет pcap.
Я знаю, что это не удивительно, поскольку ОС отправляет копию пакета в pcap для обработки, а исходный пакет отправляется отдельно.
Когда я отбросил исходящий пакет SYN-ACK (сгенерированный ОС) с помощью iptables, я даже не смог получить SYN-ACK в pcap.
Мой вопрос: возможно ли отбросить оригинальный пакет SYN-ACK и отправить только модифицированный пакет pcap?
Спасибо!
1 ответ
Допустим, ваш целевой IP 8.8.8.8
На исходном хосте настройте маршрут следующим образом:
route 8.8.8.8 mask 255.255.255.255 gateway 192.168.1.254
Если IP-адрес шлюза находится в локальной сети и не существует (это не настоящая команда, используйте синтаксис, зависящий от используемого вами инструмента маршрутизации).
Затем добавьте запись arp:
arp -s 192.168.1.254 11:22:33:44:55:66
Теперь любые пакеты с хоста, предназначенного для 8.8.8.8, будут отправлены на этот mac-адрес и никуда не денутся.
Теперь вы можете перехватить пакет, внести изменения, но также изменить MAC-адрес назначения, чтобы он был MAC-адресом вашего маршрутизатора, чтобы он корректно выходил из строя. Ответные пакеты будут автоматически отправляться на сервер.