Tshark из комплекта сниффера Wireshark (http://www.wireshark.org/) позволяет наглядно проследить запросы к http-серверу.Пример для интерфейса eth0:
tshark -npi eth0 -f 'tcp and dst port 80' -R "http.request.method" -T fields -e ip.src -e ip.dst \
-e http.request.method -e http.host -e http.request.uriЗа одним можно автоматически найти имя интерфейса в Linux и удалить временные файлы, которые программа обычно забывает удалять.
Для Linux:
tshark -npi `netstat -rn | grep "^0.0.0.0" | awk '{ print $8 }'` \
-f 'tcp and dst port 80' -R "http.request.method" -T fields -e ip.src \
-e ip.dst -e http.request.method -e http.host -e http.request.uri
rm -f /tmp/ether*Для FreeBSD:
tshark -npi `netstat -rn | grep "default" | awk '{ print $6 }'` \
-f 'tcp and dst port 80' -R "http.request.method" -T fields -e ip.src \
-e ip.dst -e http.request.method -e http.host -e http.request.uri
rm -f /tmp/ether*
URL: http://www.faq.lv/idx.php/0/182/article/
Обсуждается: http://www.opennet.me/tips/info/2301.shtml
ИМХО urlsnarf из пакета dsniff удобнее.
А на виртуально интерфейсе urlsnarf пробовали запускать?
И как? Информативненько?
Ну а мне больше в графическом режимe удобнее:ssh user@host 'sudo tshark -f "port !22" -w -' | sudo wireshark -k -i -
А в чём великая сермяжная правда, если не секрет?
Чем это отличается от sudo wireshark -i eth0 -f "port \!22" -k
> А в чём великая сермяжная правда, если не секрет?
> Чем это отличается от sudo wireshark -i eth0 -f "port \!22" -kЭто для локальной тачки) если есть доступ руками... но что-же делать когда есть только ssh
ssh user@host 'sudo tshark -f "port !22" -w -' | sudo wireshark -k -i -тут автор коннектится к удалённой тачке user@host пускает там от рута 'tshark -f "port !22" -w -' и передаёт данные со стандартного вывода к себе на wireshark. в итоге получается удалённая гуи
>> А в чём великая сермяжная правда, если не секрет?
>> Чем это отличается от sudo wireshark -i eth0 -f "port \!22" -k
> Это для локальной тачки) если есть доступ руками... но что-же делать
> когда есть только ssh
> ssh user@host 'sudo tshark -f "port !22" -w -' | sudo wireshark
> -k -i -
> тут автор коннектится к удалённой тачке user@host пускает там от рута 'tshark
> -f "port !22" -w -' и передаёт данные со стандартного вывода
> к себе на wireshark. в итоге получается удалённая гуиУх, экий никрофилизм ;)
Полностью согласен, с одним "но" - лучше вместо тшарка использовать страрый-добрый tcpdump ибо он есть везде
... 'sudo /usr/sbin/tcpdump -w - (-nl по вкусу) -i eth0 -s 0' | wireshark ....Спасибо!
еще могу ngrep порекомендовать - крайне универсальная тулза, для всех текстовых протоколов.
Гм.# ngrep -d ppp0
interface: ppp0 (х.х.х.х/255.255.255.255)
fatal: unsupported interface type 113