TCPDUMP. 12 примеров использования

Любому уважающему себя системному администратору необходимо знать, как работать с  сетевыми анализаторами, будь то tcpdump или Wireshark. Поэтому сегодня расскажу вам о сетевом анализаторе tcpdump и покажу 12 примеров его применения.

tcpdump — утилита UNIX (есть клон для Windows), позволяющая перехватывать и анализировать сетевой трафик, проходящий через компьютер, на котором запущена данная программа.

Если tcpdump у вас еще не установлен, то воспользуйтесь следующей командой.

# apt-get install tcpdump

1. Захват пакетов с конкретного интерфейса. tcpdump -i

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

# tcpdump -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:03:39.403288 IP 192.168.1.3.ntp > ntp1.vniiftri.ru.ntp: NTPv4, Client, length 48
14:03:39.403647 IP 192.168.1.3.47995 > 192.168.1.1.domain: 48869+ PTR? 142.76.117.62.in-addr.arpa. (44)
14:03:39.445481 IP gw-comreg.vniiftri.ru > 192.168.1.3: ICMP host ntp1.vniiftri.ru unreachable - admin prohibited filter, length 84
14:03:39.496036 IP 192.168.1.1.domain > 192.168.1.3.47995: 48869 1/0/0 PTR ntp1.vniiftri.ru. (74)

В этом примере tcpdump захватывает все пакеты идущие через интерфейс eth0. Можно конечно было и не указывать eth0, т.к. tcpdump считает eth0 интерфейсом по умолчанию.

2. Захват определенного количества пакетов. tcpdump -c

Когда мы выполняем tcpdump. Он выдает нам все пакеты до тех пор пока мы не завершим его работу нажав Ctrl + C. Используя опцию -c, можно указать конкретное количество пакетов для захвата, после чего tcpdump закроется.

# tcpdump -c 7 -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:17:49.972652 IP 192.168.1.3.53397 > 192.168.1.1.domain: 20528+ A? www.google.ru. (31)
14:17:49.972675 IP 192.168.1.3.53397 > 192.168.1.1.domain: 27106+ AAAA? www.google.ru. (31)
14:17:49.973012 IP 192.168.1.3.52114 > 192.168.1.1.domain: 48629+ PTR? 1.1.168.192.in-addr.arpa. (42)
14:17:49.973704 IP 192.168.1.3.45633 > 192.168.1.1.domain: 16713+ A? www.aldeid.com. (32)
14:17:49.973711 IP 192.168.1.3.45633 > 192.168.1.1.domain: 7826+ AAAA? www.aldeid.com. (32)
14:17:50.065806 IP 192.168.1.1.domain > 192.168.1.3.52114: 48629 NXDomain 0/0/0 (42)
14:17:50.065982 IP 192.168.1.3.36930 > 192.168.1.1.domain: 1687+ PTR? 3.1.168.192.in-addr.arpa. (42)
7 packets captured
13 packets received by filter
0 packets dropped by kernel

tcpdump указано захватить 7 пакетов.

3. Отображать захваченные пакеты в формате ASCII. tcpdump -A

Давайте для примера укажем захватить 7 пакетов и отобразить в формате ASCII.

