Назад | Перейти на главную страницу

Как использовать tshark для выполнения этой задачи

У меня нет базовых знаний о 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