Как пользоваться tcpdump

How to capture the HTTP packets being transmitted between Webserver and Application server both GET & POST?

In cases, where you have check the HTTP traffic between webserver and application server.  you can use tcpdump to diagnose and troubleshoot the issue. It will be helpful for many middleware administrators.

By this you can make sure that the  websphere proxy plugin (or) weblogic proxy plugin is forwarding the HTTP calls properly. In fact, you can also see to which managed server (or) node the call is going and what data is being transmitted

Let’s suppose this is your environment

WebServer IP 192.168.10.4
AppServer IP 192.168.10.6
AppServer Listen Port 18001

You can run the following command at the application server  to accomplish your requirement

tcpdump -i any -s 0 -A 'tcp dst port 18001 and tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420 or tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504F5354 or tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x48545450 or tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x3C21444F and host 192.168.10.4'

Ключи

ключ описание
-a Преобразовывает сетевые и широковещательные адреса в доменные имена.
-e Отображает данные канального уровня (MAC-адрес, протокол, длина пакета). Помимо IP-адресов будут отображаться MAC-адреса компьютеров.
-F файл Использовать фильтр, находящийся в файле. Если вы используете этот параметр, фильтр из командной строки будет игнорироваться.
-i Указывает на то, какой сетевой интерфейс будет использоваться для захвата пакетов. По умолчанию — eth0, для выбора всех интерфейсов — any. Если отсутствует локальная сеть, то можно воспользоваться интерфейсом обратной связи lo.
-l Использовать стандартный потоковый вывод tcpdump (stdout), например для записи в файл:

shell# tcpdump -l | tee out.log //отобразит работу tcpdump и сохранит результат в файле out.log
-N Не добавляет доменное расширение к именам узлов. Например tcpdump отобразит ‘net’ вместо ‘net.library.org’
-n Отображает IP-адрес вместо имени хоста.
-nn Отображает номер порта вместо используемого им протокола.
-p Не переводит интерфейс в режим приема всех пакетов (promiscuous mode).
-q Выводит минимум информации. Обычно это имя протокола, откуда и куда шел пакет, порты и количество переданных данных.
-r Этот параметр позволяет tcpdump прочесть трафик из файла, если он был предварительно сохранен параметром -w.
-S Позволяет не обрабатывать абсолютные порядковые номера (initial sequence number — ISN) в относительные.
-s число Количество байтов пакета, которые будет обрабатывать tcpdump. При установке большого числа отображаемых байтов информация может не уместиться на экране и её будет трудно изучать. В зависимости от того, какие цели вы преследуете, и следует выбирать значение этого параметра. По умолчанию tcpdump захватывает первые 68 байт (для SunOS минимум 96 байт), однако если вы хотите увидеть содержимое всего пакета, используйте значение в 1514 байт (максимально допустимый размер кадра в сети Ethernet).
-t Не отображает метку времени в каждой строке.
-T тип Интерпретация пакетов заданного типа. Поддерживаются типы aodv, cnfp, rpc, rtp, rtcp, snmp, tftp, vat, wb.
-tt Отображает неформатированную метку времени в каждой строке.
-tttt Показывает время вместе с датой.
-v Вывод подробной информации (TTL; ID; общая длина заголовка, а также его параметры; производит проверку контрольных сумм IP и ICMP-заголовков)
-vv Вывод ещё более полной информации, в основном касается NFS и SMB.
-vvv Вывод максимально подробной информации.
-w файл Сохраняет данные tcpdump в двоичном формате. Преимущества использования данного способа по сравнению с обычным перенаправлением в файл является высокая скорость записи и возможность чтения подобных данных другими программами, например snort, но этот файл нельзя прочитать человеку. Возможен вывод двоичных данных на консоль, для этого необходимо использовать -w —
-x Делает распечатку пакета в шестнадцатеричной системе, полезно для более детального анализа пакета. Количество отображаемых данных зависит от параметра -s
-xx То же, что и предыдущий параметр -x, но включает в себя заголовок канального уровня
-X Выводит пакет в ASCII- и hex-формате. Полезно в случае анализа инцидента связанного со взломом, так как позволяет просмотреть какая текстовая информация передавалась во время соединения.
-XX То же, что и предыдущий параметр -X, но включает заголовок канального уровня.
-с число tcpdump завершит работу после получения указанного числа пакетов.
-U Собранные пакеты будут сразу складываться в файл, а иначе копиться в памяти до тех пор, пока она не закончится

