Экспорт данных pcap в csv: метка времени, байты, восходящая / нисходящая линия связи, дополнительная информация - PullRequest
10 голосов
/ 11 ноября 2011

Мне было интересно, есть ли какой-нибудь инструмент, который может анализировать данные pcap и преобразовывать их в csv-файл со следующей информацией:

отметка времени, байты, восходящая / нисходящая связь, некоторая дополнительная информация ..

По сути, восходящая / нисходящая линия может быть видна по IP / MAC-адресу, и дополнительная информация на самом деле не нужна, но я имею в виду, например, выбор конкретного поля пакета.

Я пробовал некоторые инструменты, но пока не нашел подходящего.В противном случае я напишу небольшой парсер.Заранее спасибо!

Ответы [ 7 ]

16 голосов
/ 11 ноября 2011

TShark
Вот несколько примеров:

$ tshark -r test.pcap -T fields -e frame.number -e eth.src -e eth.dst -e ip.src -e ip.dst -e frame.len > test1.csv

$ tshark -r test.pcap -T fields -e frame.number -e eth.src -e eth.dst -e ip.src -e ip.dst -e frame.len -E header=y -E separator=, > test2.csv

$ tshark -r test.pcap -R "frame.number>40" -T fields -e frame.number -e frame.time -e frame.time_delta -e frame.time_delta_displayed -e frame.time_relative -E header=y > test3.csv

$ tshark -r test.pcap -R "wlan.fc.type_subtype == 0x08" -T fields -e frame.number -e wlan.sa -e wlan.bssid > test4.csv

$ tshark -r test.pcap -R "ip.addr==192.168.1.6 && tcp.port==1696 && ip.addr==67.212.143.22 && tcp.port==80" -T fields -e frame.number -e tcp.analysis.ack_rtt -E header=y > test5.csv

$ tshark -r test.pcap -T fields -e frame.number -e tcp.analysis.ack_rtt -E header=y > test6.csv
3 голосов
/ 28 февраля 2013

Не смотри дальше, Wireshark - твой лучший друг. Он может открыть ваш файл pcap и позволить вам указать дополнительные столбцы, которые вы хотите. После этого вы можете просто экспортировать их как CSV. На главном интерфейсе просто прямо на любом из столбцов и выберите «предпочтение столбца» Это открывает новое окно, которое очень интуитивно понятно. Просто добавьте новый столбец и укажите имя поля. Так просто.

Я пробовал tshark, но поверьте мне, это становится немного раздражающим, особенно с этим:

 tshark: Read filters were specified both with "-R" and with additional command-line arguments."

Это сообщение появляется, если вы включили слишком много столбцов или по неизвестной причине.

2 голосов
/ 11 апреля 2012

Похоже, вы хотите Bro журналы подключений:

bro -r trace.pcap
head conn.log

Выход:

#separator \x09
#set_separator  ,
#empty_field    (empty)
#unset_field    -
#path   conn
#fields ts  uid id.orig_h   id.orig_p   id.resp_h   id.resp_p   proto   service duration    orig_bytes  resp_bytes  conn_state  local_orig  missed_bytes    history orig_pkts   orig_ip_bytes   resp_pkts   resp_ip_bytes
#types  time    string  addr    port    addr    port    enum    string  intervacount    count   string  bool    count   string  count   count   count   count
1258531221.486539   gvuu4KIHDph 192.168.1.102   68  192.168.1.1 67  udp -   0.163820    301 300 SF  -   0   Dd  1   329 1   328
1258531680.237254   6nWmFGj6kWg 192.168.1.103   137 192.168.1.255   137 udp dns 3.780125    350 0   S0  -   0   546 0   0
1258531693.816224   y2lMKyrnnO6 192.168.1.102   137 192.168.1.255   137 udp dns 3.748647    350 0   S0  -   0   546 0   0

Теперь проанализируем соответствующие поля:

bro-cut ts id.orig_h id.orig_p id.resp_h id.resp_p service orig_bytes resp_bytes < conn.log | head

1258531221.486539   192.168.1.102   68  192.168.1.1     67  -   301 300
1258531680.237254   192.168.1.103   137 192.168.1.255   137 dns 350 0
1258531693.816224   192.168.1.102   137 192.168.1.255   137 dns 350 0
1258531635.800933   192.168.1.103   138 192.168.1.255   138 -   560 0
1258531693.825212   192.168.1.102   138 192.168.1.255   138 -   348 0
1258531803.872834   192.168.1.104   137 192.168.1.255   137 dns 350 0
1258531747.077012   192.168.1.104   138 192.168.1.255   138 -   549 0
1258531924.321413   192.168.1.103   68  192.168.1.1     67  -   303 300
1258531939.613071   192.168.1.102   138 192.168.1.255   138 -   -   -
1258532046.693816   192.168.1.104   68  192.168.1.1 67  -   311 300
0 голосов
/ 14 мая 2019

Здесь представлен инструмент python, позволяющий разделить pcap на потоки и вывести извлеченные объекты в файл CSV

Попробуйте использовать инструмент threads_to_weka в python

Для этого требуется версия scapy, установленная в вашей системе, и лучше скопировать папку scapy в папку weka.И скопируйте файлы wfe.py, tcp_stream.py и entropy.py в папку scapy.После того, как вы это сделали, ваш текущий каталог должен выглядеть примерно так:

C:\Users\INKAKA\flows_to_weka\scapy

, скопируйте файл .pcap в эту папку и попробуйте запустить эту команду:

$python  wfe.py -i input.pcap -t csv > output.csv

, и вы также можетеПолучить нужные вам функции, добавив необходимые функции в tcp_stream.py и wfe.py.

Для справки вы можете посетить: https://github.com/fichtner/flows_to_weka

0 голосов
/ 18 апреля 2016

Возможно ли, что мы можем установить разделитель полей, кроме запятой?Потому что в моем файле PCap, если я установил разделитель =, мои данные в выходном файле (.csv) выглядят не очень хорошо, потому что в большинстве моих столбцов они есть.

Итак, я хочу знатьто есть мы можем установить разделитель полей, как и другие символы, т. е. |(pip) и т. д.

Спасибо

0 голосов
/ 28 мая 2013

Вы можете сделать это из самого приложения Wireshark:

  • Убедитесь, что вы уже сохранили файл на диск (File>Save) (если вы просто сделал захват)
  • Перейти к File>Export Packet Dissesctions>as "CSV" [etc]
  • Затем введите имя файла (убедитесь, что вы добавляете .csv в конце, поскольку WS не делает сделай это!)

Voila

0 голосов
/ 11 ноября 2011

Как отмечено в комментариях к вопросу, для вывода ip-адресов для кадров в файле захвата в формате csv используйте что-то вроде:

tshark -r <filename> -t fields -e ip.addr

См. Справку tshark для получения дополнительной информации об опциях для установки.разделитель и символы кавычек в выводе csv.

Имена полей можно определить, используя Wireshark для проверки файла захвата и выбора конкретного поля в области сведений.Имя поля будет показано в строке состояния в нижней части окна Wireshark.

...