URL Sniffing в Python - PullRequest
       17

URL Sniffing в Python

5 голосов
/ 25 марта 2011

Кто-нибудь знает, как написать анализатор данных в реальном времени на Python, который извлекает исходный IP-адрес и полный URL-адрес, к которому осуществлялся доступ? Я посмотрел на получение данных из urlsnarf, однако IPv6 не поддерживается (и соединения будут с хостами IPv6).

Хотя я могу извлекать данные из tcpdump и greping для GET / POST, я бы просто оставил путь к веб-серверу, и я не получил бы связанное FQDN. К сожалению, использование SQUID с IPv6 TPROXY недоступно из-за конфигурации среды.

У кого-нибудь есть идеи, как это сделать с привязками Python для libpcap? Ваша помощь будет наиболее ценится:)

Спасибо:)

1 Ответ

2 голосов
/ 27 марта 2011

К сожалению, с IPv6 вы застряли, выполняя собственную сборку TCP.Хорошая новость в том, что вас интересуют только URL-данные, которые (как правило) должны быть в одном или двух пакетах.

Вы можете обойтись без использования pylibpcap для этого.Вы захотите использовать setfilter на вашем объекте pcap, чтобы убедиться, что вы смотрите только на TCP-трафик.По мере продвижения в цикле pcap вы будете применять некоторые регулярные выражения HTTP к полезной нагрузке.Если у вас есть что-то похожее на HTTP-трафик, попробуйте разобрать заголовок, чтобы получить данные URL.Надеюсь, вы получите полный URL с разрывом строки до конца пакета.Если нет, вам придется выполнить небольшую упрощенную повторную сборку TCP.

О, и вы захотите использовать socket.inet_ntop и socket.getaddrinfo для вывода информации о хосте IPv6.

...