Файлы System/bin Android 12. Справочник.


  Все     Команда     Скрипт     Служба     Приложение  

tcpdump
Дамп сетевого трафика

Тип файла: команда
  Eng  

usage: tcpdump
@@[-aAbdDefhHIJKlLnNOpqStuUvxX#]


[-B size ]

[-c count ]

[-C file_size ]

[-E algo:secret ]

[-F file ]

[-G seconds ]

[-i interface ]

[-j tstamptype ]

[-M secret ]

[--number ]

[-Q in | out | inout ]

[-r file ]

[-s snaplen ]
[--time-stamp-precision precision ]
[--immediate-mode ]

[-T type ]

[--version ]

[-V file ]

[-w file ]

[-W filecount ]

[-y datalinktype ]

[-z postrotate-command ]

[-Z user ]

[expression ]

    Man Linux: [ Ссылка 1 ] [ Ссылка 2 ]

Комментарии
https://github.com/tcpdump-examples/how-to-use-tcpdump

Команда Tcpdump — это известный инструмент анализа сетевых пакетов, который используется для отображения TCP\IP и других сетевых пакетов, передаваемых по сети, подключенной к системе, на которой установлен tcpdump. Tcpdump использует библиотеку libpcap для захвата сетевых пакетов и доступен практически для всех версий Linux/Unix.

Tcpdump — один из лучших инструментов сетевого анализа для специалистов
по информационной безопасности.
Tcpdump предназначен для всех, для хакеров и людей, которые плохо разбираются в TCP/IP.

ПАРАМЕТРЫ

Ниже приведены некоторые параметры tcpdump (с полезными примерами),
которые помогут вам в работе с этим инструментом.
Их очень легко забыть и/или спутать с фильтрами других типов,
например эфирными.

Первым из них является -n, который запрашивает, чтобы имена не разрешались,
что приводит к самим IP-адресам.
Второй — -X, который отображает как шестнадцатеричное, так и ascii-содержимое пакета.
Последним является -S, который изменяет отображение порядковых номеров
на абсолютные, а не на относительные.
Показать содержимое пакета как в шестнадцатеричном, так и в ascii-формате.

tcpdump -X ....
То же, что и -X, но также показывает заголовок Ethernet.

tcpdump -XX
Показать список доступных интерфейсов

tcpdump -D
Линейно-читаемый вывод (для просмотра при сохранении или отправки другим командам)

tcpdump -l
Будьте менее многословны (более тихие) в своем выводе.

tcpdump -q
Дайте удобочитаемую отметку времени на выходе.

tcpdump -t :
Дайте максимально удобочитаемую отметку времени на выходе.

tcpdump -тттт :
Слушайте на интерфейсе eth0.

tcpdump -i eth0
Подробный вывод (чем больше v, тем больше вывод).

tcpdump -vv
Получите только x пакетов, а затем остановитесь.

tcpdump -c
Определите длину снимка (размер) захвата в байтах. Используйте -s0,
чтобы получить все, если вы намеренно не захватываете меньше.

tcpdump -s
Вывести абсолютные порядковые номера.

tcpdump -S
Получите также заголовок Ethernet.

tcpdump -е
Расшифруйте трафик IPSEC, предоставив ключ шифрования.

tcpdump -Е

ОСНОВНОЕ ИСПОЛЬЗОВАНИЕ

Показать доступные интерфейсы

tcpdump -D
tcpdump --список интерфейсов
Давайте начнем с базовой команды, которая даст нам HTTPS-трафик:

tcpdump -nnSX порт 443
Найти трафик по IP

хост tcpdump 1.1.1.1
Фильтрация по источнику и/или месту назначения

tcpdump источник 1.1.1.1
tcpdump дст 1.0.0.1
Поиск пакетов по сети

tcpdump сеть 1.2.3.0/24
Низкий выход:

tcpdump-nnvvS
Средний выход:

tcpdump -nnvvXS
Тяжелый выход:

tcpdump-nnvvXSs 1514
Творческий подход

Выражения очень хороши, но настоящее волшебство tcpdump заключается
в возможности творчески их комбинировать, чтобы изолировать именно то, что вы ищете.
Комбинировать можно тремя способами:

И

и или &&
ИЛИ

или или ||
КРОМЕ

не или !
Пример использования:

Трафик с 192.168.1.1 И предназначенный для портов 3389 или 22

tcpdump 'src 192.168.1.1 и (dst порт 3389 или 22)'
Передовой

Покажите мне все пакеты URG:

tcpdump 'tcp[13] & 32!= 0'
Покажите мне все пакеты ACK:

tcpdump 'tcp[13] & 16!= 0'
Покажите мне все пакеты PSH:

tcpdump 'tcp[13] & 8 != 0'
Покажите мне все пакеты RST:

tcpdump 'tcp[13] & 4 != 0'
Покажите мне все пакеты SYN:

tcpdump 'tcp[13] & 2 != 0'
Покажите мне все пакеты FIN:

tcpdump 'tcp[13] & 1 != 0'
Покажите мне все пакеты SYN-ACK:

tcpdump 'tcp[13] = 18'
Показать весь трафик с установленными флагами SYN и RST:
(это никогда не должно происходить)

tcpdump 'tcp[13] = 6'
Показать весь трафик с установленным «злым битом»:

tcpdump 'ip[6] & 128!= 0'
Показать весь трафик IPv6:

tcpdump ip6
Печатать перехваченные пакеты в ASCII

tcpdump -A -i eth0
Отображение захваченных пакетов в HEX и ASCII

tcpdump -XX -i eth0
Захват и сохранение пакетов в файле

tcpdump -w 0001.pcap -i eth0
Чтение файла захваченных пакетов

tcpdump -r 0001.pcap
Захват пакетов IP-адреса

tcpdump -n -i eth0
Захватывать только пакеты TCP.

tcpdump -i eth0 tcp
Захватить пакет из определенного порта

tcpdump -i eth0 порт 22
Захват пакетов с исходного IP

tcpdump -i eth0 источник 192.168.0.2
Захват пакетов с IP-адреса назначения

tcpdump -i eth0 dst 50.116.66.139
Захватите любую упаковку, прибывающую из х.х.х.х.

tcpdump -n хост src x.x.x.x
Захватите любой пакет, приходящий или идущий в x.x.x.x

tcpdump -n хост x.x.x.x
Захватить любой пакет, идущий в x.x.x.x

tcpdump -n dst хост x.x.x.x
Захватите любую упаковку, прибывающую из х.х.х.х.

tcpdump -n хост src x.x.x.x
Захват любого пакета, идущего в сеть x.x.x.0/24

tcpdump -n dst net x.x.x.0/24
Захват любого пакета, приходящего из сети x.x.x.0/24

tcpdump -n src net x.x.x.0/24
Захватить любой пакет с портом назначения x

tcpdump -n порт dst x
Захватить любой пакет, приходящий с порта x

tcpdump -n порт источника x
Захват любых пакетов от или до диапазона портов от x до y

tcpdump -n dst(или src) portrange x-y
Захватить любой диапазон портов tcp или udp от x до y

tcpdump -n tcp(или udp) dst(или src) portrange x-y
Захватывать любые пакеты с dst ip x.x.x.x и портом y

tcpdump -n "хост dst x.x.x.x и порт dst y"
Захватывать любые пакеты с dst ip x.x.x.x и dst портами x, z

tcpdump -n "хост dst x.x.x.x и (порт dst x или порт dst z)"
Захват ICMP, ARP

tcpdump -v icmp(или arp)
Захват пакетов на интерфейсе eth0 и создание дампа в файл cap.txt

tcpdump -i eth0 -w cap.txt
Получить содержимое пакета с шестнадцатеричным выводом

tcpdump -c 1 -X icmp
Показать трафик, относящийся к определенному порту

tcpdump порт 3389
tcpdump src порт 1025
Показать трафик одного протокола

tcpdump icmp
Найти трафик по IP

хост tcpdump 1.1.1.1
Фильтрация по источнику и/или месту назначения

tcpdump источник 1.1.1.1
tcpdump дст 1.0.0.1
Поиск пакетов по сети

tcpdump сеть 1.2.3.0/24
Получить содержимое пакета с шестнадцатеричным выводом

tcpdump -c 1 -X icmp
Показать трафик, относящийся к определенному порту

tcpdump порт 3389
tcpdump src порт 1025
Показать трафик одного протокола

tcpdump icmp
Показать только трафик IP6

tcpdump ip6
Найдите трафик, используя диапазоны портов

порт tcpdump 21-23
Поиск трафика по размеру пакета

tcpdump меньше 32
tcpdump больше 64
tcpdump <= 128
tcpdump => 128
Чтение/запись снимков в файл (pcap)

tcpdump порт 80 -w файл_захвата
tcpdump -r файл_захвата
Все дело в комбинациях

Представление необработанных выходных данных

tcpdump -ttnnvvS
Вот несколько примеров комбинированных команд.

С определенного IP и предназначенного для определенного порта

tcpdump -nnvvS src 10.5.2.3 и порт dst 3389
Из одной сети в другую

tcpdump -nvX src net 192.168.0.0/16 и dst net 10.0.0.0/8 или 172.16.0.0/16
Не ICMP-трафик, идущий на определенный IP-адрес

tcpdump dst 192.168.0.2 и сеть src, а не icmp
Трафик с хоста, который не находится на определенном порту

tcpdump -vv src mars, а не dst порт 22
Изолируйте флаги TCP RST.

tcpdump 'tcp[13] & 4!=0'
tcpdump 'tcp[tcpflags] == tcp-rst'
Изолируйте флаги TCP SYN.

tcpdump 'tcp[13] & 2!=0'
tcpdump 'tcp[tcpflags] == tcp-syn'
Изолируйте пакеты с установленными флагами SYN и ACK.

tcpdump 'tcp[13]=18'
Изолируйте флаги TCP URG.

tcpdump 'tcp[13] & 32!=0'
tcpdump 'tcp[tcpflags] == tcp-urg'
Изолируйте флаги TCP ACK.

tcpdump 'tcp[13] & 16!=0'
tcpdump 'tcp[tcpflags] == tcp-ack'
Изолируйте флаги TCP PSH.

tcpdump 'tcp[13] & 8!=0'
tcpdump 'tcp[tcpflags] == tcp-psh'
Изолируйте флаги TCP FIN.

tcpdump 'tcp[13] & 1!=0'
tcpdump 'tcp[tcpflags] == tcp-fin'
Команды, которые я использую почти каждый день

И SYN, и набор RST

tcpdump 'tcp[13] = 6'
Найти пользовательские агенты HTTP

tcpdump -vvAls0 | grep 'Агент пользователя:'
tcpdump -nn -A -s1500 -l | grep "Агент пользователя:"
Используя egrep и несколько совпадений, мы можем получить
пользовательский агент и хост (или любой другой заголовок) из запроса.

tcpdump -nn -A -s1500 -l | egrep -i 'Агент пользователя: | Хост:'
Захватывать только пакеты HTTP GET и POST только те пакеты,
которые соответствуют GET.

tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x47455420'
tcpdump -s 0 -A -vv 'tcp[((tcp[12:1] & 0xf0) >> 2):4] = 0x504f5354'
Извлечь URL-адрес HTTP-запроса

tcpdump -s 0 -v -n -l | egrep -i "POST /|GET /|Host:"
Извлечение HTTP-паролей в POST-запросах

tcpdump -s 0 -A -n -l | egrep -i "POST /|pwd=|passwd=|password=|Host:"
Захват файлов cookie с сервера и с клиента

tcpdump -nn -A -s0 -l | egrep -i 'Set-Cookie|Хост:|Cookie:'
Захватить все пакеты ICMP

tcpdump -n icmp
Показать пакеты ICMP, которые не являются ECHO/REPLY (стандартный ping)

tcpdump 'icmp[icmptype] != icmp-echo и icmp[icmptype] != icmp-echoreply'
Захват электронной почты SMTP / POP3

tcpdump -nn -l порт 25 | grep -i 'ПОЧТА ОТ\|RCPT КОМУ'
Устранение неполадок с запросом и ответом NTP

tcpdump dst порт 123
Захват учетных данных и команд FTP

tcpdump -nn -v порт ftp или ftp-данные
Повернуть файлы захвата

tcpdump -w /tmp/capture-%H.pcap -G 3600 -C 200
Захват IPv6-трафика

tcpdump -nn ip6 прототип 6
IPv6 с UDP и чтением ранее сохраненного файла захвата.

tcpdump -nr ipv6-test.pcap ip6 прототип 17
Обнаружение сканирования портов в сетевом трафике

tcpdump -nn
ПРИМЕР ИСПОЛЬЗОВАНИЯ

Пример фильтра, показывающий тестирование скрипта Nmap NSE

На цели:

nmap -p 80 --script=http-enum.nse целевой IP-адрес
На сервере:

tcpdump -nn порт 80 | grep "ПОЛУЧИТЬ /"

ПОЛУЧИТЬ /w3perl/HTTP/1.1
ПОЛУЧИТЬ /w-агора/ HTTP/1.1
ПОЛУЧИТЬ /way-board/ HTTP/1.1
ПОЛУЧИТЬ /web800fo/HTTP/1.1
ПОЛУЧИТЬ /веб-доступ/ HTTP/1.1
ПОЛУЧИТЬ /webadmin/ HTTP/1.1
ПОЛУЧИТЬ /вебадмин/ HTTP/1.1
Захват начальных и конечных пакетов каждого нелокального хоста

tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin)!= 0, а не src и dst net localnet'
Захват DNS-запроса и ответа