# tcpdump -A -c 7 -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:22:07.033387 IP 192.168.1.3.56814 > bk-in-f101.1e100.net.www: Flags [F.], seq 1827308969, ack 3970156663, win 125, options [nop,nop,TS val 1580605 ecr 3457196390], length 0
E..4_.@.@.&A......Ee...Pl......w...}.......
...=...f
14:22:07.033773 IP 192.168.1.3.51256 > 192.168.1.1.domain: 26283+ PTR? 101.69.194.173.in-addr.arpa. (45)
E..I.=@.@............8.5.5..f............101.69.194.173.in-addr.arpa.....
14:22:07.114784 IP bk-in-f101.1e100.net.www > 192.168.1.3.56814: Flags [.], ack 1, win 178, options [nop,nop,TS val 3457210473 ecr 1580605], length 0
E..4`...0.uK..Ee.....P.....wl.......vy.....
...i...=
14:22:07.123829 IP 192.168.1.1.domain > 192.168.1.3.51256: 26283 1/0/0 PTR bk-in-f101.1e100.net. (79)
E..kJ...0............5.8.W.qf............101.69.194.173.in-addr.arpa.................
bk-in-f101.1e100.net.
14:22:07.124020 IP 192.168.1.3.45050 > 192.168.1.1.domain: 50302+ PTR? 3.1.168.192.in-addr.arpa. (42)
E..F.S@.@..............5.2{     .~...........3.1.168.192.in-addr.arpa.....
14:22:07.213627 IP 192.168.1.1.domain > 192.168.1.3.45050: 50302 NXDomain 0/0/0 (42)
E..F.M..0............5...2...~...........3.1.168.192.in-addr.arpa.....
14:22:07.213809 IP 192.168.1.3.52997 > 192.168.1.1.domain: 21551+ PTR? 1.1.168.192.in-addr.arpa. (42)
E..F.j@.@..............5.2.OT/...........1.1.168.192.in-addr.arpa.....
7 packets captured
8 packets received by filter
0 packets dropped by kernel

4. Отображать захваченные пакеты в HEX и ASCII форматах. tcpdump -XX

Многим необходимо анализировать пакеты в hex значениях. Задав опцию -XX, tcpdump позволяет отображать пакеты в HEX и ASCII форматах.

# tcpdump -XX -c 5 -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:26:22.025863 IP 192.168.1.3.42468 > bk-in-f113.1e100.net.www: Flags [F.], seq 681713275, ack 442747703, win 108, options [nop,nop,TS val 1644353 ecr 3091190628], length 0
        0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
        0x0010:  0034 3a41 4000 4006 4ba4 c0a8 0103 adc2  .4:A@.@.K.......
        0x0020:  4571 a5e4 0050 28a2 1e7b 1a63 cb37 8011  Eq...P(..{.c.7..
        0x0030:  006c 4b86 0000 0101 080a 0019 1741 b83f  .lK..........A.?
        0x0040:  d364                                     .d
14:26:22.026256 IP 192.168.1.3.49752 > 192.168.1.1.domain: 44366+ PTR? 113.69.194.173.in-addr.arpa. (45)
        0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
        0x0010:  0049 1741 4000 4011 a00e c0a8 0103 c0a8  .I.A@.@.........
        0x0020:  0101 c258 0035 0035 862d ad4e 0100 0001  ...X.5.5.-.N....
        0x0030:  0000 0000 0000 0331 3133 0236 3903 3139  .......113.69.19
        0x0040:  3403 3137 3307 696e 2d61 6464 7204 6172  4.173.in-addr.ar
        0x0050:  7061 0000 0c00 01                        pa.....
14:26:22.107844 IP bk-in-f113.1e100.net.www > 192.168.1.3.42468: Flags [.], ack 1, win 117, options [nop,nop,TS val 3091202466 ecr 1644353], length 0
        0x0000:  001f 1601 c56d 0021 9154 c6b9 0800 4500  .....m.!.T....E.
        0x0010:  0034 4b41 0000 3006 8aa4 adc2 4571 c0a8  .4KA..0.....Eq..
        0x0020:  0103 0050 a5e4 1a63 cb37 28a2 1e7c 8010  ...P...c.7(..|..
        0x0030:  0075 1d3f 0000 0101 080a b840 01a2 0019  .u.?.......@....
        0x0040:  1741                                     .A
14:26:22.116644 IP 192.168.1.1.domain > 192.168.1.3.49752: 44366 1/0/0 PTR bk-in-f113.1e100.net. (79)
        0x0000:  001f 1601 c56d 0021 9154 c6b9 0800 4500  .....m.!.T....E.
        0x0010:  006b 7fbd 0000 3011 8770 c0a8 0101 c0a8  .k....0..p......
        0x0020:  0103 0035 c258 0057 81a6 ad4e 8180 0001  ...5.X.W...N....
        0x0030:  0001 0000 0000 0331 3133 0236 3903 3139  .......113.69.19
        0x0040:  3403 3137 3307 696e 2d61 6464 7204 6172  4.173.in-addr.ar
        0x0050:  7061 0000 0c00 01c0 0c00 0c00 0100 001b  pa..............
        0x0060:  bb00 160a 626b 2d69 6e2d 6631 3133 0531  ....bk-in-f113.1
        0x0070:  6531 3030 036e 6574 00                   e100.net.
14:26:22.116853 IP 192.168.1.3.60930 > 192.168.1.1.domain: 19760+ PTR? 3.1.168.192.in-addr.arpa. (42)
        0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
        0x0010:  0046 1758 4000 4011 9ffa c0a8 0103 c0a8  .F.X@.@.........
        0x0020:  0101 ee02 0035 0032 b44f 4d30 0100 0001  .....5.2.OM0....
        0x0030:  0000 0000 0000 0133 0131 0331 3638 0331  .......3.1.168.1
        0x0040:  3932 0769 6e2d 6164 6472 0461 7270 6100  92.in-addr.arpa.
        0x0050:  000c 0001                                ....
5 packets captured
8 packets received by filter
0 packets dropped by kernel

5. Захватить пакеты и направить вывод в файл. tcpdump -w

# tcpdump -w file_name.pcap -i eth0
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
706 packets captured
706 packets received by filter
0 packets dropped by kernel

Расширение файла должно быть .pcap для того, чтобы его могли прочитать другие сетевые анализаторы. Wireshark например.

6. Чтение пакетов из файла. tcpdump -r

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

# tcpdump -XX -r file_name.pcap
reading from file file_name.pcap, link-type EN10MB (Ethernet)
15:03:14.980144 IP 192.168.1.3.36854 > 192.168.1.1.domain: 31011+ A? sourceforge.net. (33)
        0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
        0x0010:  003d 8857 4000 4011 2f04 c0a8 0103 c0a8  .=.W@.@./.......
        0x0020:  0101 8ff6 0035 0029 dd8a 7923 0100 0001  .....5.)..y#....
        0x0030:  0000 0000 0000 0b73 6f75 7263 6566 6f72  .......sourcefor
        0x0040:  6765 036e 6574 0000 0100 01              ge.net.....
15:03:14.980161 IP 192.168.1.3.36854 > 192.168.1.1.domain: 22859+ AAAA? sourceforge.net. (33)
        0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
        0x0010:  003d 8858 4000 4011 2f03 c0a8 0103 c0a8  .=.X@.@./.......
        0x0020:  0101 8ff6 0035 0029 e262 594b 0100 0001  .....5.).bYK....
        0x0030:  0000 0000 0000 0b73 6f75 7263 6566 6f72  .......sourcefor
        0x0040:  6765 036e 6574 0000 1c00 01              ge.net.....
15:03:14.985797 IP 192.168.1.3.56923 > bc1.sgmn.net.www: Flags [S], seq 3546006763, win 5840, options [mss 1460,sackOK,TS val 2197593 ecr 0,nop,wscale 6], length 0
        0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
        0x0010:  003c 4cb2 4000 4006 1950 c0a8 0103 b24d  .<L.@.@..P.....M
        0x0020:  60c1 de5b 0050 d35b c4eb 0000 0000 a002  `..[.P.[........
        0x0030:  16d0 5d09 0000 0204 05b4 0402 080a 0021  ..]............!
        0x0040:  8859 0000 0000 0103 0306                 .Y........
15:03:14.989195 IP 192.168.1.3.56924 > bc1.sgmn.net.www: Flags [S], seq 3810406905, win 5840, options [mss 1460,sackOK,TS val 2197594 ecr 0,nop,wscale 6], length 0
        0x0000:  0021 9154 c6b9 001f 1601 c56d 0800 4500  .!.T.......m..E.
        0x0010:  003c b9a3 4000 4006 ac5e c0a8 0103 b24d  .<..@.@..^.....M
        0x0020:  60c1 de5c 0050 e31e 31f9 0000 0000 a002  `...P..1.......
        0x0030:  16d0 e036 0000 0204 05b4 0402 080a 0021  ...6...........!
        0x0040:  885a 0000 0000 0103 0306                 .Z........
15:03:15.069385 IP 192.168.1.1.domain > 192.168.1.3.36854: 31011 1/0/0 A 216.34.181.60 (49)
        0x0000:  001f 1601 c56d 0021 9154 c6b9 0800 4500  .....m.!.T....E.
        0x0010:  004d 96ab 0000 3011 70a0 c0a8 0101 c0a8  .M....0.p.......
        0x0020:  0103 0035 8ff6 0039 e298 7923 8180 0001  ...5...9..y#....
        0x0030:  0001 0000 0000 0b73 6f75 7263 6566 6f72  .......sourcefor
        0x0040:  6765 036e 6574 0000 0100 01c0 0c00 0100  ge.net..........
        0x0050:  0100 0003 0800 04d8 22b5 3c              ........".<

7. Захватить пакеты и отобразить IP-адрес вместо имени хоста. tcpdump -n

Во всех предыдущих примерах, пакеты отображались с DNS-адресами, но не с IP-адресами. Следующий пример показывает, как отображать IP-адреса захваченных пакетов.

# tcpdump -n -i eth0
 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
 listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
 15:14:36.230605 IP 192.168.1.3.42311 > 192.168.1.1.53: 41264+ A? www.aldeid.com. (32)
 15:14:36.230628 IP 192.168.1.3.42311 > 192.168.1.1.53: 36217+ AAAA? www.aldeid.com. (32)
 15:14:36.321354 IP 192.168.1.1.53 > 192.168.1.3.42311: 41264 2/0/0 CNAME aldeid.com., A 46.252.206.1 (62)
 15:14:36.329376 IP 192.168.1.1.53 > 192.168.1.3.42311: 36217 1/1/0 CNAME aldeid.com. (114)
 15:14:36.329548 IP 192.168.1.3.50184 > 46.252.206.1.80: Flags [S], seq 2843670781, win 5840, options [mss 1460,sackOK,TS val 2367929 ecr 0,nop,wscale 6], length 0
 15:14:36.416523 IP 46.252.206.1.80 > 192.168.1.3.50184: Flags [S.], seq 2979506353, ack 2843670782, win 5792, options [mss 1460,nop,nop,TS val 1058588753 ecr 2367929,nop,wscale 7], length 0

8. Захват пакетов и отображение даты. tcpdump -tttt

# tcpdump -tttt -c 10 -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
2011-12-16 15:20:19.119186 IP ch3.sourceforge.net.www > 192.168.1.3.60183: Flags [R.], seq 1733868151, ack 2799185013, win 149, length 0
2011-12-16 15:20:19.119551 IP 192.168.1.3.55011 > 192.168.1.1.domain: 18361+ PTR? 3.1.168.192.in-addr.arpa. (42)
2011-12-16 15:20:19.210840 IP 192.168.1.1.domain > 192.168.1.3.55011: 18361 NXDomain 0/0/0 (42)
2011-12-16 15:20:19.210990 IP 192.168.1.3.60408 > 192.168.1.1.domain: 5597+ PTR? 60.181.34.216.in-addr.arpa. (44)
2011-12-16 15:20:19.302479 IP 192.168.1.1.domain > 192.168.1.3.60408: 5597 1/0/0 PTR ch3.sourceforge.net. (77)
2011-12-16 15:20:19.302673 IP 192.168.1.3.36084 > 192.168.1.1.domain: 46921+ PTR? 1.1.168.192.in-addr.arpa. (42)
2011-12-16 15:20:19.393648 IP 192.168.1.1.domain > 192.168.1.3.36084: 46921 NXDomain 0/0/0 (42)
2011-12-16 15:20:19.930727 IP 192.168.1.3.60184 > ch3.sourceforge.net.www: Flags [S], seq 4213911820, win 5840, options [mss 1460,sackOK,TS val 2453829 ecr 0,nop,wscale 6], length 0
2011-12-16 15:20:19.933450 IP 192.168.1.3.35159 > jangle.cacetech.com.www: Flags [F.], seq 2251522727, ack 3157887949, win 108, options [nop,nop,TS val 2453830 ecr 25896294], length 0
2011-12-16 15:20:19.933479 IP 192.168.1.3.35160 > jangle.cacetech.com.www: Flags [F.], seq 4109229407, ack 3305525460, win 108, options [nop,nop,TS val 2453830 ecr 25896294], length 0
10 packets captured
14 packets received by filter
0 packets dropped by kernel

9. Чтение пакетов, которые больше или равно N байт

# tcpdump -w file_name.pcap greater 1024

10. Принимать пакеты только определенного типа

Если вам нужны пакеты конкретного типа, например: fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp или udp. В конце команды необходимо написать тип протокола.

# tcpdump -i eth0 arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:33:56.326109 ARP, Request who-has 192.168.1.3 tell 192.168.1.1, length 46
15:33:56.326125 ARP, Reply 192.168.1.3 is-at 00:1f:16:01:c5:6d (oui Unknown), length 28
15:34:29.576256 ARP, Request who-has 192.168.1.3 tell 192.168.1.1, length 46
15:34:29.576271 ARP, Reply 192.168.1.3 is-at 00:1f:16:01:c5:6d (oui Unknown), length 28

11. Чтение пакетов, которые меньше или равно N байт

# tcpdump -w file_name.pcap less 1024

12. Принимать пакеты приходящие на конкретный порт. tcpdump port

Если вы хотите проанализировать пакеты, которые приходят на определенный порт, то нужно воспользоваться следующей командой.

# tcpdump -i eth0 port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:43:02.915883 IP 192.168.1.3.57565 > 109.120.144.208.addr.datapoint.ru.ssh: Flags [S], seq 3940766754, win 5840, options [mss 1460,sackOK,TS val 2794575 ecr 0,nop,wscale 6], length 0
15:43:05.912246 IP 192.168.1.3.57565 > 109.120.144.208.addr.datapoint.ru.ssh: Flags [S], seq 3940766754, win 5840, options [mss 1460,sackOK,TS val 2795325 ecr 0,nop,wscale 6], length 0
15:43:05.952443 IP 192.168.1.3.57565 > 109.120.144.208.addr.datapoint.ru.ssh: Flags [S], seq 3940766754, win 5840, options [mss 1460,sackOK,TS val 2795335 ecr 0,nop,wscale 6], length 0

На сегодня все. Дальше будет еще интереснее. Если возникнут вопросы, обращайтесь.

Click to rate this post!
[Total: 3 Average: 4]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

1 comments On TCPDUMP. 12 примеров использования

Leave a reply:

Your email address will not be published.