usbmonkey
@usbmonkey

Как запустить spacy в cooked mode?

Привет.

Есть задача захватывать трафик с машинки. В качестве решения я использую scapy.
Хост сконфигурирован с двумя интрфейсами ethX и tunelX ( туннельный )

Оказалось, что tcpdump захватывает все пакеты по фильтру, а scapy - нет.
После небольшого расследования удалось выяснить. tcpdump, если указан интерфейс "any", запускается в режиме 'cooked mode', что означает, будет создан сокет типа SOCK_DGRAM. Это необходимо, так как в "тунельных пакетах" некоторая информация в link-layer может отсутствовать или присутствовать частично, что может не позволить определить тип пакета.
Действительно, если запустить strace на scapy-скрипт можно увидеть, что пакеты приходят в сокет, но не захватываются.

927689 recvfrom(3, "..some-data..."..., 65535, 0, {sa_family=AF_INET6, sin6_port=htons(53), inet_pton(AF_INET6, "...some address...", &sin6_addr), sin6_flowinfo=0, sin6_scope_id=0}, [28]) = 105
927689 recvfrom(3, "..some-data..."..., 32767, 0, {sa_family=AF_PACKET, proto=0x86dd, if4, pkttype=PACKET_HOST, addr(6)={1, 30d17e75727f}, [18]) = 246
927689 recvfrom(3, "..some-data..."..., 32767, 0, {sa_family=AF_PACKET, proto=0x86dd, if4, pkttype=PACKET_HOST, addr(6)={1, 30d17e75727f}, [18]) = 86
927689 recvfrom(3, "..some-data..."..., 32767, 0, {sa_family=AF_PACKET, proto=0x86dd, if4, pkttype=PACKET_HOST, addr(6)={1, 30d17e75727f}, [18]) = 86
927689 recvfrom(3, "..some-data..."..., 32767, 0, {sa_family=AF_PACKET, proto=0x86dd, if4, pkttype=PACKET_OUTGOING, addr(6)={1, 90e2ba55f6e8}, [18]) = 271


В дамп попал только последний пакет.

Собственно меня интересует несколько вопросов.
На сколько мое предположение верно и работает ли оно именно так как я описал?
К сожалению, я не очень представлю как можно посмотреть link-layer пакета, которые не попали в дамп. А смотреть на собранное tcpdump'ом тоже смысле нет, так как link-layer заголовки уже заменены. Поэтому теорию свою проверить не могу.

Как можно запустить scapy в 'cooked mode'? Ответов в документации я не нашел.
  • Вопрос задан
  • 82 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы