tcpdump的抓包内容分析

�例一:以 IP �c port number 捉下 eth0 �@���W路卡上的封包,持�m 3 秒[root@linux ~]# tcpdump -i eth0 -nntcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes01:33:40.41 IP 192.168.1.100.22 > 192.168.1.11.1190: P 116:232(116) ack 1 win 964801:33:40.41 IP 192.168.1.100.22 > 192.168.1.11.1190: P 232:364(132) ack 1 win 9648<==按下 [ctrl]-c 之後�Y束6680 packets captured              <==捉下�淼姆獍��盗�14250 packets received by filter   <==由�^�V所得的�封包�盗�7512 packets dropped by kernel     <==被核心所�G��的封包

如果你是第一次看 tcpdump 的 man page �r,肯定一���^���大,因�� tcpdump �缀醵际欠治龇獍�的表�^�Y料,使用者如果�]有�易的�W路封包基�A,要看懂粉�y�龋� 所以,至少您得要回到�W路基�A�e面去�� TCP 封包的表�^�Y料理解理解才好啊! ^_^!至於那���例一所�a生的�出�例中,我��可以�s略�^分�����谖唬� 我��以�例一��中那��特殊字�w行�碚f明一下:

  • 01:33:40.41:�@��是此封包被�X取的�r�g,『�r:分:秒』的�挝唬�

  • IP:透�^的通��f定是 IP ;

  • 192.168.1.100.22 > :�魉投耸� 192.168.1.100 �@�� IP,而�魉偷� port number �� 22,您必�要�t解的是,那��大於 (>) 的符�指的是封包的�鬏�方向喔!

  • 192.168.1.11.1190:接收端的 IP 是 192.168.1.11, 且�主�C�_�� port 1190 �斫邮眨�

  • P 116:232(116):�@��封包�в� PUSH 的�Y料�鬏��苏I, 且�鬏�的�Y料�檎��w�Y料的 116~232 byte,所以�@��封包�в� 116 bytes 的�Y料量;

  • ack 1 win 9648:ACK�c Window size 的相�P�Y料。

最��蔚恼f法,就是�封包是由 192.168.1.100 �鞯� 192.168.1.11,透�^的 port 是由 22 到 1190 , 且�в� 116 bytes 的�Y料量,使用的是 PUSH 的旗�耍�而不是 SYN 之�的主�舆B��苏I。 呵呵!不容易看的懂吧!所以�f,上�^才�v��毡氐� TCP 表�^�Y料的部分去瞧一瞧的啊!

再�恚�一���W路��B很忙的主�C上面,你想要取得某部主�C�δ氵B�的封包�Y料而已�r, 使用 tcpdump 配合管�命令�c正�表示法也可以,不�^,��竟不好捉取! 我��可以透�^ tcpdump 的表示法功能,就能�蜉p易的�⑺�需要的�Y料��立的取出�怼� 在上面的�例一��中,我���H��� eth0 做�O�,所以整�� eth0 介面上面的�Y料都��被�@示到�幕上, 不好分析啊!那�N我��可以�化�幔坷�如只取出 port 21 的�B�封包,可以�@�幼觯�

[root@linux ~]# tcpdump -i eth0 -nn port 21tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
01:54:37.96 IP 192.168.1.11.1240 > 192.168.1.100.21: . ack 1 win 65535
01:54:37.96 IP 192.168.1.100.21 > 192.168.1.11.1240: P 1:21(20) ack 1 win 5840
01:54:38.12 IP 192.168.1.11.1240 > 192.168.1.100.21: . ack 21 win 65515
01:54:42.79 IP 192.168.1.11.1240 > 192.168.1.100.21: P 1:17(16) ack 21 win 65515
01:54:42.79 IP 192.168.1.100.21 > 192.168.1.11.1240: . ack 17 win 5840
01:54:42.79 IP 192.168.1.100.21 > 192.168.1.11.1240: P 21:55(34) ack 17 win 5840

瞧!�@�泳�H提出 port 21 的�Y�而已,且仔�看的�,你���l�F封包的�鬟f都是�p向的, client 端�l出『要求』而 server 端�t予以『回��』,所以,��然是有去有回啊! 而我��也就可以��^�@��封包的流向�聿t解到封包�\作的�^程。 �e例�碚f:

  1. 我��先在一���K端�C�窗�入『 tcpdump -i lo -nn 』 的�O�,

  2. 再另�_一���K端�C�窗��Ρ�C (127.0.0.1) 登入『ssh localhost』

那�N�出的�Y果��是如何?