The Objective

In this post we are going to see how middleware administrators (or) developers could use tcpdump to accomplish their troubleshooting drama.

We are going to discuss the following items , practically as much as possible.

  • How to monitor/track HTTP and HTTPS calls with tcpdump in weblogic,websphere,tomcat application servers and web servers like Apache which runs on LINUX platform
  • How to tamper and read the incoming and outgoing HTTP traffic to our applications deployed in weblogic
  • How to dig into the incoming (or) outgoing HTTP traffic and take a look at the concrete elements of HTTP protocol such as headers, cookies, request body as they gets transmitted.
  • How to intercept the HTTP traffic initiated from the browser (or) SOAP UI to application server and sneak a peek into the content like Request Body like XML,JSON and Username and Password etc.
  • How to monitor the incoming SOAP web service request body (or) request XML
  • More practical examples on how to use TCPDUMP to analyze the HTTP traffic

Программная реализация

Программа состоит из двух основных частей: части захвата пакетов (обращение к библиотеке, libpcap (Unix) или pcap (Windows)) и части отображения захваченных пакетов (которая на уровне исходного кода является модульной и для поддержки нового протокола достаточно добавить новый модуль).

Часть захвата пакетов (при запуске) передаёт «выражение выбора пакетов» (идущее после всех параметров командной строки) напрямую библиотеке захвата пакетов, которая проверяет выражение на синтаксис, компилирует его (во внутренний формат данных), а затем копирует во внутренний буфер программы сетевые пакеты, проходящие через выбранный интерфейс и удовлетворяющие условиям в выражении.

Часть отображения пакетов выбирает захваченные пакеты по одному из буфера, заполняемого библиотекой, и выводит их (в воспринимаемом человеком виде) на стандартный вывод построчно, в соответствии с заданным (в командной строке) уровнем детальности.

Если задан подробный вывод пакетов, программа проверяет для каждого сетевого пакета, имеется ли у неё модуль расшифровки данных, и, в случае наличия, соответствующей подпрограммой извлекает (и отображает) тип пакета в протоколе или передаваемые в пакете параметры.

Funcionamiento

Parámetros

   tcpdump   
              
              
             
           
-A: Imprime cada paquete en ]
-D: Imprime la lista de interfaces disponibles 
-n: No convierte las direcciones de salida
-p: No utliza la ] especificada en ]
-t: No imprime la hora de captura de cada ]
-x: Imprime cada paquete en ]
-X: Imprime cada paquete en ] y ]

-c count: Cierra el ] tras recibir 'count' paquetes
-C file_size
-E algo:secret
-F file
-i interface: Escucha en la interfaz especificada
-M secret
-r file
-s snaplen
-T type
-w file: Guarda la salida en el ] 'file'
-W filecount
-y datalinktype
-Z user

Filtros

  • type : Máquina en particular , red completa o puerto concreto .
  • dir : Especifica desde o hacia dónde se dirige la información.
  • proto : Protocolo que queremos capturar.

La opción -d es útil a la hora de depurar un filtro. La misma produce un volcado del filtro que ha sido compilado en una forma legible humanamente y detiene la ejecución del programa. Por ejemplo:

tcpdump -d «tcp or ip multicast or vlan 600 and ip multicast»

Produce el siguiente volcado:

(000) ldh
(001) jeq #0x86dd jt 2 jf 4
(002) ldb
(003) jeq #0x6 jt 13 jf 18
(004) jeq #0x800 jt 5 jf 9
(005) ldb
(006) jeq #0x6 jt 13 jf 7
(007) ldb
(008) jge #0xe0 jt 13 jf 18
(009) jeq #0x8100 jt 10 jf 18
(010) ldh
(011) and #0xfff
(012) jeq #0x258 jt 13 jf 18
(013) ldh
(014) jeq #0x800 jt 15 jf 18
(015) ldb
(016) jge #0xe0 jt 17 jf 18
(017) ret #96
(018) ret #0

Salida del comando

  15:23:44.772291 IP 192.168.1.17.52798 > 85.Red-83-37-170.dynamicIP.rima-tde.net.65000: . ack 1791 win 7851 <nop, nop, timestamp 5520421 997821>
  • 15:23:44772291: Indica hh:mm:fracciones
  • src: Dirección y puerto origen.
  • dst: Dirección y puerto destino.
  • flags: Flags de la cabecera TCP. (.) si no hay flags o combinación de S (SYN), F (FIN), P (PUSH), W (reducción de la ventana de congestión), E (ECN eco).
  • dataseq: Número de secuencia del primer byte de datos en este segmento TCP. El formato es primero:último (n).
  • ack: El número de asentimiento. Indica el número siguiente de secuencia que se espera recibir.
  • window: Tamaño de la ventana de recepción.
  • urgent: Existen datos urgentes.
  • options: Indica la existencia de opciones. Van entre «<«…»>».

