Виявлення сеансів HTTP за допомогою tcpdump [закрито]


0

У мене є файл простеження, і я хочу знайти всі веб-сервери, які були успішно відвідані в трасі, з якими зв’язувались через HTTP.

Я використовую:

tcpdump -r file.trace - tcp  port 80

Можливо, мені доведеться шукати список IP-серверів, які надсилають мені пакети відповідей (я маю на увазі ті, які створюють зі мною сеанси HTTP). Просто сервери, а не інші TCP-з'єднання. Тобто, мені потрібні IP-адреси сервера, які відповідають на запити HTTP та надсилають відповіді HTTP.

Як я міг це зробити?


Якщо користуватися графічним інтерфейсом простіше, пам’ятайте, що багато інструментів можуть читати ці файли захоплення, зокрема Wireshark
Rich Homolka

@RichHomolka так, я знаю, що, але мені потрібен tcpdump.
Араш

Я не розумію вашого зауваження щодо видалення дефісу. Як це не вдається, якщо ви виймете його?
тинк

Я хочу знайти всі веб-сервери, які були успішно відвідані у трасі (тобто зв’язалися через HTTP). Включіть будь-які сервери, які займаються дійсним екземпляром протоколу HTTP, навіть якщо повернутий код статусу був, наприклад, 404, а не 200.
Араш,

Залишається питання: як це не вдається?
Скотт

Відповіді:


2
tcpdump -r file.trace - tcp dst port 80

, як ви виявили, не є дійсною командою tcpdump. Якщо ви вилучите зайве -, то отримаєте

tcpdump -r file.trace tcp dst port 80

що є дійсною командою tcpdump, яка показуватиме вам лише трафік до порту TCP 80. Він не показуватиме вам трафік з порту TCP 80, тому, наприклад, якщо file.traceтрафік HTTP до і з порту 80, він покаже вам HTTP-запит трафіку, але НЕ HTTP-відповіді.

Якщо ви хочете бачити трафік до порту 80 та з нього, використовуйте

tcpdump -r file.trace tcp port 80

Однак якщо трафік TCP, крім трафіку HTTP, до порту 80 або від нього, він також буде показаний.

Крім того, трафік HTTP, який не йде до порту 80, або такий, як трафік HTTP-over-SSL / TLS ("https"), або трафік до портів, таких як порт 8080, не відображатимуться. Наприклад, щоб побачити трафік на порт 80 або з нього (для HTTP) і порт 443 (для HTTPS), зробіть

tcpdump -r file.trace tcp port 80 or 443

Отже, що "не працює"?

Чи не відображається, наприклад, трафік HTTPS? Якщо так, вам потрібно додати порт 443.

Чи не відображається трафік до інших портів? Якщо так, потрібно також додати ці порти. Tcpdump не може розпізнати трафік HTTP (а Wireshark розпізнає його лише за номером порту).

Чи відображається лише запити, а не відповіді? Якщо ви хочете побачити відповіді, tcp portскоріше використовуйте tcp dst port. Якщо ви тільки хочете побачити запити, використовувати tcp dst port.


tnx для вашої відповіді, але я хочу отримати список ips серверів, які надсилають мені пакети відповідей (я маю на увазі ті, які створюють зі мною сеанси HTTP). я маю на увазі просто сервери, а не інші TCPconnections.how я можу це зробити?
Араш

я маю на увазі, що мені потрібні IP-адреси сервера, які відповідають на http-запит і надсилають http-відповідь back.write this ips in file
Arash

І в чому проблема? Це не має нічого спільного з командою tcdump, вона працює як розроблено. Ваша проблема, очевидно, після обробки даних ...
розмірковуйте

Тобто, tcpdump не призначений для відображення списків IP-адрес, він призначений для показу розсічень пакетів. Якщо ви хочете перетворити їх у списки IP-адрес, вам потрібно обробити висновок tcpdump або скористатися іншим інструментом.

@GuyHarris гаразд. Як я можу виявити дійсні сесії http?
Араш
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.