[root@linux ~]# tcpdump -i lo -nn 1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 2 listening on lo, link-type EN10MB (Ethernet), capture size 96 bytes 3 11:02:54.253777 IP 127.0.0.1.32936 > 127.0.0.1.22: S 933696132:933696132(0) 
   win 32767 <mss 16396,sackOK,timestamp 236681316 0,nop,wscale 2> 4 11:02:54.253831 IP 127.0.0.1.22 > 127.0.0.1.32936: S 920046702:920046702(0) 
   ack 933696133 win 32767 <mss 16396,sackOK,timestamp 236681316 236681316,nop,
   wscale 2> 5 11:02:54.253871 IP 127.0.0.1.32936 > 127.0.0.1.22: . ack 1 win 8192 <nop,
   nop,timestamp 236681316 236681316> 6 11:02:54.272124 IP 127.0.0.1.22 > 127.0.0.1.32936: P 1:23(22) ack 1 win 8192 
   <nop,nop,timestamp 236681334 236681316> 7 11:02:54.272375 IP 127.0.0.1.32936 > 127.0.0.1.22: . ack 23 win 8192 <nop,
   nop,timestamp 236681334 236681334>

上表�@示的�^�尚惺� tcpdump 的基本�f明,然後:

  • 第 3 行�@示的是『�碜� client 端,�в� SYN 主�舆B�的封包』,

  • 第 4 行�@示的是『�碜� server 端,除了回�� client 端之外(ACK),��в� SYN 主�舆B�的�苏I;

  • 第 5 行�t�@示 client 端回�� server �_定�B�建立 (ACK)

  • 第 6 行以後�t�_始�M入�Y料�鬏�的步�E。

�牡� 3-5 行的流程�砜矗�熟不熟悉啊?�]�e!那就是 三向交握 的基�A流程啦!�蛴腥ぐ桑� 不�^ tcpdump 之所以被�Q�轳�客��w之一可不止上�^介�B的功能�龋� 上面介�B的功能可以用�碜�槲��主�C的封包�B��c�鬏�的流程分析, �@�⒂兄�於我���t解到封包的�\作,同�r�t解到主�C的防火���O定��t是否有需要修�的地方。

更神奇的使用要�砝玻∪绻�我��使用 tcpdump 在 router 上面�O�『明�a』的�鬏��Y料�r, 例如 FTP �鬏��f定,你�X得���l生什�N���}呢? 我��先在主�C端下�_『 tcpdump -i lo port 21 -nn -X 』然後再以 ftp 登入本�C,�K�入�ぬ��c密�a, �Y果你就可以�l�F如下的��r:

[root@linux ~]# tcpdump -i lo -nn -X 'port 21'
    0x0000:  4500 0048 2a28 4000 4006 1286 7f00 0001  E..H*(@.@.......
    0x0010:  7f00 0001 0015 80ab 8355 2149 835c d825  .........U!I./.%
    0x0020:  8018 2000 fe3c 0000 0101 080a 0e2e 0b67  .....<.........g
    0x0030:  0e2e 0b61 3232 3020 2876 7346 5450 6420  ...a220.(vsFTPd.
    0x0040:  322e 302e 3129 0d0a                      2.0.1)..

    0x0000:  4510 0041 d34b 4000 4006 6959 7f00 0001  E..A.K@[email protected]....
    0x0010:  7f00 0001 80ab 0015 835c d825 8355 215d  ........./.%.U!]
    0x0020:  8018 2000 fe35 0000 0101 080a 0e2e 1b37  .....5.........7
    0x0030:  0e2e 0b67 5553 4552 2064 6d74 7361 690d  ...gUSER.dmtsai.
    0x0040:  0a                                       .

    0x0000:  4510 004a d34f 4000 4006 694c 7f00 0001  E..J.O@[email protected]....
    0x0010:  7f00 0001 80ab 0015 835c d832 8355 217f  ........./.2.U!.
    0x0020:  8018 2000 fe3e 0000 0101 080a 0e2e 3227  .....>........2'
    0x0030:  0e2e 1b38 5041 5353 206d 7970 6173 7377  ...8PASS.mypassw
    0x0040:  6f72 6469 7379 6f75 0d0a                 ordisyou..

上面的�出�Y果已�被�化�^了,你必�要自行在你的�出�Y果��中搜�は嚓P的字串才行。 �纳厦孑�出�Y果的特殊字�w中,我��可以�l�F『� FTP ��w使用的是 vsftpd ,�K且使用者�入 dmtsai �@���ぬ�名�Q,且密�a是 mypasswordisyou』 嘿嘿!你�f可不可怕啊!如果使用的是明�a的方式��鬏�你的�W路�Y料? 所以我��才常常在�v啊,�W路是很不安全低!

另外你得�t解,�榱俗��W路介面可以� tcpdump �O�,所以�绦� tcpdump �r�W路介面����釉� 『�e�y模式 (promiscuous)』,所以你��在 /var/log/messages �e面看到很多的警告�息, 通知你�f你的�W路卡被�O定成�殄e�y模式!�e��心,那是正常的。 至於更多的��用,��⒖� man tcpdump �樱�

例�}:如何使用 tcpdump �O� (1)�碜� eth0 介面卡且 (2)通��f定�� port 22 ,(3)目��碓�� 192.168.1.100 的封包�Y料?

答:
  • tcpdump -i eth0 -nn 'port 22 and src host 192.168.1.100'


你可能感兴趣的:(tcpdump)