Ejemplos

Capturar tráfico cuya dirección IP de origen sea 192.168.3.1

tcpdump src host 192.168.3.1

Capturar tráfico cuya dirección origen o destino sea 192.168.3.2

tcpdump host 192.168.3.2

Capturar tráfico con destino a la dirección MAC 50:43:A5:AE:69:55

tcpdump ether dst 50:43:A5:AE:69:55

Capturar tráfico con red destino 192.168.3.0

tcpdump dst net 192.168.3.0

Capturar tráfico con red origen 192.168.3.0/28

tcpdump src net 192.168.3.0 mask 255.255.255.240
tcpdump src net 192.168.3.0/28

Capturar tráfico con destino el puerto 23

tcpdump dst port 23

Capturar tráfico con origen o destino el puerto 110

tcpdump port 110

Capturar los paquetes de tipo ICMP

tcpdump ip proto \\icmp

Capturar los paquetes de tipo UDP

tcpdump ip proto \\udp
tcpdump udp

Capturar el tráfico Web

tcpdump tcp and port 80

Capturar las peticiones de DNS

tcpdump udp and dst port 53

Capturar el tráfico al puerto telnet o SSH

tcpdump tcp and \(port 22 or port 23\)

Capturar todo el tráfico excepto el web

tcpdump tcp and not port 80

otra forma:

tcpdump tcp and ! port 80

Capturar todo el tráfico a host 10.168.1.100 puerto 80, en full verbose mode, full snap length, sin ponerla en modo promiscuo, sin convertir las direcciones de salida, imprimir en ASCII y volcar todo el dump en un file

Первые основы Tcpdump

Разбивка командной строки Tcpdump

Следующая команда использует общие параметры, часто встречающиеся при использовании инструмента tcpdump.

-i: интерфейс, на котором будет происходить захват трафика. Здесь часто указывается карта Ethernet или беспроводной адаптер, но также может быть vlan. Опцию не требуется указывать, если в компьютере только один сетевой адаптер.

-nn: одиночный (n) не разрешает имена хостов. Двойной (nn) не разрешит имена хостов или порты. Это удобно не только для просмотра номеров IP/портов, но и для захвата большого объема данных, поскольку разрешение имен замедляет захват трафика.

-s0: длина привязки, это размер пакета для захвата. -s0 установит неограниченный размер – используйте это, если вы хотите захватить весь трафик.

-v: использование (-v) или (-vv) увеличивает количество деталей, отображаемых в выходных данных, часто показывая больше информации, специфичной для протокола.

порт 80: это общий фильтр портов для захвата трафика только через порт 80, который обычно является протоколом HTTP.

Захват по протоколу

Фильтр по UDP трафику. Другой способ указать это – использовать номер порта 17, которым является протокол UDP. Эти две команды будут давать одинаковый результат.

Захват хостов на основе IP-адреса

Использование фильтра узла будет захватывать трафик, идущий к (месту назначения) и от (источника) IP-адреса.

В качестве альтернативы перехватывать только пакеты, идущие в одну сторону, используя src или dst.

Режим линейной буферизации

При использовании этой опции выходные данные немедленно отправляются в конвейерную команду grep, что дает немедленный ответ при устранении неполадок.

Сравнение альтернативных программ:

Bello Network Monitoring WinGUI

Bytemon Network Monitor

BWMeter

Change MAC Address by LizardSystems

Описание Для недорогого и эффективного мониторинга сетей и серверов Скачать Bytemon Network Monitor, версия 2.1.3.1 Скачать BWMeter, версия 8.4.5 Простой способ изменить MAC-адрес
Рейтингу
Загрузки 61 13 25 187
Цена $ 0 $ 79 $ 30 $ 19.95
Размер файла 1.26 MB 6.80 MB 1.60 MB 4.90 MB

Download

Download

Download

Download

Пользователи, которые скачивали tcpdump for Windows, также скачивали:

Мы рады посоветовать вам программы которые понравились другим пользователям tcpdump for Windows. Вот список программ, аналогичных tcpdump for Windows:

Camera Card Recovery Software 
3.0.1.5

Восстановите поврежденные и утерянные фото и видео

скачать
Резервирование и восстановление

Рейтинг пользователей

Camera Card Recovery 
3.0.1.5

Восстановите удаленные фотографии с вашего цифрового фотоаппарата

скачать
Резервирование и восстановление

Рейтинг пользователей

Repair NTFS File System 
4.0.1.6

Восстановите файлы, которые вы считали утерянными.

скачать
Резервирование и восстановление

Рейтинг пользователей

Recover iPod Missing Files 
4.0.1.6

Восстанавливайте удаленные файлы с вашего iPod

скачать
Резервирование и восстановление

Рейтинг пользователей

Тестовые машины

tcpdump нужен для работы в сети. Однако если у вас ее нет, то есть несколько вариантов:

1) Использовать интерфейс оборотной связи.
Благодаря тому, что в *nix системах запрограммирован этот интерфейс, вы можете посылать наиболее себе данные, предназначенные как бы для локальной сети. Преимущества данного способа: высокая быстрота работы (может означать: Работа — функционирование какой-либо системы — механизма, биоценоза, организма или общности, — а также её части), не нужно дополнительное ПО. Недостатки – поведение вашей операционной системы на тот или иной трафик сможет сильно отличаться от реальной работы в сети, в результате можно сделать неправильные выводы. Хотя просто для познания того, как работает сеть это идеальный вариант.

2) Воспользоваться програмками типа VmWare или Bochs.
Виртуальная машина – прекрасное средство, если вы хотите эмулировать на собственном компьютере работу локальной сети. Именно так я и поступил, т.к. у меня пока что нет возможности трудиться в реальной локальной сети. Преимущества: хорошая производительность, впечатление, что работаешь в локальной сети. Несовершенства: необходим большой объем оперативной памяти. Если учесть, что для работы каждой операторной системы необходимо как минимум 32, а то и 64 или 128 мб, то для эмуляции сети из 3-4 компьютеров необходимо примерно 256 мб.

Я пользовался программой VmWare. На своей машине и эмулировал службу в сети 4 операционных систем: ASP Linux 7.2 (192.168.0.1) – эта машина выполняет роль web и ftp-сервера сервера. Поставлены apache последней версии и vsftpd. На нем же стоит Tcpdump.
Windows 2000 (192.168.0.2) – на этой машине также стоит web и ftp-сервер.
FreeBSD 4.1 (192.168.0.3) – клиентская машина.
ASP Linux 7.2 (192.168.0.4) – клиентская машина.

Аппарат программного обеспечения

Как было выше упомянуто, для анализа пакетов мы будем использовать програмку tcpdump. Для ее установки потребуется библиотека libpcap, последнюю версию которой вы можете закачать с сайта www.tcpdump.org. впрочем, как и саму tcpdump. Настоятельно рекомендую перед установкой прочитать README и INSTALL, в них содержаться полезные сведения о том, с какими параметрами ее следует устанавливать, и какой-никакие дополнительные библиотеки нужны для правильной работы программы. В частности, для libpcap необходимы flex и bison. Когда у вас система основанная на RPM, то скорее всего пакеты есть на диске с дистрибутивом, либо уже находятся в системе. Лично я ставил libpcap из исходников с такими параметрами:

Как видите, я отключил поддержку IP 6 версии, мы будем рассматривать пакеты только 4 версии. Когда ставил tcpdump, я также выключил поддержку smb-принтера и криптоанализа.

У меня tcpdump водворился в директории /usr/local/sbin. Возможно, вам придется добавить эту директорию в переменную PATH, когда она там не числится. Для тех, кто не знает, это можно сделать вот так:

Вот и все, tcpdump поставлен и можно приступить к работе с самой программой.

Процедура аппараты соединения

В начале каждой строки отчета указано время, когда был передан пакет, потом указывается IP адрес отправителя, за ним следует ip-адрес получателя. После каждого ip-адреса, чрез точку, указывается порт обмена данными (зарегистрированная информация:439; представление фактов, понятий или инструкций в форме, приемлемой для общения, интерпретации, или обработки человеком или с помощью автоматических средств), в данном случае он будет осуществляться: у покупателя через временный порт – 1026, а у сервера через 80 порт. Далее заслуживает буква S, это означает, что в пакете установлен флаг SYN, как вы помните, этот флаг используется при введенье каждого tcp-соединения. Далее следует начальный порядковый номер пакета (упаковка для чего-либо, обычно из бумаги или пластика: Бумажный пакет Полиэтиленовый пакет Пакет-саше — герметичный пакет) (ISN – initial sequence number ), за ним – последний порядковый номер пакета, в скобках указана полезная нагрузка – 0 байт, и это верно, так как во время установления соединения никаких данных передаваться не должно, однако если каким-никаким данным имеет место быть, то они будут добавлены к остальным уже после установки слияния.

