3

Я пишу частичное переопределение TCP для целей обучения, используя Scapy. Мой TCP server.py не получает возможности отвечать на сообщения SYN, отправленные ему, потому что ядро отвечает на них в первую очередь (OSX 10.10.5). Я прочитал справочную страницу pf.conf но не похоже, что есть опция для создания правила, которое фильтрует пакеты из пространства ядра, но не из пространства пользователя (к сожалению, похоже, что linux iptables предоставляет такую возможность, QUEUE).

Я пробовал следующее правило pf , но оно фильтрует пакеты напрямую (как из ядра, так и из моего приложения). Я хочу сказать, что я не вижу пакета с портом dest 3000 в wireshark.

Правило ПФ:

block drop quick on lo0 proto tcp from any to any port = 3000

Команда nmap используется для генерации SYN:

nmap 192.168.1.12 -p 3000

Как я могу заставить ядро передавать TCP-пакеты в пространство пользователя, ничего не делая?

1 ответ1

0

Мой друг:

Машина назначения совпадает с машиной отправителя? Если это так, перефразируйте nmap, чтобы использовать петлевой IP-адрес следующим образом:

nmap -P0 -sT 127.0.0.1 -p 3000

Обратите внимание на дополнительные параметры. Затем, перефразируйте правило pf и добавьте его для выхода:

pass in quick on lo0 tcp from any to any 
pass out quick on lo0 tcp from any to any 

Если это работает, сожмите правило pf следующим образом:

pass in quick on lo0 tcp from 127.0.0.1 to 127.0.0.1
pass out quick on lo0 tcp from 127.0.0.1 to 127.0.0.1 

Если это не работает, проверьте pf, чтобы увидеть, были ли какие-либо пакеты сопоставлены с обоими правилами.

Надеюсь это поможет.

F.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .