Forigate 防火墙的抓包 及 Msn messenger 包分析
Forigate 防护墙有专门的记录设备,不过为了省钱,我们没去买。不过我们可以用ssh 把输出保存到本地慢慢分析,格式
ssh admin@[firewall ip] "diagnose sniffer packet [your wan port.eg:port2] 'tcp and port 1863' 3 " > [logfile]
例如:
ssh [email protected] "diagnose sniffer packet port4 'tcp and port 1863' 3 " > today.log
10.10.79.1 是防火墙ip port4是外网端口, 1863是msn messenger 使用的tcp 端口 ,最后把结果抓到文件 today.log
抓下来的文件片段如下:
Fortigate-1000A # nr
=
8192
,
fr
=
1664
,
b_nr
=
4096
,
pg
=
4096
1.497684 10.10.72.106.5527 -> 64.4.34.81.1863 : psh 607135265 ack 1208056501
0x0000 0009 0f61 0747 000b 5fcd 2e00 0800 4500 a.G.._..E.
0x0010 00ac 0295 4000 7f06 43ee 0a0a 486a 4004 .@CHj@.
0x0020 2251 1597 0747 2430 2621 4801 7ab5 5018 " QG$0&!H.z.P.
0x0030 ffff a6ef 0000 5555 5820 3635 3130 2031 UUX.6510.1
0x0040 3138 0d0a 3c44 6174 613e 3c50 534d 3e3c 18..<Data><PSM><
0x0050 2f50 534d 3e3c 4375 7272 656e 744d 6564 /PSM><CurrentMed
0x0060 6961 3e3c 2f43 7572 7265 6e74 4d65 6469 ia></CurrentMedi
0x0070 613e 3c4d 6163 6869 6e65 4775 6964 3e7b a><MachineGuid>{
0x0080 4446 3139 3630 4435 2d37 4232 352d 3444 DF1960D5-7B25-4D
0x0090 3630 2d39 3044 322d 3430 3834 3131 3430 60-90D2-40841140
0x00a0 3939 3038 7d3c 2f4d 6163 6869 6e65 4775 9908}</MachineGu
0x00b0 6964 3e3c 2f44 6174 613e id></Data>
1.717049 64.4.34.128.1863 -> 10.10.72.231.1729: psh 3029948233 ack 4074959534
0x0000 0000 0c07 ac4f 0009 0f61 0747 0800 4500 ..Oa.G..E.
0x0010 00bf 21ea 4000 7106 31da 4004 2280 0a0a [email protected].@. "
0x0020 48e7 0747 06c1 b499 5749 f2e2 f2ae 5018 H..G.WI.P.
0x0030 feac 0c89 0000 5542 5820 7979 666f 7831 UBX.yyfox1
0x0040 3937 3540 686f 746d 6169 6c2e 636f 6d20 975 @hotmail.com.
0x0050 3120 3131 380d 0a3c 4461 7461 3e3c 5053 1.118 ..<Data><PS
0x0060 4d3e 3c2f 5053 4d3e 3c43 7572 7265 6e74 M></PSM><Current
0x0070 4d65 6469 613e 3c2f 4375 7272 656e 744d Media></CurrentM
0x0080 6564 6961 3e3c 4d61 6368 696e 6547 7569 edia><MachineGui
0x0090 643e 7b44 4631 3936 3044 352d 3742 3235 d>{DF1960D5-7B25
0x00a0 2d34 4436 302d 3930 4432 2d34 3038 3431 -4D60-90D2- 40841
0x00b0 3134 3039 3930 387d 3c2f 4d61 6368 696e 1409908 }</Machin
0x00c0 6547 7569 643e 3c2f 4461 7461 3e eGuid></Data>
1.725733 64.4.34.81.1863 -> 10.10.72.106.5527 : psh 1208056501 ack 607135397
0x0000 0000 0c07 ac4f 0009 0f61 0747 0800 4500 ..Oa.G..E.
0x0010 0034 fa12 4000 6f06 5ce8 4004 2251 0a0a .4 [email protected].\.@. " Q..
0x0020 486a 0747 1597 4801 7ab5 2430 26a5 5018 Hj.G..H.z.$0&.P.
0x0030 facc 93ab 0000 5555 5820 3635 3130 2030 UUX.6510.0
0x0040 0d0a ..
1.727768 207.46.110.23.1863 -> 10.10.72.111.1776: psh 4237815546 ack 191619292
0x0000 0000 0c07 ac4f 0009 0f61 0747 0800 4500 ..Oa.G..E.
0x0010 00bf 088b 4000 6f06 72ef cf2e 6e17 0a0a [email protected]n
0x0020 486f 0747 06f0 fc97 eefa 0b6b e0dc 5018 Ho.G.k..P.
0x0030 fb6d 4ee9 0000 5542 5820 7979 666f 7831 .mNUBX.yyfox1
0x0040 3937 3540 686f 746d 6169 6c2e 636f 6d20 [email protected].
0x0050 3120 3131 380d 0a3c 4461 7461 3e3c 5053 1.118..<Data><PS
1.497684 10.10.72.106.5527 -> 64.4.34.81.1863 : psh 607135265 ack 1208056501
0x0000 0009 0f61 0747 000b 5fcd 2e00 0800 4500 a.G.._..E.
0x0010 00ac 0295 4000 7f06 43ee 0a0a 486a 4004 .@CHj@.
0x0020 2251 1597 0747 2430 2621 4801 7ab5 5018 " QG$0&!H.z.P.
0x0030 ffff a6ef 0000 5555 5820 3635 3130 2031 UUX.6510.1
0x0040 3138 0d0a 3c44 6174 613e 3c50 534d 3e3c 18..<Data><PSM><
0x0050 2f50 534d 3e3c 4375 7272 656e 744d 6564 /PSM><CurrentMed
0x0060 6961 3e3c 2f43 7572 7265 6e74 4d65 6469 ia></CurrentMedi
0x0070 613e 3c4d 6163 6869 6e65 4775 6964 3e7b a><MachineGuid>{
0x0080 4446 3139 3630 4435 2d37 4232 352d 3444 DF1960D5-7B25-4D
0x0090 3630 2d39 3044 322d 3430 3834 3131 3430 60-90D2-40841140
0x00a0 3939 3038 7d3c 2f4d 6163 6869 6e65 4775 9908}</MachineGu
0x00b0 6964 3e3c 2f44 6174 613e id></Data>
1.717049 64.4.34.128.1863 -> 10.10.72.231.1729: psh 3029948233 ack 4074959534
0x0000 0000 0c07 ac4f 0009 0f61 0747 0800 4500 ..Oa.G..E.
0x0010 00bf 21ea 4000 7106 31da 4004 2280 0a0a [email protected].@. "
0x0020 48e7 0747 06c1 b499 5749 f2e2 f2ae 5018 H..G.WI.P.
0x0030 feac 0c89 0000 5542 5820 7979 666f 7831 UBX.yyfox1
0x0040 3937 3540 686f 746d 6169 6c2e 636f 6d20 975 @hotmail.com.
0x0050 3120 3131 380d 0a3c 4461 7461 3e3c 5053 1.118 ..<Data><PS
0x0060 4d3e 3c2f 5053 4d3e 3c43 7572 7265 6e74 M></PSM><Current
0x0070 4d65 6469 613e 3c2f 4375 7272 656e 744d Media></CurrentM
0x0080 6564 6961 3e3c 4d61 6368 696e 6547 7569 edia><MachineGui
0x0090 643e 7b44 4631 3936 3044 352d 3742 3235 d>{DF1960D5-7B25
0x00a0 2d34 4436 302d 3930 4432 2d34 3038 3431 -4D60-90D2- 40841
0x00b0 3134 3039 3930 387d 3c2f 4d61 6368 696e 1409908 }</Machin
0x00c0 6547 7569 643e 3c2f 4461 7461 3e eGuid></Data>
1.725733 64.4.34.81.1863 -> 10.10.72.106.5527 : psh 1208056501 ack 607135397
0x0000 0000 0c07 ac4f 0009 0f61 0747 0800 4500 ..Oa.G..E.
0x0010 0034 fa12 4000 6f06 5ce8 4004 2251 0a0a .4 [email protected].\.@. " Q..
0x0020 486a 0747 1597 4801 7ab5 2430 26a5 5018 Hj.G..H.z.$0&.P.
0x0030 facc 93ab 0000 5555 5820 3635 3130 2030 UUX.6510.0
0x0040 0d0a ..
1.727768 207.46.110.23.1863 -> 10.10.72.111.1776: psh 4237815546 ack 191619292
0x0000 0000 0c07 ac4f 0009 0f61 0747 0800 4500 ..Oa.G..E.
0x0010 00bf 088b 4000 6f06 72ef cf2e 6e17 0a0a [email protected]n
0x0020 486f 0747 06f0 fc97 eefa 0b6b e0dc 5018 Ho.G.k..P.
0x0030 fb6d 4ee9 0000 5542 5820 7979 666f 7831 .mNUBX.yyfox1
0x0040 3937 3540 686f 746d 6169 6c2e 636f 6d20 [email protected].
0x0050 3120 3131 380d 0a3c 4461 7461 3e3c 5053 1.118..<Data><PS
粗略看下 结果,绝大多数是协议控制包,和msn机器人发的消息报,我统计下来 平均 每10000个包里面,实际消息包不到100个,即不到1%,所以需要写脚本,刷选出来消息。
为了分析TCP报,可以使用dpkt这个python moudle。通过处理结果文件,将文本格式的包数据,转换成实际的二进制数组,传给dpkt,通过它生成结构化的以太网包对象。
例如一个以太网包 pkt,其pkt.src和pkt.dest分别为原和目的端mac地址,其pkt.data为所包涵的ip包.所以pkt.data.src和pkt.data.dest就是原和目的端ip地址。pkt.data.data为ip包所包涵的tcp包,pkt.data.data.dport和pkt.data.data.sport为原和目的端口。实际的协议层数据为pkt.data.data.data,通过对捕捉到的包简单分析,有消息的包都包涵 字符“Content-Type: text/plain”,所以可以写个简单的正则表达式来找出包涵消息的报文。
原本打算发出代码和示例的,因为代码是赶工的,写的很简陋 ,纯粹 it just work这种的,就不拿出来献丑了。打算重新整理一下,再做个界面,希望能抓紧时间尽快做好吧。