Разбор TCP пакетов снова вместе - PullRequest
0 голосов
/ 02 февраля 2020

Я работаю над инструментом, который берет файл pcap (в данном случае из wireshark) и пытается проанализировать данные из пакетов TCP.

Теперь в этом случае я забочусь только о данных в одном направлении. Таким образом, моя логика c состояла в том, чтобы отсортировать каждый перехваченный пакет Wireshark в список по протоколу-destIP-sourceIP-destPort-sorcePort.

Итак, с этого момента у меня теперь есть список только пакетов для одного Направление на конкретный порт.

Оттуда я просто хочу иметь возможность пройти по телам полезных нагрузок TCP по порядку. это так же просто, как и затем упорядочить порядковые номера?

Я бы просто взял первый захваченный порядковый номер, добавил к нему размер полезной нагрузки и ожидал, что это будет следующий отправленный пакет TCP? Есть ли еще что-то, чего мне не хватает?

Я заметил, что сортируя интерфейсы таким образом, в конце концов я бы пришел к последовательности, которая не имеет смысла. Думаю, я могу предположить, что это начало следующего потока? Я знаю, что это становится более трудным, если мне приходится рассматривать трафик c, идущий туда-сюда ... но в этом случае я хочу смотреть пакеты только в одном направлении.

1 Ответ

0 голосов
/ 02 февраля 2020

Wireshark захватывает пакет на проводе. Может случиться, что пакеты не поступают в последовательном порядке, что пакеты повреждены (неверная контрольная сумма), что есть повторяющиеся пакеты ... - и это игнорирует возможные атаки, призванные запутать анализ. Стек TCP позаботится обо всех этих проблемах, чтобы приложение получало нужные пакеты, но Wireshark работает за пределами стека TCP. Таким образом, хотя в большинстве случаев ваша простая процедура, скорее всего, будет работать (при условии, что вы хотя бы проверите флаги TCP для начала и конца соединения), в некоторых случаях она может завершиться неудачей.

...