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

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

Сообщения
23
Реакции
41
Баллы
23
ОТ ОДНОЙ СЕТИ К ДРУГОЙ

Давайте посмотрим на весь трафик, идущий от 192.168.x.x, и двигающийся к сетям 10.x или 172.16.x.x, и мы покажем шестнадцатиричный вывод без имени хоста и один уровень дополнительной детализации.

Code: tcpdump -nvX src net 192.168.0.0/16 and dst net 10.0.0.0/8 or172.16.0.0/16


НЕ ICMP ТРАФИК, ПЕРЕХОДЯЩИЙ В СПЕЦИФИЧЕСКИЙ IP

Это покажет нам весь трафик, идущий к 192.168.0.2, который не является ICMP.

Code: tcpdump dst 192.168.0.2 and src net and not icmp


ТРАФИК ОТ ХОСТА, КОТОРЫЙ НЕ В КОНКРЕТНОМ ПОРТУ

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

Code: tcpdump -vv src mars and not dst port 22


Как вы можете видеть, вы можете создавать запросы, чтобы найти практически все, что вам нужно. Ключ должен сначала определить именно то, что вы ищете, а затем построить синтаксис, чтобы изолировать определенный тип трафика.


Сложная группировка и специальные символы

Также имейте в виду, что при создании сложных запросов вам, возможно, придется группировать свои параметры, используя одинарные кавычки. Одиночные кавычки используются для того, чтобы указать tcpdump, что нужно игнорировать некоторые специальные символы — в этом случае то, что в скобках «()». Этот же метод можна использоваться для группировки с использованием других выражений, таких как хост, порт, сеть и т.д. Посмотрите на приведенную ниже команду.

Code: # Traffic that’s from 10.0.2.4 AND destined for ports 3389 or 22 (неверно)

tcpdump src 10.0.2.4 and (dst port 3389 or 22)


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


Code: # Traffic that’s from 10.0.2.4 AND destined for ports 3389 or 22 (correct)

# tcpdump 'src 10.0.2.4 and (dst port 3389 or 22)'


Изолирование специфических TCP-флагов


Вы также можете захватывать трафик на основе определенных флагов (-ов) TCP.
[ПРИМЕЧАНИЕ: Фильтры ниже находят эти различные пакеты, потому что tcp [13] замечает смещение 13 в заголовке TCP, число представляет местоположение в байте, а ! = 0 означает, что данный флаг установлен в 1, т.е. он включен. ]

Показать все URGENT (URG) пакеты … CДЕСЬ ВСЕ ПАКЕТЫ !!!!

# tcpdump 'tcp[13] & 32!=0'


Показать все ACKNOWLEDGE пакеты (ACK) …

# tcpdump 'tcp[13] & 16!=0'


Показать все PUSH пакеты (PSH) …

# tcpdump 'tcp[13] & 8!=0'


Показать все RESET пакеты (RST) …

# tcpdump 'tcp[13] & 4!=0'


Показать все SYNCHRONIZE пакеты (SYN) …

# tcpdump 'tcp[13] & 2!=0'


Показать все FINISH (FIN) пакеты …

# tcpdump 'tcp[13] & 1!=0'


Показать все SYNCHRONIZE / ACKNOWLEDGE пакеты (SYNACK) …

# tcpdump 'tcp[13]=18'



[Примечание: только флаг PSH, RST, SYN и FIN отображаются в выводе поля tcpdump. Отображаются URG и ACK, но они показаны в другом месте на выходе, а не в поле flags. ]

Однако, как и в случае с самыми мощными инструментами, существует множество способов сделать то, что нужно. В следующем примере показан другой способ захвата пакетов со специфическими наборами TCP-флагов.

Code: # tcpdump 'tcp[tcpflags] == tcp-syn'


Снять флаги RST с помощью параметра tcpflags …

Code: # tcpdump 'tcp[tcpflags] == tcp-rst'


Снять флаги FIN с помощью параметра tcpflags…

Code: # tcpdump 'tcp[tcpflags] == tcp-fin'

[Примечание: тот же метод может быть использован и для других флагов; они были опущены в интересах экономии места. ]

Определение заслуживающего внимания трафика

Наконец, есть несколько быстрых рецептов, которые вы захотите запомнить, чтобы поймать специфический и специализированный трафик, например, неправильные / вероятно-вредоносные пакеты.


ПАКЕТЫ С ОБЫЧНЫМИ КОМПЛЕКТАМИ RST И SYN (ЭТОГО НЕ ДОЛЖНО БЫТЬ)

# tcpdump 'tcp[13] = 6'


НАЙТИ ОТКРЫТЫЙ ТЕКСТ HTTP И ПОЛУЧИТЬ ЗАПРОС

# tcpdump 'tcp[32:4] = 0x47455420'


НАЙДИТЕ SSH-СОЕДИНЕНИЯ НА ЛЮБОЙ ПОРТ (ЧЕРЕЗ БАННЕР)

# tcpdump 'tcp[(tcp[12]>>2):4] = 0x5353482D'


ПАКЕТЫ С TTL МЕНЬШЕ 10 (КАК ПРАВИЛО ПОКАЗЫВАЕТ ПРОБЛЕМУ ИЛИ ИСПОЛЬЗУЕТ TRACEROUTE)

# tcpdump 'ip[8] < 10'


ПАКЕТЫ С УСТАНОВКОЙ EVIL BIT

# tcpdump 'ip[6] & 128 != 0'


Заключение

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

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

Анализаторы протоколов, такие как Wireshark, великолепны, но если вы хотите действительно овладеть пакетами, вы должны сначала овладеть tcpdump.

В общем, этот учебник должен помочь вам стать сильным, но страница руководства всегда должна быть удобной для самых продвинутых и одноразовых сценариев использования.

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