Читайте также:  Установка и настройка OpenVPN Server на CentOS 6

Следует всегда обращать на это внимание, так как зачастую этот метод используется для отвода фаерволлов. win 5840 – это размер окна (буфера), в котором хранятся данные для отправки. Отправитель вдобавок сообщает, что несмотря на большой размер буфера, максимальное число байт данных*, какое можно передать в его сети – 1460 (mss 1460), это стандартное значение для сетей Ethernet.

Потом, во второй строке, хост-сервер отсылает пакет с установленным SYN-флагом и подтверждение на получение пакета от хоста 192.168.0.1, заслуживает флаг ack и увеличен ISN клиента на 1(3292064291). Он также говорит размер своего окна и mss.

Знак . в третьей строке означает отсутствие флага SYN, FIN, RESET или PUSH (обычно его называют заполнителем). Хост подкрепляет получение пакета флагом ack, а следующая за ним цифра 1 показывает, что он увеличил ISN на 1. Такая несложная форма (использование единицы) позволяет не заполнять отчет постоянно изменяющимся ISN. Если же вы желаете, чтобы tcpdump не использовал эту форму, запустите tcpdump с ключом -S.

Вся проделанная процедура слияния называется ‘полным tcp-соединением с подтверждением данных’. Если вы запутались во всех этих записях в низу в таблице 1 показана расшифровка каждого поля.

* – Я не зря в скобках указал, что 1460 б – максимальное значение именно для данных, а не всего пакета. Если быть более буквальным, то это значение должно быть 1500. Просто 20 байт идет на tcp-заголовок и еще 20 на ip-заголовок.

Настилу Расшифровка

07:18:54.437096 метка времени
192.168.0.4 хост-отправитель

192.168.0.1 хост-получатель

80 порт размена данными

S флаг

3292064290 начальный порядковый номер

3292064290 конечный последовательный номер

(0) полезная нагрузка пакета

win 5840 размер окна

mss 1460 наибольшее число байтов, которые

можно передавать в данной сети.

Опции утилиты tcpdump

-i интерфейс

Задает интерфейс, с которого необходимо анализировать трафик (без указания интерфейса — анализ «первого попавшегося»).

-n

Отключает преобразование IP в доменные имена. Если указано -nn, то запрещается преобразование номеров портов в название протокола.

-e

Включает вывод данных канального уровня (например, MAC-адреса).

-v

Вывод дополнительной информации (TTL, опции IP).

-s размер

Указание размера захватываемых пакетов. (по-умолчанию — пакеты больше 68 байт)

-w имя_файла

Задать имя файла, в который сохранять собранную информацию.

-r имя_файла

Чтение дампа из заданного файла.

-p

Захватывать только трафик, предназначенный данному узлу. (по-умолчанию — захват всех пакетов, например в том числе широковещательных).

-q

Переводит tcpdump в «бесшумный режим», в котором пакет анализируется на транспортном уровне (протоколы TCP, UDP, ICMP), а не на сетевом (протокол IP).

-t

Отключает вывод меток времени.

Пользователи, которые скачивали tcpdump for Windows, также скачивали:

Мы рады посоветовать вам программы которые понравились другим пользователям tcpdump for Windows. Вот список программ, аналогичных tcpdump for Windows:

Camera Card Recovery Software 
3.0.1.5

Восстановите поврежденные и утерянные фото и видео

скачать
Резервирование и восстановление

Рейтинг пользователей

Camera Card Recovery 
3.0.1.5

Восстановите удаленные фотографии с вашего цифрового фотоаппарата

скачать
Резервирование и восстановление

Рейтинг пользователей

Repair NTFS File System 
4.0.1.6

Восстановите файлы, которые вы считали утерянными.

скачать
Резервирование и восстановление

Рейтинг пользователей

Recover iPod Missing Files 
4.0.1.6

Восстанавливайте удаленные файлы с вашего iPod

скачать
Резервирование и восстановление

Рейтинг пользователей

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector