Файл: Руководство по tcpdump с примерами 50 способ изолировать трафик создано обновлено 9 июня 2021.pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.11.2023
Просмотров: 27
Скачиваний: 4
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ЗАГОЛОВОК IP
Руководство по tcpdump с примерами — 50 способ
изолировать трафик
СОЗДАНО / ОБНОВЛЕНО: 9 ИЮНЯ 2021
— это лучший в мире инструмент сетевого анализа,
сочетающий в себе мощь и простоту в едином интерфейсе командной строки.
Это руководство покажет вам, как изолировать трафик несколькими способами, в том числе по IP, порту,
протоколу или приложению,
чтобы помочь вам найти то, что
вы ищете.
Примеры изоляции трафика
1.
2.
3.
4.
5.
11.
12.
13.
14.
15. tcpdump
Основы коммуникации
Поиск трафика по IP
Фильтровать по источнику и / или месту назначения
Показать трафик по сети
Показать трафик по портам
Изолировать флаги TCP
Найдите пользовательские агенты HTTP
Найти открытый текст, который HTTP
получает
Найдите HTTP-узлы
Найдите HTTP Cookies
6.
7.
8.
9.
10.
16.
17.
18.
19.
20.
Давайте начнем с базовой команды, которая обеспечит нам
HTTPS-трафик:
Это показало некоторый HTTPS-трафик с отображением шестнадцатеричных значений, видимых в правой части выходных данных (увы, оно зашифровано). Просто помните —
если сомневаетесь, запустите приведенную выше команду с интересующим вас портом, и вы должны быть в пути.
Показать трафик по протоколу
Показывать трафик IPv6
Поиск трафика с использованием диапазонов портов
Поиск трафика на основе размера пакета
Запись в файл
Найдите SSH-соединения
Найти DNS-трафик
Найти FTP-трафик
Найдите пароли в открытом виде
Поиск пакетов со злым битом
Установить:
apt install tcpdump
(Ubuntu)
yum install tcpdump
(Redhat / Centos)
Вы можете получить один пакет с
-c 1
номером или с
-c n номером n и с номером, обозначающим номер.
tcpdump -nn S 443 04:45:40.573686 IP 78.149.209.110.27782 > 172.30.0.144.443: Флаги [.], подтвержден
278239097, win 28, параметры [nop, nop, TS val 939752277 ecr 1208058112], длина 0 0x0000: 4500 0034 0014 0000 2e06 c005 4e8e d16e E..4........ N..n
0x0010: ac1e 0090 6c86 01bb 8e0a b73e 1095 9779 ....l......>...y
0x0020: 8010 001c d202 0000 0101 080a 3803 7b55 ............8.{ U
0x0030: 4801 8100
Примеры
Теперь, когда вы можете получать базовый трафик, давайте пошагово рассмотрим многочисленные примеры, которые вам,
вероятно, понадобятся при работе в области сетей,
безопасности или в качестве любого типа PacketWizard ™.
Просто посмотрите, что происходит, посмотрев на то, что попадает в ваш интерфейс.
Используя host один из наиболее распространенных запросов,
вы можете увидеть трафик, который поступает в 1.1.1.1 или из него.
PacketWizard ™ на самом деле не является торговой маркой, но так и должно быть.
Все, что есть в интерфейсе
Или получить все интерфейсы с
-i any помощью.
Поиск трафика по IP
tcpdump -i eth0
Если вы хотите видеть трафик только в одном или другом направлении, вы можете использовать src и dst
Чтобы найти пакеты, идущие в определенную сеть или подсеть или из них, используйте net опцию.
Типы выражений:
host net
, и port
Инструкции:
src и dst
Типы:
host net
, и port
Протоколы:
tcp udp
, icmp и многие другие.
Фильтрация по источнику и / или месту назначения
Поиск пакетов по сети
хост 1.1.1.1 06:20:25.593207 IP 172.30.0.144.39270 > one.one.one.one.домен:
12790 + A? google.com .
(28) 06:20:25.594510 IP one.one.one.one.домен > 172.30.0.144.39270:
12790 1/0/0 A 172.217.15.78 (44)
src 1.1.1.1
tcpdump dst 1.0.0.1
Шестнадцатеричный вывод полезен, когда вы хотите увидеть содержимое рассматриваемых пакетов, и часто его лучше всего использовать, когда вы изолируете несколько кандидатов для более тщательного изучения.
ОДИН ICMP-ПАКЕТ, ЗАХВАЧЕННЫЙ TCPDUMP
Вы также можете объединить это с опциями src и dst
Получить содержимое пакета с помощью
шестнадцатеричного вывода
tcpdump это инструмент, который каждый должен изучить в качестве основы для анализа пакетов.
net 1.2.3.0 / 24
tcpdump -c 1 -X icmp
Вы можете найти трафик конкретного порта,
используя port параметр, за которым следует номер порта.
Если вы ищете какой-то определенный вид трафика, вы также можете использовать tcp, udp, icmp и многие другие.
Вы также можете найти весь трафик IP6, используя опцию протокола.
Показывать трафик, относящийся к определенному порту
Распространенные варианты:
-nn
: Не разрешайте имена хостов или имена портов.
-S
: Получить весь пакет.
-X
: Получить шестнадцатеричный вывод.
Показать трафик одного протокола
Показывать только трафик IP6
порт 3389
порт src 1025
tcpdump icmp tcpdump ip6
Вы также можете использовать ряд портов для поиска трафика.
Если вы ищете пакеты определенного размера, вы можете использовать эти параметры. Вы можете использовать меньше,
больше или связанные с ними символы, которые вы ожидаете от математики.
Часто бывает полезно сохранять перехваченные пакеты в файл для анализа в будущем. Эти файлы известны как файлы PCAP
(PEE-cap), и они могут обрабатываться сотнями различных приложений, включая сетевые анализаторы, системы обнаружения вторжений и, конечно, tcpdump самим собой. Здесь мы записываем данные в файл с именем capture_file с помощью
-w переключателя.
Вы можете читать файлы PCAP с помощью
-r переключателя. Обратите внимание, что вы можете использовать все обычные команды в tcpdump во время чтения из файла; вы ограничены только тем фактом, что вы не можете захватить и обработать то, чего еще нет в файле.
Поиск трафика с использованием диапазонов портов
Поиск трафика на основе размера пакета
Чтение / запись записей в файл (pcap)
Перенос 21-23
tcpdump меньше 32
tcpdump больше 64
tcpdump <= 128
порт 80 -w capture_file
Теперь, когда мы увидели, что мы можем сделать с основами на нескольких примерах, давайте рассмотрим некоторые более продвинутые вещи.
Дополнительные возможности
Вот несколько дополнительных способов настроить способ вызова tcpdump
-X
: Отображать содержимое пакета как в
, так и в формате.
-XX
: То же самое, что
-X
, но также показывает заголовок ethernet.
-D
: Показать список доступных интерфейсов
-l
: Вывод в формате, удобном для чтения в строке (для просмотра при сохранении или отправки другим командам)
-q
: Будьте менее подробны (более спокойны) при выводе.
-t
: Выводите временные метки, доступные для чтения человеком.
-tttt
: Выводите максимально понятные для человека временные метки.
-i eth0
: Прослушайте интерфейс eth0.
-vv
: Подробный вывод (чем больше v, тем больше выходных данных).
-c
: Получите только x количество пакетов, а затем остановитесь.
-s
: Определите длину захвата (размер) в байтах. Используйте
-s0
, чтобы получить все, если только вы намеренно не захватываете меньше.
-S
: Выведите абсолютные порядковые номера.
-e
: Получите также заголовок ethernet.
-q
: Показывать меньше информации о протоколе.
Дополнительно
шестнадцатеричном
ASCII
tcpdump -r capture_file
-E
: Расшифруйте трафик IPSEC, предоставив ключ шифрования.
Все дело в комбинациях
Возможность выполнять эти различные действия по отдельности - это мощно, но настоящая магия tcpdump заключается в способности
творчески
комбинировать варианты, чтобы изолировать именно то, что вы ищете. Существует три способа создания комбинаций, и если вы вообще изучали программирование, они будут вам хорошо знакомы.
1.
И
and или
&&
2.
или
or или
||
3.
КРОМЕ
not или
!
Используйте эту комбинацию, чтобы увидеть подробный вывод,
без разрешения имен хостов или номеров портов, с использованием абсолютных порядковых номеров и отображением удобочитаемых временных меток.
Вот несколько примеров комбинированных команд.
Просмотрите другие мои руководства
Исходный вид вывода
tcpdump -ttnnvvS
Давайте найдем весь трафик из версии 10.5.2.3, идущий на любой хост через порт 3389.
Давайте посмотрим на весь трафик, поступающий из сетей
192.168.x.x и идущий в сети 10.x или 172.16.x.x, и мы показываем шестнадцатеричный вывод без разрешения имени хоста и с одним уровнем дополнительной детализации.
Это покажет нам весь трафик, идущий в 192.168.0.2,
который не является ICMP.
Это покажет нам весь трафик с хоста, который не является трафиком SSH (при условии использования порта по умолчанию).
С определенного IP и предназначенный для определенного
порта
Из одной сети в другую
Трафик, отличный от ICMP, поступающий на
определенный 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
tcpdump по dst 192.168.0.2 и src net а не icmp
Обучение без учителя — безопасность, технологии и искусственный
интеллект за 10 минут…
Получайте еженедельный отчет о том, что происходит в области безопасности и технологий — и почему это важно.
Как вы можете видеть, вы можете создавать запросы, чтобы найти практически все, что вам нужно. Ключ в том, чтобы сначала точно определить, что вы ищете, а затем построить синтаксис для изоляции этого конкретного типа трафика.
Имейте в виду, что при создании сложных запросов вам,
возможно, придется группировать свои параметры с помощью одинарных кавычек. Одинарные кавычки используются для того,
чтобы указать tcpdump игнорировать определенные специальные символы — в данном случае под скобками “(
)”. Этот же метод можно использовать для группировки с использованием других выражений, таких как host
, port
, net и т.д.
Вы также можете использовать фильтры для изоляции пакетов с установленными определенными флагами TCP.
Изолировать флаги TCP
tcpdump -vv src mars а не порт 22летнего перехода tcpdump 'src 10.0.2.4 и (порт dst 3389 или 22)'
Изолируйте флаги TCP RST.
Изолируйте флаги TCP SYN.
Изолируйте пакеты, для которых установлены
флаги SYN и ACK.
Изолируйте флаги TCP URG.
Изолируйте флаги подтверждения TCP.
Приведенные ниже фильтры находят эти различные пакеты,
потому что tcp[13]
просматривается смещение 13 в заголовке
TCP, число представляет местоположение в байте, а != 0 означает,
что рассматриваемый флаг установлен в 1, т. Е. Он включен.
В выводе поля флага tcpdump отображаются только флаги PSH,
RST, SYN и FIN. Отображаются URG и ACK, но они отображаются в другом месте выходных данных, а не в поле флаги.
tcpdump 'tcp[13] & 4!=0'
tcpdump 'tcp[tcpflags] == tcp-rst'
tcpdump 'tcp[13] & 2!=0'
tcpdump 'tcp[tcpflags] == tcp-syn'
tcpdump 'tcp[13]=18'
tcpdump 'tcp[13] & 32!=0'
tcpdump 'tcp[tcpflags] == tcp-urg'
tcpdump 'tcp[13] & 16!=0'
tcpdump 'tcp[tcpflags] == tcp-ack'
Изолируйте флаги TCP PSH.
Изолируйте флаги TCP FIN.
Наконец, теперь, когда мы разобрались с теорией, вот несколько быстрых рецептов, которые вы можете использовать для перехвата различных видов трафика.
Примеры повседневных рецептов
Поскольку tcpdump может выводить содержимое в формате
ASCII, вы можете использовать его для поиска содержимого в открытом виде с помощью других инструментов командной строки, таких как grep
Как SYN, так и ПЕРВЫЙ набор
Найдите пользовательские агенты HTTP
-l
Переключатель позволяет вам видеть трафик по мере его захвата и помогает при отправке командам вроде grep tcpdump 'tcp[13] & 8!=0'
tcpdump 'tcp[tcpflags] == tcp-push'
tcpdump 'tcp[13] & 1!=0'
tcpdump 'tcp[tcpflags] == tcp-fin'
tcpdump 'tcp [13] = 6'
tcpdump -vvAls0 | grep 'User-Agent:'
Этот способ работает независимо от того, через какой порт подключается соединение, потому что он получает ответ на баннер.
Запросы на получение открытого текста
Найдите заголовки HTTP-узла
Найдите HTTP Cookies
Найдите SSH-соединения
Найти DNS-трафик
Найти FTP-трафик
tcpdump -vvAls0 | grep 'GET'
tcpdump -vvAls0 | grep 'Host:'
tcpdump -vvAls0 | grep 'Set-Cookie|Host:|Cookie:'
tcpdump 'tcp[(tcp[12]>>2):4] = 0x5353482D'
tcpdump - порт 53
tcpdump - по ftp или ftp-data
В заголовке IP есть бит, который никогда не устанавливается законными приложениями, который мы называем “Злой бит”. Вот забавный фильтр для поиска пакетов, в которых он был переключен.
Вот выводы.
1. tcpdump это ценный инструмент для всех, кто хочет разобраться в сетевых технологиях или
Найти трафик NTP
Найдите пароли в открытом виде
Найдите трафик с помощью Evil Bit
Также ознакомьтесь с просмотром других руководств
Краткие сведения
информационной безопасности tcpdump - порт 123
тсрйитр порт HTTP или FTP, порт или порт-Порт SMTP или IMAP или POP3- порт или telnet-порт -Ла | для egrep -я -В5 путь=|фрд=|отчет=|логин=|
пользователь=|имя=|ПВ=|пароля=|пароль= пароль=|пропуска:|пользователь:|
имя пользователя: пароль:|логин|пасс |пользователей '
tcpdump 'ip[6] & 128 != 0'
2. Простой способ взаимодействия с трафиком в сочетании с точностью, которую он обеспечивает при проверке пакетов,
делают его наилучшим из возможных инструментов для изучения TCP / IP.
3. Анализаторы протоколов, такие как Wireshark, великолепны,
но если вы хотите по-настоящему освоить управление пакетами, вы должны сначала стать единым целым с tcpdump
Что ж, это руководство должно помочь вам добиться успеха,
но всегда должна быть удобной для самых продвинутых сценариев одноразового использования. Я
искренне надеюсь, что это было полезно для вас, и не стесняйтесь
, если у вас возникнут какие-либо вопросы.
Примечания
1. В настоящее время я (вроде как) пишу книгу о tcpdump для No Starch Press.
2. Ведущее изображение взято из
3. Некоторые фильтры изоляции позаимствованы у
4. Спасибо Питеру из hackertarget.com для вдохновения в новом оглавлении
(упрощенном), а также для некоторых дополнительных фильтров протокола более высокого уровня, добавленных в июле 2018.
5. Анаграмма для флагов TCP такова: справочная страница обращаться ко мне
SecurityWizardry.com
Себастьена Уэйнса
Unskilled Attackers Pester Real Security Folk.