Фильтрация DNS с помощью Tcpdump

tcpdump -i wlp58s0 -s0 порт 53
Захват пакетов данных HTTP

tcpdump 'tcp порт 80 и (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
Лучшие хосты по пакетам

tcpdump -nnn -t -c 200 | вырезать -f 1,2,3,4 -d '.'
| сортировать | уникальный -c | сортировать - номер | голова -n 20
Захватите все пароли открытым текстом

tcpdump порт http или порт ftp или порт smtp или порт imap или
порт pop3 или порт telnet -l -A | egrep -i -B5 'pass=|pwd=|log=
|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:
|username:|password:|login: |пройти |пользователь '

tcpdump порт http или порт ftp или порт smtp или порт imap
или порт pop3 или порт telnet -lA | egrep -i -B5 'pass=|pwd=
|log=|login=|user=|username=|pw=|passw=|passwd= |password=|pass:|user:|
username:|password:|login: |пройти |пользователь '
Пример DHCP

tcpdump -v -n порт 67 или 68
GET-запросы в открытом виде

tcpdump -vvAls0 | grep 'ПОЛУЧИТЬ'
Найти заголовки хоста HTTP

tcpdump -vvAls0 | grep 'Хост:'
Найти файлы cookie HTTP

tcpdump -vvAls0 | grep 'Set-Cookie|Хост:|Cookie:'
Найдите соединения SSH

