tcpdump — полезное руководство с примерами (1 часть) | Форум хакерской тематики - Программы, исходники программ.

tcpdump — полезное руководство с примерами (1 часть)

Сообщения
23
Реакции
41
Баллы
23
Tcpdump
главный инструмент сетевого анализа для специалистов по информационной безопасности. Для тех, кто хочет получить полное представление о TCP / IP обязательно нужно обладать достаточным пониманием этого важного приложения. Многие предпочитают использовать инструменты более высокого уровня, такие как Wireshark, но я считаю это ошибкой.

Когда используешь инструмент, который отображает сетевой трафик более естественным (простым) способом, сложность анализа взваливается непосредственно на человека, а не на приложение. Этот подход развивает понимание набора TCP / IP, именно поэтому я настоятельно рекомендую использовать tcpdump вместо других инструментов, когда это возможно.

Code
15:31:34.079416 IP (tos 0x0, ttl 64, id 20244, offset 0, flags [DF],
proto: TCP (6), length: 60) source.35970 > dest.80: S, cksum 0x0ac1
(correct), 2647022145:2647022145(0) win 5840 0x0000: 4500 003c 4f14
4006 7417 0afb 0257 E.. 0x0010: 4815 222a 8c82 0050 9dc6 5a41 0000
0000 H."*...P..ZA.... 0x0020: a002 16d0 0ac1 0000 0204 05b4
0402 080a ................ 0x0030: 14b4 1555 0000 0000 0103 0302

ОСНОВЫ
Ниже приведены несколько параметров, которые можно использовать при настройке tcpdump. Их легко забыть и / или перепутать с другими типами фильтров, например Wireshark, поэтому эта страница может служить для вас справочным материалом. Вот основные из них, которые я сам люблю хранить в памяти, в зависимости от того, что я смотрю.

ОПЦИИ
  • -i any: прослушивать все интерфейсы, чтобы увидеть, видите ли вы какой-либо трафик.
  • -i eth0: прослушивать интерфейс eth0.
  • -D: Показывать список доступных интерфейсов
  • -n: отображать IP адреса вместо имени хостов.
  • -nn: отображать IP адреса и номера портов вместо имени хостов и названия протоколов.
  • -q: показывает минимальное количество информации о пакете.
  • -t: не отображать метку времени в каждой строке.
  • -tttt: задает вывод временных меток в принятом по умолчанию формате для каждой строки.
  • -X: Показывать содержимое пакета как в шестнадцатеричной кодировке, так и в ASCII.
  • -XX: То же, что и -X, но также показывает ethernet header.
  • -v, -vv, -vvv: увеличить количество возвращаемой информации о пакетах.
  • -c: только получить x количество пакетов, а затем остановить.
  • -s: определить длину snaplength (размер) захвата в байтах. Используйте -s0, чтобы получить все, если только вы намеренно не захватили меньше.
  • -S: Печатать абсолютные порядковые номера.
  • -e: Получить ethernet header.
  • -q: Показать минимальную информацию о пакете.
  • -E: Расшифровать трафик IPSEC, предоставив ключ шифрования.
[Значение snaplength, по умолчанию для tcpdump 4.0, изменилось с 68 до 96 байтов. Хотя это даст вам увидеть больше информации о пакете, но это будет не вся информация. Используйте -s1514 или -s0, чтобы получить полный охват]

ВЫРАЖЕНИЯ
В tcpdump выражения позволяют вам урезать различные типы трафика и найти именно то, что вы ищете. Освоение выражений и умение объединить их творчески — вот что делает по-настоящему мощным tcpdump.
Существует три основных типа выражений: type, dir и proto.
Типы опций: хост, сеть и порт.
Директории позволяют вам выполнять src, dst и их комбинации.
Протокол позволяет вам определять: tcp, udp, icmp, ah и многие другие.

ПРИМЕРЫ
Итак, теперь, когда мы увидели, какие у нас есть варианты, давайте посмотрим на некоторые реальные примеры, которые мы, вероятно, увидим в нашей повседневной работе.

ОСНОВНОЕ СООБЩЕНИЕ
Просто посмотрите, что происходит, посмотрев на все интерфейсы. Code: # tcpdump -i any

КОНКРЕТНЫЙ ИНТЕРФЕЙС
Основное представление о том, что происходит на конкретном интерфейсе. Code: # tcpdump -i eth0

ПРЕДСТАВЛЕНИЕ НЕОБРАБОТАНОГО ВЫВОДА
Подробный вывод без разрешения имен хостов или номеров портов, абсолютных порядковых номеров и удобочитаемых временных меток. Code: # tcpdump -ttttnnvvS

НАЙДИТЕ ТРАФИК ПО IP
Один из самых распространенных запросов, это покажет вам трафик из 1.2.3.4, будь то источник или место назначения. Code: # tcpdump host 1.2.3.4

