: | : |
‹ | › | |||||
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
2018-07-10 11:32:17 6416 0
Использование Tcpdump для анализа трафика
tcpdump - очень мощный и широкоиспользуемый инструмент для снифинга и анализа, кторый используется для перехвата TCP/IP пакетов, получаемых или отправляемых по сети. Утилита доступна практически во всех операционных системах Линукс. Tcpdump так же дает возможность сохранять перехваченные пакеты в файл, для их дальнейшего анализа в будующем. А если сохранить файлы в формате pcap, то их можно будет анализировать с помощью такого инструмента как Wireshark.
Установка tcpdump
Redhat подобные системы:
sudo yum install tcpdump
Debian-like:
sudo apt-get install tcpdump
Tcpdump имеет формат записи:
tcpdump options expressions
При использовании tcpdump, требует права root.
Разберем опции tcpdump:
- -i - указывает на каком интерфейсе выполнять перехват пакетов (по-умолчанию используется первый интерфейс);
- -D - вывести список всех досиупных в системе интерфейсов;
- -c - указывает количество пакетов для перехвата;
- -n - указывает не выполнять преобразование ip-адреса в доменное имя;
- -nn - указывает не преобразовывать номер порта в имя демона;
- -A - выводит содержание пакета в формате ASCII;
- -X - выводит содержимое пакета в формате HEX и ASCII;
- -w - запись перехваченных пакетов в файл;
- -r - чтение из файла;
- -q - выводить мало данных;
- -s - указывать сколько байт пакета необходимо захватить (по-умолчанию s0 или захват польностью);
- -e - добавить в вывод содержание ethernet заговолков (2-й уровень OSI);
- -v - более информативный вывод (например добавляется TTL и TOS);
- -vv - еще более информативный вывод;
- -ee -vvv - добавить в вывод теги Vlan.
Приведен список наиболее часто используемых опций, полный перечень смотрите в официальной документации и в man
Теперь разберем какие могут быть выражения для перехвата пакетов, по-большому счету это фильтры на основании, которых будет проводится перехват пакетов.
- host - указвание адреса или имени хоста;
- net - указвание сети;
- src - указание источника пакета;
- dst - указание назначения пакета;
- port - указание порта демона;
- tcp,udp,icmp - указание протокола (tcp,udp,icmp и т.д.)
- less длина - указывает перехватывать пакеты, длина которых меньше указанной;
- greater длина - указывает перехватывать пакеты,длина которых больше указанной;
- ether - указание MAC-адреса;
- broadcast - указание что пакет должен быть Broadcast;
И конечно же все эти вырадения можно сочитать между собой с помощью логческих выражений:
- and или && - логическое и;
- or или || - логическое или;
- not или ! - отрицание.
Рассмотрим примеры использования tcpdump
Перехват пакетов с источником 192.168.10.1 идущих к сети 192.168.20.0/24 на порт 22
sudo tcpdump src host 192.168.0.1 and dst net 192.168.20.0/24 \
and dst port 22
Перехват icmp пакетов с выводм MAC-адресов без преобразования ip-адресов и номеров портов:
sudo tcpdump -evnn icmp
tcpdump: listening on enp3s0, link-type EN10MB (Ethernet), capture size 262144 bytes 13:07:40.660870 50:46:5d:73:08:28 > 00:25:90:a2:29:b4, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 13131, offset 0, flags [DF], proto ICMP (1), length 84) 172.20.9.40 > 172.20.1.1: ICMP echo request, id 29815, seq 1, length 64 13:07:40.661081 00:25:90:a2:29:b4 > 50:46:5d:73:08:28, ethertype IPv4 (0x0800), length 98: (tos 0x0, ttl 64, id 58057, offset 0, flags [none], proto ICMP (1), length 84)
Перехват пакетов идущих к адресу назначения yandex.ru на порт 80 или 443 :
sudo tcpdump "host yandex.ru and (tcp dst port 80 \
or tcp dst port 443")
Перехват трафика с отображением номеров Vlan (их можно потом искать с помощью grep):
sudo tcpdump -ee -vvv -i eth0
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 10:03:26.973635 00:25:90:a2:29:b4 (oui Unknown) > 50:46:5d:73:08:28 (oui Unknown), ethertype 802.1Q (0x8100), length 122: vlan 7, p 0, ethertype IPv4, (tos 0x10, ttl 64, id 3187, offset 0, flags [DF], proto TCP (6), length 104) 172.20.1.1 > 172.20.9.40.38552: Flags [P.], cksum 0x62ac (incorrect -> 0x8f59), seq 1666480162:1666480214, ack 2683254910, win 354, options [nop,nop,TS val 768961419 ecr 517398287], length 52 10:03:26.973657 00:25:90:a2:29:b4 (oui Unknown) > 50:46:5d:73:08:28 (oui Unknown), ethertype 802.1Q (0x8100), length 122: vlan 7, p 0, ethertype IPv4, (tos 0x10, ttl 64, id 3188, offset 0, flags [DF], proto TCP (6), length 104)
Как видно можно видеть в строке с указанием стандарта 802.1Q и номер vlan в нашем случае 7
Введите ответ:
+
=