tcpdump 'tcp[(tcp[12]>>2):4] = 0x5353482D'
Найти DNS-трафик

tcpdump -vvAs0 порт 53
Найти FTP-трафик

tcpdump -vvAs0 порт ftp или ftp-данные
Найти NTP-трафик

tcpdump -vvAs0 порт 123
Захват электронной почты SMTP / POP3

tcpdump -nn -l порт 25 | grep -i 'ПОЧТА ОТ\|RCPT КОМУ'
Режим линейной буферизации

tcpdump -i eth0 -s0 -l порт 80 | grep 'Сервер:'
Найти трафик со злым битом

tcpdump 'ip[6] & 128!= 0'
Фильтрация по протоколу (ICMP) и полям, специфичным для протокола (тип ICMP)

Tcpdump: фильтровать пакеты с флагами TCP

tcpdump -n icmp и 'icmp[0] != 8 и icmp[0] != 0'

Эту же команду можно использовать с предварительно определенным смещением
поля заголовка (icmptype) и значениями поля типа ICMP (icmp-echo и icmp-echoreply):

tcpdump -n icmp и icmp[icmptype] != icmp-echo и icmp[icmptype] != icmp-echoreply
Фильтр по полю TOS

tcpdump -v -n ip и ip[1]!=0
Фильтр по полю TTL

