Установка
1 2 |
yum install tcpdump - установка в centos apt install tcpdump - установка в debian |
Опции утилиты tcpdump:
1 2 3 4 5 6 7 8 9 10 |
-i интерфейс # Задает интерфейс, с которого необходимо анализировать трафик (без указания интерфейса - анализ "первого попавшегося") -n # Отключает преобразование IP в доменные имена. Если указано -nn, то запрещается преобразование номеров портов в название протокола. -e # Включает вывод данных канального уровня (например, MAC-адреса). -v # Вывод дополнительной информации (TTL, опции IP). -s размер # Указание размера захватываемых пакетов. (по умолчанию - пакеты больше 68 байт) -w имя_файла # Задать имя файла, в который сохранять собранную информацию. -r имя_файла # Чтение дампа из заданного файла. -p # Захватывать только трафик, предназначенный данному узлу. (по умолчанию - захват всех пакетов, например в том числе широковещательных). -q # Переводит tcpdump в "бесшумный режим", пакет анализируется на транспортном уровне (протоколы TCP, UDP, ICMP), а не на сетевом (протокол IP). -t # Отключает вывод меток времени. |
Наиболее часто используемые фильтрующие параметры команды tcpdump:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
dst хост # Проверяет, совпадает ли адрес получателя IP-пакета с указанным значением. # Возможно задавать как IP, подсеть в формате 10.0.0.1/24, так и имя хоста. src хост # Проверяет, совпадает ли адрес отправителя IP пакета с указанным значением. # Возможно задавать как IP, подсеть в формате 10.0.0.1/24, так и имя хоста. host хост # Проверяет, совпадает ли адрес отправителя или получателя с заданным значением. # Возможно задавать как IP, подсеть в формате 10.0.0.1/24, так и имя хоста. net имя_сети # Проверяется, находится ли адрес отправителя/получателя в заданной сети. # Возможно указание сети в формате CIDR (например 10.0.0.1/22), либо указание имени сети, # заданной в файле /etc/networks. ip | arp | rarp | tcp | udp | icmp [хост] # Проверяет, принадлежит ли пакет одному из указанных протоколов и при указании адреса хоста проверяет, # совпадает ли адрес отправителя\получателя с заданным. # Возможно задавать как IP, подсеть в формате 10.0.0.1/24, так и имя хоста. [tcp | udp] dst port номер_порта # Проверяется, принадлежит ли пакет протоколу TCP/UDP и равен ли порт назначения заданному. # Можно указать номер порта, либо имя, заданное в файле /etc/services. [tcp | udp] src port номер_порта # Проверяется, принадлежит ли пакет протоколу TCP/UDP и равен ли порт источника заданному. # Можно указать номер порта, либо имя, заданное в файле /etc/services. [tcp | udp] port номер_порта # Проверяется, принадлежит ли пакет протоколу TCP/UDP и равен ли порт назначения или источника заданному. # Можно указать номер порта, либо имя, заданное в файле /etc/services. ether { src | dst | host } MAC_адрес # Проверяется, принадлежит ли сетевой пакет источнику, назначению, # источнику или назначению имеющему заданный MAC_адрес. ip broadcast # Проверяется, является ли IP пакет широковещательным. ether broadcast # Проверяется, является ли ARP-пакет широковещательным. |
Примеры использования tcpdump:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
tcpdump -i eth0 # слушаем интерфейс eth0 tcpdump port 80 # слушаем 80 порт tcpdump host google.com # слушаем трафик с хоста google.com tcpdump -n -i eth0 icmp # Ловим пакеты icmp (ping pong) tcpdump | grep -v ssh # поиск пакетов исключая пакеты ssh tcpdump -n -i eth0 net 192.168.1.15 # трафик с/на IP tcpdump -n -i eth0 net 192.168.1.0/24 # трафик с/в сеть tcpdump -l > dump && tail -f dump # Вывод с записью в файл tcpdump -i eth0 -w traffic.eth0 # Информация о трафике записывается в бинарный файл traffic.eth0 tcpdump -i eth0 -s 0 -w traffic.eth0 # Запись + загрузка в бинарный файл tcpdump -r traffic.eth0 # Читаем из файла tcpdump -i eth0 -X port \(110 or 143\) # Проверка pop и imap на безопасность tcpdump -i eth0 -s 0 -A port 80 | grep GET # (-s 0 весь пакет, -A для ASCII) tcpdump -npi iface_name ether src MAC-address # узнать MAC устройства iface_name -имя интерфейса MAC-address -мак адрес устройства tcpdump -vvv -s 0 -l -n port 53 # показываем DNS трафик tcpdump -nl -i bge0 not port ssh and src \(192.168.16.121 or 192.168.16.54\) tcpdump -n -i eth1 net 192.168.16.121 # Выборка входящий/исходящий по одному IP адресу tcpdump -n -i eth1 net 192.168.16.0/24 # Выборка входящий/исходящий по адресу сети tcpdump -l > dump && tail -f dump # Вывод через буфер tcpdump -i rl0 -w traffic.rl0 # Писать заголовки в бинарный файл tcpdump -i rl0 -s 0 -w traffic.rl0 # Писать в бинарный фйл полные пакеты tcpdump -r traffic.rl0 # Прочитать из файла (так-же для ethereal tcpdump -i eth0 -s 0 -A port 80 | grep GET # -s 0 для полных пакетов, -A для ASCII |
Пример частого применения
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
tcpdump -n -i eth0 -s0 not port 22 and not port 8080 and not port 161 and not arp -n Не преобразовывать dns имена -i eth0 Указывает интерфейс, на котором будет захват трафика (замените eth0 на нужный интерфейс). -s 0 Устанавливает размер снэпшота. По умолчанию tcpdump захватывает только первые 96 байт каждого пакета, параметр -s 0 указывает захватывать полный пакет. not port 22 не собирать инфу по 22 порту and служит для добавления еще фильтра not port 8080 не собирать инфу по 8080 порту and служит для добавления еще фильтра not port 161 не собирать инфу по 161 порту and служит для добавления еще фильтра not arp не собирать инфу по arp |
Еще из одних частых способов применения
1 2 3 4 5 6 7 8 9 10 11 |
Возможные параметры: -n: Не преобразовывать IP-адреса и порты в имена. -vvv: Включает максимально подробный вывод. -X: Показывает содержимое пакетов в шестнадцатеричном и ASCII форматах. -i fm1-mac3: Указывает сетевой интерфейс fm1-mac3 для захвата пакетов. port 4000: Фильтрует пакеты по порту 4000. src 192.168.55.60: Фильтрует пакеты по IP-адресу источника 192.168.55.60. dst 192.168.55.60: Фильтрует пакеты по IP-адресу назначения 192.168.55.60. Пример: tcpdump -n -vvv -X port 4000 and dst 192.168.55.60 |
Wireshark to file
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
tcpdump: Утилита для захвата сетевых пакетов. -vvv: Увеличивает уровень детализации выводимой информации. -v дает более подробную информацию, -vv еще больше, и -vvv максимально подробный вывод. -n: Не разрешать IP-адреса и порты в имена. Это делает вывод более быстрым и менее загроможденным. -X: Показывает содержимое пакетов как в шестнадцатеричном, так и в ASCII форматах. Полезно для детального анализа содержимого пакетов. -i fm1-mac3: Указывает интерфейс fm1-mac3 для захвата пакетов. Убедитесь, что это имя вашего сетевого интерфейса. port 4000: Фильтрует пакеты по порту 4000. Только пакеты, относящиеся к этому порту, будут захвачены. and dst 192.168.55.60: Дополнительный фильтр, который захватывает только те пакеты, у которых IP-адрес назначения 192.168.55.60. -w -: Указывает tcpdump записывать вывод в стандартный поток вывода (stdout) вместо файла. Это позволяет передавать данные через канал (pipe) к другой команде. ssh: Утилита для безопасного подключения к удаленным системам через сеть. wrstemp@192.168.16.168: Указывает пользователя (wrstemp) и IP-адрес удаленного компьютера (192.168.16.168), к которому будет выполнено подключение. 'cat > /home/wrstemp/capture.pcap': Команда, которая будет выполнена на удаленном компьютере. Она принимает ввод (в данном случае поток данных от tcpdump) и записывает его в файл /home/wrstemp/capture.pcap. tcpdump -i fm1-mac3 port 4000 and src 192.168.55.60 and dst 192.168.55.60 -w - | ssh wrstemp@192.168.16.168 'cat > /home/wrstemp/capture.pcap' tcpdump -vvv -n -X -i fm1-mac3 port 4000 and dst 192.168.55.60 -w - | ssh -v wrstemp@192.168.16.168 'cat > /home/wrstemp/capture.pcap' |