У меня нет базовых знаний о tshark, и мне трудно найти какое-либо руководство, которое помогло бы мне в этом.
Итак, теперь у меня есть файл pcap, который состоит из множества сетевых потоков; временной диапазон; IP-адрес; номер порта TCP; количество пакетов, отправленных ip addr ИЛИ количество пакетов, полученных ip addr.
Что я хочу сделать, так это то, что сначала я позволю tshark читать из этого файла pcap, а затем использовать временной диапазон для фильтрации всех сетевых потоков, которые находятся в этом временном диапазоне, а затем использовать ip-адрес для фильтрации всей сети потоки из этого IP-адреса в потоки, уже отфильтрованные по времени, а затем используйте номер порта TCP и количество пакетов, отправленных / полученных IP-адресом, чтобы наконец найти поток, который я хочу. Затем следуйте этому потоку / потоку и сохраните весь разговор в новый файл pcap.
Кто-нибудь может помочь? Я буду очень признателен.
Видеть инструмент для разделения файлов pcap по TCP-соединению?, то мне немного грустно, что я не могу найти для Linux ничего, что могло бы поддерживать PCAP в надлежащей форме и фильтровать по потокам. Если вы можете сделать это, не сосредотачиваясь на потоках, тогда tshark будет уважать все обычные tcpdump (ссылка в формате pdf) фильтры. Прочтите в дампе и установите -w output
флаг и фильтры, и вы получите более компактный файл.
Что я хочу сделать, так это сначала позволить tshark читать из этого файла pcap, а затем использовать временной диапазон для фильтрации всех сетевых потоков, которые находятся в этом временном диапазоне.
Вы должны сделать это с editcap
:
$ editcap -A "2011-07-12 09:49:16" -B "2011-07-12 09:49:20" in.pcap out.pcap
а затем используйте ip addr, чтобы отфильтровать все сетевые потоки из этого ip addr, а затем использовать номер порта tcp и количество пакетов, отправленных / полученных ip addr, чтобы наконец найти поток, который я хочу.
$ tshark -r out.pcap -R "ip.addr == $IP && tcp.port == $PORT"
Затем следуйте этому потоку / потоку
$ tshark -r out.pcap -R "ip.addr == $IP && tcp.port == $PORT" \
-T fields -e ip.src -e tcp.srcport -e ip.dst -e tcp.dstport | \
while read line; do tshark -r out.pcap \
-R "ip.addr == `echo $line | awk '{ print $1 }'` && \
tcp.port == `echo $line | awk '{ print $2 }'` && \
ip.addr == `echo $line | awk '{ print $3 }'` && \
tcp.port == `echo $line | awk '{ print $4 }'`" \
echo \
done