tcpdump -v ip и 'ip[8]<2'
Фильтровать по флагам TCP (SYN/ACK)

tcpdump -n tcp и порт 80 и 'tcp[tcpflags] & tcp-syn == tcp-syn'
В приведенном выше примере перехватываются все пакеты с установленным
флагом TCP SYN. Также могут быть установлены другие флаги (например, ACK).
Пакеты, для которых установлены только флаги TCP SYN, могут быть перехвачены.

tcpdump tcp и порт 80 и 'tcp[tcpflags] == tcp-syn'
Перехватывать TCP-пакеты SYN/ACK (как правило, ответы от серверов):

tcpdump -n tcp и 'tcp[tcpflags] & (tcp-syn|tcp-ack) == (tcp-syn|tcp-ack)'
tcpdump -n tcp и 'tcp[tcpflags] & tcp-syn == tcp-syn' и 'tcp[tcpflags] & tcp-ack == tcp-ack'
Перехватывать ARP-пакеты

tcpdump -vv -e -nn эфирный протокол 0x0806
Фильтр по длине IP-пакета

tcpdump -l icmp и '(ip[2:2]>50)' -w - |tcpdump -r - -v ip и '(ip[2:2]<60)'
Примечание: из-за ошибки в tcpdump следующая команда не перехватывает
пакеты должным образом:

tcpdump -v -n icmp и '(ip[2:2]>50)' и '(ip[2:2]<60)'
Фильтровать инкапсулированное содержимое (ICMP в PPPoE)

tcpdump -v -n icmp
Тише

tcpdump -q -i eth0
tcpdump -t -i eth0
tcpdump -A -n -q -i eth0 'порт 80'
tcpdump -A -n -q -t -i eth0 'порт 80'
Печатать только полезные пакеты из HTTP-трафика

tcpdump -A -s 0 -q -t -i eth0 'порт 80 и ( ((ip[2:2] -
((ip[0]&0xf)<<2)) - ((tcp[12:2]&0xf0 )>>2)) != 0)'
Дамп SIP-трафика

tcpdump -nq -s 0 -A -vvv порт 5060 и хост 1.2.3.4
Проверка содержимого пакета

tcpdump -i любой -c10 -nn -A порт 80
Проверка содержимого пакета

sudo tcpdump -i любой -c10 -nn -A порт 80