выбор основных потоков сразу в огромном pcap в wireshark

у меня есть большой pcap с более чем 1000 потоков tcp. я хочу отфильтровать основные потоки, скажем, с пакетами больше 100. если я перейду к разговорам и щелкну правой кнопкой мыши по этим потокам, я смогу отфильтровать эти потоки, но тогда мне придется делать это несколько раз, и, поскольку у меня огромный pcap, он может превысить 100. Есть ли какой-либо другой фильтр быстрого отображения, который я могу использовать, который даст мне потоки, имеющие количество пакетов > n (n - любое целое число +ve).

скажите какой-нибудь фильтр, например:

flow.num_pkt > 100

который может дать мне все такие потоки.

большое спасибо,

Любая помощь будет оценена.


person mezda    schedule 17.04.2012    source источник
comment
Требуется ли Wireshark? Это очень просто — фильтровать журналы подключений Bro.   -  person mavam    schedule 18.04.2012
comment
@MatthiasVallentin: спасибо за ответ. Не могли бы вы сообщить мне, есть ли у Bro все функции wireshark? Есть ли у него какие-то другие функции? это бесплатно ? еще раз большое спасибо.   -  person mezda    schedule 23.04.2012
comment
Bro и Wireshark — совершенно разные звери. Bro — это мощный фреймворк для сетевого анализа, который вы можете создавать по своему усмотрению. Однако он не предоставляет графический интерфейс, такой как Wireshark. Bro является бесплатным программным обеспечением и поставляется с лицензией в стиле BSD.   -  person mavam    schedule 23.04.2012


Ответы (1)


Bro — удобный инструмент для анализа, ориентированного на подключение. Чтобы узнать количество пакетов на поток, вы просто запускаете Bro на трассировке и извлекаете значение из логов:

bro -r trace.pcap
bro-cut id.orig_h id.orig_p id.resp_h id.resp_p orig_pkts resp_pkts < conn.log \
    | awk '$5+$6 > 100 {print $1,$2,$3,$4,$5,$6}' \
    | sort -rn -k 5 \
    | head

Это дает следующий результат:

192.168.1.105 49325 137.226.34.227 80 73568 146244
192.168.1.105 49547 198.189.255.74 80 16764 57098
192.168.1.105 49531 198.189.255.74 80 5186 14843
192.168.1.105 49255 198.189.255.73 80 4749 32164
192.168.1.104 1422 69.147.86.184 80 2657 2656
192.168.1.105 49251 198.189.255.74 80 2254 13854
192.168.1.1 626 224.0.0.1 626 2175 0
192.168.1.105 49513 198.189.255.82 80 2010 3852
192.168.1.103 2026 151.207.243.129 80 1953 2570
192.168.1.105 49330 143.166.11.10 64334 1514 3101

Инструмент bro-cut поставляется вместе с Bro и предоставляет удобный способ извлечения определенных именованных столбцов из журналов. Для этой задачи вам нужно:

  • id.orig_h: IP инициатора соединения (источник)
  • id.orig_p: Порт транспортного уровня инициатора соединения (источник).
  • id.resp_h: IP ответчика соединения (назначения)
  • id.resp_p: порт транспортного уровня ответчика соединения (источник).
  • orig_pkts: количество пакетов, отправленных отправителем.
  • resp_pkts: Количество пакетов, отправленных ответчиком

Обратите внимание на выражение фильтра awk:

awk '$5+$6 > 100 {print ...}'

Он ограничивает вывод теми подключениями, общее количество пакетов которых превышает 100.

Если у вас нет пакетов фиксированного размера, я рекомендую вам также изучить другие показатели, такие как размер пакета (полезная нагрузка IP или TCP). Их легко найти в журналах подключений через столбцы orig_bytes и resp_bytes.

person mavam    schedule 23.04.2012
comment
Спасибо за ответ. после того, как я отфильтрую основные потоки, я хочу сохранить их в новом файле pcap. возможно ли это с братаном или каким-то образом в wireshark, как я спрашивал ранее, или в любом другом инструменте. - person mezda; 24.04.2012
comment
Это нетривиально в текущей версии Bro 2.0, но новая структура захвата пакетов в грядущей версии 2.1 должна упростить эту задачу. - person mavam; 24.04.2012
comment
Обратите внимание, что сегодня contents.bro предоставляет вам довольно похожие функции: он записывает поток байтов транспортного уровня (т. е. полезную нагрузку приложения) в файл. Подробности см. в этом вопросе. - person mavam; 03.05.2012