ПОСМОТРЕТЬ БОЛЬШЕ ИНФОРМАЦИИ О ПАКЕТЕ С ВЫВОДОМ НА ШЕСТНАДЦАТЕРИЧНУЮ СИСТЕМУ
Шестнадцатеричный вывод полезен, когда вы хотите увидеть содержимое рассматриваемых пакетов, и его часто лучше всего использовать, когда вы изолируете несколько кандидатов для более тщательного изучения.
Code:
# tcpdump -nnvXSs 0 -c1 icmp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), 23:11:10.370321 IP
(tos 0x20, ttl 48, id 34859, offset 0, flags [none], length: 84)
69.254.213.43 > 72.21.34.42: icmp 64: echo request seq 0
0x0000: 4520 0054 882b 0000 3001 7cf5 45fe d52b E..T.+..0.|.E..+
0x0010: 4815 222a 0800 3530 272a 0000 25ff d744 H."..50'..%..D
0x0020: ae5e 0500 0809 0a0b 0c0d 0e0f 1011 1213 .^..............
0x0030: 1415 1617 1819 1a1b 1c1d 1e1f 2021 2223 .............!"#
0x0040: 2425 2627 2829 2a2b 2c2d 2e2f 3031 3233 $%&'()*+,-./0123
0x0050: 3435 3637 4567
1 packets captured
1 packets received by filter
0 packets dropped by kernel

ФИЛЬТРАЦИЯ ПО ИСТОЧНИКАМ И НАЗНАЧЕНИЮ
Выделить трафик на основе источника или назначения очень просто, используя src и dst.
Code:
# tcpdump src 2.3.4.5
tcpdump dst 3.4.5.6

ПОИСКОВЫЕ ПАКЕТЫ ПО СЕТИ
Чтобы найти пакеты, идущие в или из определенной сети, используйте опцию net. Вы можете комбинировать это с опциями src или dst.
Code: # tcpdump net 1.2.3.0/24

ПОКАЗАТЬ ТРАФИК СВЯЗАНЫЙ СО СПЕЦИАЛЬНЫМ ПОРТОМ
Вы можете найти определенный порт трафика, используя опцию port, за которой следует номер порта.
Code: # tcpdump port 3389 tcpdump src port 1025

ПОКАЗАТЬ ТРАФИК ОДНОГО ПРОТОКОЛА
Если вы ищете определенный тип трафика, вы можете использовать tcp, udp, icmp и многие другие.
Code: # tcpdump icmp

ПОКАЗАТЬ ТОЛЬКО ТРАФИК IP6
Вы также можете найти весь трафик IP6, используя опцию протокола.
Code: # tcpdump ip6

НАЙДИТЕ ТРАФИК С ИСПОЛЬЗОВАНИЕМ ПОРТОВЫХ ДИАПАЗОНОВ
Вы также можете использовать диапазон портов, чтобы найти трафик.
Code: # tcpdump portrange 21-23

НАЙДИТЕ ТРАФИК НА ОСНОВЕ РАЗМЕРА ПАКЕТА
Если вы ищете пакеты определенного размера, вы можете использовать эти параметры. Вы можете использовать маленький, большой или их соответствующие символы, которые вы ожидаете от математики.
Code:# tcpdump less 32 tcpdump greater 64 tcpdump <= 128

ПИСЬМЕННЫЕ ЗАПИСИ В ФАЙЛ
Часто полезно сохранять результат пакетов в файл для анализа в будущем. Эти файлы известны как файлы PCAP (PEE-cap), и их можно обрабатывать сотнями различных приложений, включая сетевые анализаторы, системы обнаружения вторжений и, конечно же, самим tcpdump. Здесь мы пишем файл с именем capture_file, используя ключ -w.
Code: # tcpdump port 80 -w capture_file

ЧТЕНИЕ ФАЙЛОВ PCAP
Вы можете читать файлы PCAP с помощью ключа -r. Обратите внимание, что вы можете использовать все регулярные команды в tcpdump при чтении в файле; вы ограничены только тем фактом, что вы не можете захватывать и обрабатывать то, чего не существует в файле.
Code: # tcpdump -r capture_file

РАСШИРЕННЫЙ
Теперь, когда мы увидели, что мы можем сделать с основами с помощью некоторых примеров, давайте рассмотрим некоторые более сложные вещи.

ЭТО ВСЕ О КОМБИНАЦИЯХ
Делать эти различные вещи индивидуальными – мощная способность, но настоящая магия tcpdump исходит из способности сочетать варианты креативными способами, чтобы изолировать именно то, что вы ищете. Есть три способа сделать комбинации, и если вы вообще изучали программирование, они вам будут очень знакомы.
AND
and or &&
OR
or or ||
EXCEPT
not or !
Вот несколько примеров комбинированных команд.

ИЗ СПЕЦИФИЧЕСКОГО IP И НАЗНАЧАЕТСЯ ДЛЯ ОПРЕДЕЛЕННОГО ПОРТА
Давайте найдем весь трафик с 10.5.2.3 к любому хосту на порте 3389.
Code: tcpdump -nnvvS src 10.5.2.3 and dst port 3389

ПОМОГИТЕ НАКОПИТЬ ПОЖАЛУЙСТА ТЫК НА ТЫК
 
Последнее редактирование модератором:
Сверху