欢迎关注:1,欢迎关注本博客,你可点击右手边的【QQ邮件订阅】订阅本博客!2,本博客推出江湖救急计划,主要为工作中遇到疑难杂症的兄弟提供远程技术支持和分析,如有需要,请在江湖救急计划页面给我留言!

FortiGate防火墙抓包方法

作者:易隐者 发布于:2012-3-16 17:50 Friday 分类:参考资料

       在使用后台抓包分析命令时,建议大家使用如SecureCRT 这样的远程管理工具,通过telnet 或者ssh 的方式登陆到网关,由于UTM 本身不支持将抓包的结果保存在设备自身的存储空间,因此需要借助SecureCRT 这样远程管理工具接收文件

基本命令

命令: diagnose sniffer packet.
# diag sniffer packet <interface> <'filter'> <verbose> <count>

参数说明

1, interface
<interface> 指定实际的接口名称,可以是真实的物理接口名称,也可以是VLAN 的逻辑接口名称,当使用“any”关键字时,表示抓全部接口的数据包。
例:
#diag sniffer packet port1 //表示抓物理接口为port1 的所有数据包
#diag sniffer packet any //表示抓所有接口的所有数据包
#diag sniffer packet port1-v10 //当在物理接口建立一个VLAN 子接口,其逻辑接口名为port1-v10,此时表示抓port1-v10 接口的所有数据包,此处一定注意一个问题,由于抓包命令中的空格使用来区分参数字段的,但是在逻辑接口创建时,接口名称支持空格,考虑到今后抓包分析的方便,建议在创建逻辑接口时不要带有空格。
2, verbose
<verbose> 指控制抓取数据包的内容
1: print header of packets, //只抓取IP的原地址、源端口、目的地址、目的端口和数据包的Sequence numbers 为系统缺省设置
2: print header and data from ip of packets, //抓取IP数据包的详细信息,包括IP数据的payload。
3: print header and data from ethernet of packets) ,//抓取IP数据包的详细信息,包括IP数据的payload,导出到文本文件可以使有专用的转换工具,转换为Ethereal支持文件格式
例:
【例1】 抓所有接口(interface=any)的任何数据包(filter=none),级别1
(verbose=1)
FG-UTM # dia sni pa any none 1
interfaces=[any]
filters=[none]
nr=2048,fr=1584,b_nr=1024,pg=4096
3.710103 127.0.0.1.1029 -> 127.0.0.1.53: udp 40
【例2】 抓所有接口(interface=any)的任何数据包(filter=none),级别2
(verbose=2),会显示数据包的payload信息。
# diag sniffer packet internal none 2 1
192.168.0.1.22 -> 192.168.0.30.1144: psh 2867817048 ack 1951061933
0x0000 4510 005c 8eb1 4000 4006 2a6b c0a8 0001 E..\..@.@.*k....
0x0010 c0a8 001e 0016 0478 aaef 6a58 744a d7ad .......x..jXtJ..
0x0020 5018 0b5c 8ab9 0000 9819 880b f465 62a8 P..\.........eb.
0x0030 3eaf 3804 3fee 2555 8deb 24da dd0d c684 >.8.?.%U..$.....
0x0040 08a9 7907 202d 5898 a85c facb 8c0a f9e5 ..y..-X..\......
0x0050 bd9c b649 5318 7fc5 c415 5a59 ...IS.....ZY
【例3】 抓所有接口(interface=any)的任何数据包(filter=none),级别3(verbose=3),会显示数据包的payload信息。
FG-UTM # dia sni pa any none 3
interfaces=[any]
filters=[none]
nr=2048,fr=1584,b_nr=1024,pg=4096
3.770099 127.0.0.1.1029 -> 127.0.0.1.53: udp 40
0x0000 0004 0304 0000 0000 9200 0000 2a00 0800
3, count
<count> 指使有抓包命令抓取的数据包的数量
例:
# diag sniffer packet internal none 1 3
192.168.0.30.1156 -> 192.168.0.1.80: syn 2164883624
192.168.0.1.80 -> 192.168.0.30.1156: syn 3792179542 ack 2164883625
192.168.0.30.1156 -> 192.168.0.1.80: ack 3792179543
说明:抓取internal 接口,不使有任何过滤器(及none)级别为1,抓取3个数据包。此处,注意“none”必须要,代表过滤器的类型;注意“1”必须要,否则系统会自动识别为<verbose>参数。
4, filter
<filter> 抓包文件过滤器
语法: '[[src|dst] host<host_name_or_IP1>] [[src|dst]
host<host_name_or_IP2>] [[arp|ip|gre|esp|udp|tcp] [port_num]]
[[arp|ip|gre|esp|udp|tcp] [port_num]]'
此处一定注意任何过滤语法必须使用单引号包含,否则会有问题。
第二种简单语法,适用于主机的会话抓包,无源和目的地址之分
'udp and port 1812 and host client1 and \( client2 or client3 \)'
【例1】使用源地址和目的地址过滤抓包
# diag sniffer packet internal 'src host 192.168.0.130 and dst
host 192.168.0.1' 1
192.168.0.130.3426 -> 192.168.0.1.80: syn 1325244087
192.168.0.1.80 -> 192.168.0.130.3426: syn 3483111189 ack 1325244088
192.168.0.130.3426 -> 192.168.0.1.80: ack 3483111190
192.168.0.130.3426 -> 192.168.0.1.80: psh 1325244088 ack 3483111190
192.168.0.1.80 -> 192.168.0.130.3426: ack 1325244686
192.168.0.130.1035 -> 192.168.0.1.53: udp 26
192.168.0.130.1035 -> 192.168.0.1.53: udp 42
192.168.0.130.1035 -> 192.168.0.1.53: udp 42
192.168.0.130 -> 192.168.0.1: icmp: echo request
192.168.0.130.3426 -> 192.168.0.1.80: psh 1325244686 ack 3483111190
192.168.0.1.80 -> 192.168.0.130.3426: ack 1325244735
192.168.0.130 -> 192.168.0.1: icmp: echo request
【例2】使用源地址和目的地址、以及TCP 关键词过滤抓两个地址间的TCP 流
# diag sniffer packet internal 'src host 192.168.0.130 and dst host
192.168.0.1 and tcp' 1
192.168.0.130.3569 -> 192.168.0.1.23: syn 1802541497
192.168.0.1.23 -> 192.168.0.130.3569: syn 4238146022 ack 1802541498
192.168.0.130.3569 -> 192.168.0.1.23: ack 4238146023
【例3】使用地址(含源地址和目的地址)、以及ICMP 关键词过滤抓某个地址间的ICMP 流量
# diag sniffer packet internal 'host 192.168.0.130 and icmp' 1
192.168.0.130 -> 192.168.0.1: icmp: echo request
192.168.0.1 -> 192.168.0.130: icmp: echo reply
【例4】使用ICMP 关键词抓所有地址间的ICMP 流量
FG-UTM # diagnose sniffer packet port8 'icmp'
0.340847 10.7.10.100 -> 10.7.10.1: icmp: echo request
0.340869 10.7.10.1 -> 10.7.10.100: icmp: echo reply
1.340982 10.7.10.100 -> 10.7.10.1: icmp: echo request
1.340997 10.7.10.1 -> 10.7.10.100: icmp: echo reply
【例5】使用地址(含源地址和目的地址)、以及TCP 的端口关键词过滤抓两个地址间的TCP 对应端口流量
# diag sniffer packet internal 'host 192.168.0.130 or host 192.168.0.1
and tcp and port 80' 1
192.168.0.130.3625 -> 192.168.0.1.80: syn 2057246590
192.168.0.1.80 -> 192.168.0.130.3625: syn 3291168205 ack 2057246591
192.168.0.130.3625 -> 192.168.0.1.80: ack 3291168206
192.168.0.130.3625 -> 192.168.0.1.80: psh 2057246591 ack 3291168206
192.168.0.1.80 -> 192.168.0.130.3625: ack 2057247265
【例6】使用接口、以及TCP 的端口关键词过滤抓多个地址间的TCP 非对应端口流量,下例为不抓取23 端口的TCP 流量
FG-UTM # diagnose sniffer packet any 'tcp and port !23'
interfaces=[any]
filters=[tcp and port !23]
nr=8192,fr=1680,b_nr=4096,pg=4096
9.323698 10.7.10.100.1853 -> 10.7.10.1.443: syn 4042810565
9.323786 10.7.10.1.443 -> 10.7.10.100.1853: syn 177080791 ack 4042810566
9.324070 10.7.10.100.1853 -> 10.7.10.1.443: ack 177080792
9.326695 10.7.10.100.1853 -> 10.7.10.1.443: psh 4042810566 ack 177080792
9.326765 10.7.10.1.443 -> 10.7.10.100.1853: ack 4042810644
【例7】使用接口、以及IP 的协议端口proto 关键词过滤抓多个地址间的IP层对应端口流量,下例为抓取IP 层协议号为 1 的及ICMP 的流量
FG-UTM # diagnose sniffer packet port8 'ip proto 1'
interfaces=[port8]
filters=[ip proto 1]
nr=8192,fr=1664,b_nr=4096,pg=4096
5.701978 10.7.10.100 -> 10.7.10.1: icmp: echo request
5.702056 10.7.10.1 -> 10.7.10.100: icmp: echo reply
6.694490 10.7.10.100 -> 10.7.10.1: icmp: echo request

