ssh admin@[firewall ip] "diagnose sniffer packet [your wan port.eg:port2] 'tcp and port 1863' 3 " > [logfile]
例如:
ssh admin@10.10.79.1 "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
.@
C
Hj@.
0x0020 2251 1597 0747 2430 2621 4801 7ab5 5018 "Q
G$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
..O
a.G..E.
0x0010 00bf 21ea 4000 7106 31da 4004 2280 0a0a ..!.@.q.1.@."
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
..O
a.G..E.
0x0010 0034 fa12 4000 6f06 5ce8 4004 2251 0a0a .4..@.o.\.@."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
..O
a.G..E.
0x0010 00bf 088b 4000 6f06 72ef cf2e 6e17 0a0a
.@.o.r
n
0x0020 486f 0747 06f0 fc97 eefa 0b6b e0dc 5018 Ho.G
.k..P.
0x0030 fb6d 4ee9 0000 5542 5820 7979 666f 7831 .mN
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
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


0x0010 00ac 0295 4000 7f06 43ee 0a0a 486a 4004



0x0020 2251 1597 0747 2430 2621 4801 7ab5 5018 "Q

0x0030 ffff a6ef 0000 5555 5820 3635 3130 2031


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


0x0010 00bf 21ea 4000 7106 31da 4004 2280 0a0a ..!.@.q.1.@."

0x0020 48e7 0747 06c1 b499 5749 f2e2 f2ae 5018 H..G


0x0030 feac 0c89 0000 5542 5820 7979 666f 7831


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


0x0010 0034 fa12 4000 6f06 5ce8 4004 2251 0a0a .4..@.o.\.@."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


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


0x0010 00bf 088b 4000 6f06 72ef cf2e 6e17 0a0a



0x0020 486f 0747 06f0 fc97 eefa 0b6b e0dc 5018 Ho.G


0x0030 fb6d 4ee9 0000 5542 5820 7979 666f 7831 .mN

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
粗略看下 結果,絕大多數是協議控制包,和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這種的,就不拿出來獻丑了。打算重新整理一下,再做個界面,希望能抓緊時間盡快做好吧。