Восстановление данных из PCAP снифф - PullRequest
12 голосов
/ 27 мая 2010

Я пытаюсь прослушать данные HTTP через libpcap и получить все содержимое http (заголовок + полезная нагрузка) после обработки полезной нагрузки TCP.

В соответствии с моим обсуждением на Написание сниффера http (или любого другого анализатора уровня приложения) , я сталкиваюсь с проблемами из-за фрагментации - мне нужно восстановить весь поток (или дефрагментировать его), чтобы получить полный HTTP-пакет, и здесь мне нужна помощь.

Спасибо в ожидании !!

Ответы [ 4 ]

9 голосов
/ 27 мая 2010

Это действительно довольно просто. Просто возьмите кадры Ethernet, которые вы получаете от pcap, и извлеките из них IP-пакеты, собрав все фрагментированные. Затем измените порядок сегментов TCP из IP-пакетов в соответствии с порядковыми номерами, обратив внимание на то, что вы отбрасываете любые дублирующиеся данные. Затем обработайте поток как поток HTTP. Конечно, HTTP не приходит в пакетах; это протокол прикладного уровня, но я уверен, что это станет очевидным, как только вы сделаете всю эту другую работу. При выполнении всех этих действий обращайте внимание на контрольную сумму заголовков IP и сегментов TCP, чтобы убедиться, что ваши данные верны. Кроме того, если pcap пропустит какие-либо пакеты, убедитесь, что вы справились с этим соответствующим образом.

Чтобы помочь вам в стеке Linux Linux *, 1004 * должен предоставить краткую ссылку на этот процесс, происходящий в ядре.

5 голосов
/ 27 мая 2010

Вместо того, чтобы собирать потоки самостоятельно, вы можете использовать tcptrace для повторной сборки файла pcap. Я верю, что -e сделает это.

Когда у вас есть данные уровня приложения в одной части, вы можете применить простой синтаксический анализ заголовка HTTP .... Perhps из библиотеки, такой как http://github.com/ry/http-parser

2 голосов
/ 30 мая 2012

Лучший инструмент для восстановления содержимого http из файлов pcap - justniffer . Он использует ядро ​​linux для фрагментации IP и переупорядочения пакетов TCP.

2 голосов
/ 09 мая 2011

Для восстановления данных, содержащихся в файле pcap, замечательным инструментом является Xplico: http://www.xplico.org

...