使用转化工具的方法

首先,由于UTM 自身不支持抓包信息的存储,必须使有其他工具进行抓包信息的收集,本文档使有SecureCRT 进行文本收集。
其次,使用抓包命令的<verbose>级别为3,此时导出的文件才能被ethereal识别。
第三,要获取大量信息时,使有SecureCRT 工具应该通过远程数据连接(telnet或者时SSH 方式,使用主机串口工作在这种模式下,由于串口速率的问题,无法获得大量数据。
第四,使用单独提供的文件进行转换,主机必须提前perl 的解释程序和Ethereal 软件,并在提供的转换使用的脚本文件中做必要的路径指向。
1, SecureCRT 的配置
正常安装SecureCRT 软件,并通过远程方式登陆到UTM 网关。
1、配置:文件接收――工具栏――Transfer――Receive ASCII
2、选择配置文件存储的路径,文件格式为*.txt
执行抓包命令:
FG-UTM # diagnose sniffer packet any none 3
其中3 代表抓包的输出文件支持经过转换为Ethereal 格式文件。
2, 编辑使用的脚本文件
编辑提供的转换文件脚本fgt2eth.pl,修改脚本的第59 行,此处需要指明Ethereal 的安装路径,下例中Ethereal 抓包分析软件安装在D 分区的根目录的Ethereal 目录下,只需要指明安装目录即可,注意使用\\
第65 行:my $text2pcapdirwin = "d:\\Ethereal";
转换文件脚本fgt2eth.pl 请参考本文档『附录』,注意一定要进行必要的编辑。
3, 转换操作
1、首先正常安装Perl 解释器,本例使用的是ActivePerl 5.8.8 Build 819 版本的perl 语言工具。(工具可以自己从网上下载)
2、在DOS 命令行执行
C:\>perl D:\ fgt2eth.pl -in D:\packet
[转换脚本文件的路径和文件名] [输入参数] [输入抓包获取的文件名]
缺省的输出文件与输入的相同路径下。
C:\>perl D:\fgt2eth.pl -in D:\packet
Conversion of file D:\packet phase 1 (FG verbose 3 conversion)
Output written to D:\packet.eth.
Conversion of file D:\packet phase 2 (windows text2pcap)
Ouput file to load in Ethereal is 'D:\packet.eth'
上例显示,转换成功,转化输出的文件在D 分区下,转换生成的文件为packet.eth'。
如果需要改变输出的文件名,执行命令:
C:\>perl D:\ fgt2eth.pl -in D:\packet –out D:\[输出文件名]
3、使用Ethereal 打开生成的转换文件
上图显示生成的文件可以正常打开,并使用Ethereal 工具分析。

阅读全文>>

标签: 防火墙 抓包 FortiGate 飞塔防火墙 diagnose sniffer

评论(0) 引用(0) 浏览(12878)

ROS软路由抓包方法

作者:易隐者 发布于:2012-3-16 17:50 Friday 分类:参考资料

ROS软路由本身是有抓包功能
在管理界面中,进入“TOOL->Packet Sniffer”,如下图: 

点击查看原图

点击查看原图

点击查看原图

点击查看原图

点击查看原图

点击查看原图

阅读全文>>

标签: 抓包 sniffer ROS 软路由

评论(0) 引用(0) 浏览(30344)

深信服上网行为管理网关抓包方法

作者:易隐者 发布于:2012-3-16 17:49 Friday 分类:参考资料

       深信服是主流的上网行为管理网关,在用户的网络环境中比较常见,而且这种设备会对进出的数据报文做深层的处理,因此往往是导致网络故障的可疑点之一,我们可以利用深信服设备自带的抓包功能实现对设备进出口数据包的捕获。
1,在深信服管理界面里,“日志与故障排除”->“数据包抓取”目录下,我们可以设置捕包的条件,如下图所示: 

点击查看原图

2,捕包完成后,我们可以下载下来用科来或者wireshark打开进行分析,下载下来的格式为.pcap格式。下载的路径为:“网关日志与故障排除”->“数据包抓取”->“已抓取的数据包”->“下载”,图示如下:

点击查看原图

点击查看原图 

阅读全文>>

标签: wireshark 抓包 深信服 上网行为管理

评论(0) 引用(0) 浏览(13448)

联想网御防火墙抓包方法

作者:易隐者 发布于:2012-3-16 17:49 Friday 分类:参考资料

       网御防火墙也带有tcpdump抓包功能,网御防火墙使用tcpdump需要使用root登录。

登录用户名为:root
密码为:g8#6vod3

       关于tcpdump使用的方法参见linux的《tcpdump的使用手册》。

 WEBUI图形化界面的方式

       在WEBUI图形化界面中进行抓包相对比较简单,在“状态检测”->“网络测试”中,有“tcpdump”选项,但是只能指定接口来抓包,如下图示:

点击查看原图


命令行方式

       通过串口、ssh或者telnet的方式登录防火墙。
1,首先需要在防火墙上先要开启相应的管理权限,如下图所示: 

点击查看原图

2,用户名密码使用dump这是一个专门的抓报用户名。也可以用管理员登录的身份进行抓包,用户名与密码:administrator  或者是用户名:administrator 密码:leadsec@7766 ,不同的版本密码不一样。
3,tcpdump的使用说明和案例
tcpdump -i eth0  -c 1000 –s 0 –w  eth0.cap   (注:物理设备显示或者WEBUI界面显示的接口名称为FEX表示,而抓包时是以ETHY显示,Y为X-1)
-c 1000  代表抓1000个包,-s  0  代表抓完整的数据包(可省略)    -w    代表写入dom  ,文件名后坠cap
例如:抓来自192.168.100.77的包,用命令
tcpdump -i eth1 -n host 192.168.100.77  -c 1000 –s 0 –w  eth0.cap
-n表示不解析域名
例如:抓来自端口号为9998的包,用命令
tcpdump -i eth1 port 9998 -c 1000 –s 0 –w  eth0.cap
例如:抓来自vpn内的包,用命令
tcpdump -i ipsec -c 1000 –s 0 –w  eth0.cap
第二步、上传抓包
使用sz   eth0.cap命令可以将第一步所抓的包上传到SecureCRT软件安装的目录下的一个download的子目录里,文件名为eth0.cap,用ethereal可以打开这个文件。
dump>sz  eth0.cap
第三步、清除抓包文件  ,这个步骤一定要做
用命令rm  eth0.cap文件可以清空用tcpdump抓的包

阅读全文>>

标签: tcpdump 防火墙 抓包 联想网御

评论(0) 引用(0) 浏览(12682)

Juniper防火墙下抓包方法

作者:易隐者 发布于:2012-3-16 17:44 Friday 分类:参考资料

debug flow basic

       相对于其他防火墙而言,Juniper防火墙提供许多有效的查错工具,其中之一就是debug flow basic, 应用方式举例如下:
1. 先设置过滤列表,使得防火墙只对需要的数据包进行分析. 即set ffilter命令:
ns208-> set ffilter ?  
dst-ip      flow filter dst ip
dst-port    flow filter dst port
ip-proto    flow filter ip proto
src-ip       flow filter src ip
src-port    flow filter src port
=DBtZ|~4f@ 
ns208-> set ffilter src-ip 192.168.1.10
filter added 
ns208-> get ff
Flow filter based on:
id:0 src ip 192.168.1.10
ns208-> set ffilter src-ip 192.168.1.11
filter added
ns208-> get ff
Flow filter based on:
id:0 src ip 192.168.1.10
id:1 src ip 192.168.1.11
看出来了吗? 设置两次ffilter的结果是两个过滤列表之间是OR的关系. 如果直接设  

set ffilter src-ip 192.168.1.11 dst-ip 194.73.82.242 就是AND的关系了.
2. 开启debug
ns208-> debug flow basic
3. 发送测试数据包或让小部分流量穿越防火墙
4. 停止debug
ns208-> undebug all
5. 检查防火墙对所转发的符合过滤条件的数据包的分析结果: }
ns208-> get db stream
****** 12553.0: packet received [60]****** Packet arrived on the eth1 interface  tF(UJO xk 
ipid = 29503(733f), @d7806910 IP id
packet passed sanity check. I rbyB6. ¬ 
ethernet1:192.168.1.10/1280->194.73.82.242/512,1(8/0) Src IP, Port, Dst IP, port incl Protocol 1
chose interface ethernet1 as incoming nat if. Int eth1 is placed in NAT mode  s<`Nxz@0 
search route to (192.168.1.10->194.73.82.242) in vr trust-vr for vsd-0/flag-0/ifp-null Route lookup in trust-vr 
route 194.73.82.242->1.1.1.2, to ethernet3 route found to gateway 1.1.1.2 exiting interface int eth3 
routed (194.73.82.242, 0.0.0.0) from ethernet1 (ethernet1 in 0) to ethernet3 packet routed
policy search from zone 2-> zone 1 Policy lookup performed from Trust (2) to Untrust (1) 
Permitted by policy 3 matched policy ID 3
choose interface ethernet3 as outgoing phy if choose physical interface eth3
no loop on ifp ethernet3. r4Ok(8f6¬D 
session application type 0, name None, timeout 60sec session time created as 60 seconds for ICMP
service lookup identified service 0. service lookup performed 
existing vector list 1-559ef00.
Session (id:76) created for first pak 1 Create session with ID 76 
route to 1.1.1.2 Routed packet to 1.1.1.2 
arp entry found for 1.1.1.2 Already had ARP entry for 1.1.1.2 
nsp2 wing prepared, ready
cache mac in the session Cached MAC address in the session
flow got session.
flow session id 76 
post addr xlation: 1.1.1.1->194.73.82.242. Translate src address to egress interface IP
packet send out to 0010db103041 through ethernet3 Packet sent out on the wire
6. 清除防火墙缓存的debug结果: 
ns208-> clear db
7. 清除防火墙的过滤设置 
ns208->unset ffilter 0
ns208->get ffilter

Snoop

        Snoop 是Juniper防火墙另外一个有效的查错工具,它和debug flow basic的区别是: snoop类似于在防火墙的接口上抓包,可以根据具体接口, 数据包的方向, 协议等等要素进行过滤抓包; debug flow basic则对数据包如何穿越防火墙进行分析,将防火墙的对数据包的处理过程显示出来. Snoop的使用举例如下: 1. 先设置过滤列表,使得防火墙只对需要的数据包进行分析. 即snoop filter命令: 
ns208-> snoop filterdelete          delete snoop filter >
ethernet        snoop specified ethernet
id            snoop filter id |
ip            snoop ip packet ?YcG
off            turn off snoop filter dwjYU\on            turn on snoop filter
tcp            snoop tcp packet udp            snoop udp packet 7 

ns208-> snoop filter ip
direction        snoop direction
dst-ip          snoop filter dst ip dst-port        snoop filter dst port
interface        interface name
ip-proto        snoop filter ip proto a port          src or dst port Pv
src-ip          snoop filter src ip 1)TEIsrc-port        snoop filter src port
    IPv4 Address 
offset          ip offset UqDqF
ns208-> snoop info
Snoop: OFF
Filters Defined: 2, Active Filters 2
Detail: OFF, Detail Display length: 96 EE
Snoop filter based on: id 1(on): IP dir(I) qc
id 2(on): IP dst-ip 172.27.68.1 dir(B) :WdL
RHtx3{S/ 
2. 开启snoop 进行抓包 YC
ns208-> snoopStart Snoop, type ESC or 'snoop off' to stop, continue? [y]/n y
3. 发送测试数据包或让小部分流量穿越防火墙
 4. 停止snoop ns208-> snoop off
5. 检查防火墙对所转发的符合过滤条件的数据包的分析结果(非采用上面的filter,而是采用另外的filter): 
ns208-> get db stream 5Y =M <ZEC&NBSP; q#I>m¬u=JJ 
          1.    The packet comes into the Netscreen from the Trusted side client.            55864.0: 0(i):005004bb815f->0010db00ab30/0800    D *MoEd 
            10.0.0.36->10.10.10.14/1, tlen=60    vhl=45, id=31489, frag=0000, ttl=32
          2.    The packet then leaves the Netscreen, on it’s way to the destination host.      55864.0: 1(o):0010db00ab31->00104bf3d073/0800            10.10.10.10->10.10.10.14/1, tlen=60 uS
            vhl=45, id=31489, frag=0000, ttl=31 r
          3.    The packet then returns to the Netscreen from the host. &W          55864.0: 1(i):00104bf3d073->0010db00ab31/0800 |_+% 'XtU 
              10.10.10.14->10.10.10.10/1, tlen=60 |yxLm              vhl=45, id=12289, frag=0000, ttl=128 
          4.    Finally, the packet is returned to the client on the trusted side. -
          55864.0: 0(o):0010db00ab30->005004bb815f/0800 4 /W|~=y            10.10.10.14->10.0.0.36/1, tlen=60 
            vhl=45, id=12289, frag=0000, ttl=127 6,19usXw:M 
6. 清除防火墙缓存的debug结果:ns208-> clear db W7. 清除防火墙的snoop过滤设置 
ns208-> snoop filter delete   
All filters removed

阅读全文>>

标签: debug 防火墙 抓包 Juniper snoop

评论(0) 引用(0) 浏览(9850)

Powered by 易隐者 基于emlog 皖ICP备12002343号-1