工作任务一 生成树欺骗攻击与防御策略 【工作目的】 掌握交换机生成树选举过程、欺骗原理、攻击过程和防范策略。 【工作背景】 A 企业收购B企业,合并后两企业技术部和工程部分布在办公楼A 栋和B栋某楼 层,通过接入层交换机SW1和SW2连接起来,经三层交换机SW3(根交换机)汇聚后,通 过vlan40虚拟接口与企业路由器R1相连,接入Internet路由器R2。其中vlan10为技 术部,vlan20为工程部,vlan30为服务器群。 【工作任务】 A 栋楼某员工想获得B栋楼工程部主机与外网通信的机密信息,将黑客交换机接入 SW1和SW2中工程部vlan20任一接口(E0/0/11~E0/0/22),并将黑客交换机设置为 根交换机,以此劫持SW2所有流量,从中分析工程部主机登录的账号和密码。 工程部主机账号屡遭被盗后,管理员发现SW3为非根交换机,初步判定为生成树欺 骗攻击所致,遂将SW1和SW2主机接入端口(Access)设为边缘端口,避免重演SW1和 SW2流量劫持事件。 【任务分析】 生成树端口有Disable、Blocking、Listening、Learning、Forwarding5个状态。交换机 边缘端口(Portfast)不接收BPDU,选举时直接从阻塞状态转变为转发状态,不参与生成 树选举过程。默认情况下,交换机所有端口均为非边缘端口。为避免生成树欺骗攻击,可 将交换机用于主机接入的端口设为边缘端口。 将交换机E0/0/1接口配置为边缘端口: [Huawei]interface Ethernet0/0/1 [Huawei-Ethernet0/0/1]stp edged-port enable 【设备器材】 接入层交换机(S3700)3台,汇聚层交换机(S5700)1台,路由器(AR1220)2台,主机 2 4台,各主机分别承担角色见表1-1。 表1-1 主机配置表 角 色接入方式网卡设置IP地址操作系统工 具 技术部主机Cloud1接入VMnet1 192.168.1.10 Win7/10 工程部主机Cloud2接入VMnet2 192.168.2.10 Win7/10 内网服务器eNSPServer接入192.168.3.10 公网Web服务器Cloud3接入VMnet3 116.64.100.10/24 Win2008/2012/2016 BBSWeb 【环境拓扑】 工作拓扑图如图1-1所示。 图1-1 工作拓扑图 【工作过程】 一、基本配置@ 1.交换机vlan和端口配置 <Huawei>system-view [Huawei]sysname SW1 [SW1]vlan batch 10 20 //batch:批量 [SW1]stp enable //STP 默认开启,本行可不输 [SW1]stp mode rstp [SW1]port-group 1 //技术部组 [SW1-port-group-1]group-member Ethernet 0/0/1 to Ethernet 0/0/10 [SW1-port-group-1]port link-type access [SW1-port-group-1]port default vlan 10 3 [SW1-port-group-1]quit [SW1]port-group 2 //工程部组 [SW1-port-group-2]group-member Ethernet 0/0/11 to Ethernet 0/0/22 [SW1-port-group-1]port link-type access [SW1-port-group-1]port default vlan 20 [SW1-port-group-2]quit [SW1]port-group 3 //Trunk 组 [SW1-port-group-3]group-member GigabitEthernet 0/0/1 GigabitEthernet 0/0/2 [SW1-port-group-3]port link-type trunk [SW1-port-group-3]port trunk allow-pass vlan 10 20 [SW1-port-group-2]quit [SW1] <Huawei>system-view [Huawei]sysname SW2 [SW2]vlan batch 10 20 [SW2]stp enable [SW2]stp mode rstp [SW2]port-group 1 //技术部组 [SW2-port-group-1]group-member Ethernet 0/0/1 to Ethernet 0/0/10 [SW2-port-group-1]port link-type access [SW2-port-group-1]port default vlan 10 [SW2-port-group-1]quit [SW2]port-group 2 //工程部组 [SW2-port-group-2]group-member Ethernet 0/0/11 to Ethernet 0/0/22 [SW2-port-group-2]port link-type access [SW2-port-group-2]port default vlan 20 [SW2-port-group-2]quit [SW2]port-group 3 //Trunk 组 [SW2-port-group-3]group-member GigabitEthernet 0/0/1 GigabitEthernet 0/0/2 [SW2-port-group-3]port link-type trunk [SW2-port-group-3]port trunk allow-pass vlan 10 20 [SW2-port-group-3]quit [SW2] <Huawei>system-view [Huawei]sysname SW3 [SW3]vlan batch 10 20 30 40 [SW3]stp enable [SW3]stp mode rstp [SW3]stp root primary //设置为主根,优先级为0(优先级最高) [SW3]interface GigabitEthernet 0/0/1 [SW3-GigabitEthernet0/0/1]port link-type trunk [SW3-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20 //表面上含义是GE 0/0/1Trunk 口允许vlan 10 和vlan 20 通过,相当于把GE 0/0/1 加入 vlan 10 和vlan 20,此时vlan 10 和vlan 20 有物理接口,两个vlan 才能处于Up 状态。假 如一个vlan 没有任何接口,vlan 永远处于Down 状态 [SW3-GigabitEthernet0/0/1]quit [SW3]interface GigabitEthernet 0/0/2 4 [SW3-GigabitEthernet0/0/2]port link-type trunk [SW3-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20 [SW3-GigabitEthernet0/0/2]quit [SW3]interface GigabitEthernet 0/0/3 [SW3-GigabitEthernet0/0/3]port link-type access [SW3-GigabitEthernet0/0/3]port default vlan 30 //此时交换机vlan 30 包含GE0/0/3,vlan 30 才会处于Up 状态 [SW3]interface GigabitEthernet 0/0/4 [SW3-GigabitEthernet0/0/4]port link-type trunk [SW3-GigabitEthernet0/0/4]port trunk allow-pass vlan all [SW3-GigabitEthernet0/0/4]quit [SW3]interface Vlanif 10 [SW3-Vlanif10]ip address 192.168.1.1 24 [SW3-Vlanif10]quit [SW3]interface Vlanif 20 [SW3-Vlanif20]ip address 192.168.2.1 24 [SW3-Vlanif20]quit [SW3]interface Vlanif 30 [SW3-Vlanif30]ip address 192.168.3.1 24 [SW3-Vlanif30]quit [SW3]interface Vlanif 40 [SW3-Vlanif40]ip address 192.168.4.1 24 [SW3-Vlanif40]quit [SW3]interface GigabitEthernet 0/0/4 [SW3-GigabitEthernet0/0/4]port trunk pvid vlan 40 //vlan 40 与R1 的GE 0/0/0 接口相连。虽然vlan 40 包含GE 0/0/4 接口,但是默认仍属于 vlan 1,这与思科不同。将端口更改默认vlan,Access 模式命令为port default vlan 40, Trunk 模式命令为port trunk pvid vlan 40 [SW3-GigabitEthernet0/0/4]quit [SW3] 2.接口IP与路由协议配置 [SW3]ospf 1 [SW3-ospf-1]area 0 [SW3-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 [SW3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255 [SW3-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255 [SW3-ospf-1-area-0.0.0.0]network 192.168.4.0 0.0.0.255 [SW3-ospf-1-area-0.0.0.0]quit [SW3-ospf-1]quit [SW3]ip route-static 0.0.0.0 0.0.0.0 192.168.4.2 [SW3] <Huawei>system-view [Huawei]sysname R1 [R1]interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0]ip address 192.168.4.2 24 [R1-GigabitEthernet0/0/0]quit [R1]interface Serial 2/0/0 5 [R1-Serial2/0/0]ip address 202.116.64.1 24 [R1-Serial2/0/0]quit [R1]ospf 1 [R1-ospf-1]area 0 [R1-ospf-1-area-0.0.0.0]network 192.168.4.0 0.0.0.255 [R1-ospf-1-area-0.0.0.0]quit [R1-ospf-1]quit [R1]ip route-static 0.0.0.0 0.0.0.0 202.116.64.2 [R1] <Huawei>system-view [Huawei]sysname R2 [R2]interface GigabitEthernet 0/0/0 [R2-GigabitEthernet0/0/0]ip address 116.64.100.1 24 [R2-GigabitEthernet0/0/0]quit [R2]interface Serial 2/0/0 [R2-Serial2/0/0]ip address 202.116.64.2 24 [R2-Serial2/0/0]quit [R2] 3.路由器R1Easy-IP配置 [R1]acl 2000 //基本ACL: <2000~2999>,只能根据源IP 地址过滤。高级ACL: < 3000~3999>,基于源IP、目 的IP、协议类型等过滤,类似扩展ACL [R1-acl-basic-2000]rule permit source 192.168.0.0 0.0.255.255 [R1-acl-basic-2000]quit [R1]interface Serial 2/0/0 [R1-Serial2/0/0]nat outbound 2000 //加载ACL2000 过滤规则与公网接口出栈之间的转换关系,即把内网IP 经过滤规则匹配后转换 为公网接口IP [R1-Serial2/0/0]quit [R1] 注:Easy-IP直接使用接口IP作为NAT 转换后地址;NAPT 需指定具体地址池IP 作为NAT转换后的地址。 4.基本配置验证 (1)查看SW3生成树与端口详细信息。 [SW3]display stp -------[CIST Global Info][Mode RSTP]------- CIST Bridge :0 .4c1f-cc32-6eac //当前网桥优先级和MAC 地址 Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 CIST Root/ERPC :0 .4c1f-cc32-6eac / 0 //生成树选举的根网桥优先级和MAC 地址,其值与SW3 网桥相同,从而 判断SW3 就是根网桥 CIST RegRoot/IRPC :0 .4c1f-cc32-6eac / 0 CIST RootPortId :0.0 BPDU-Protection :Disabled 6 CIST Root Type :Primary root TC or TCN received :216 TC count per hello :0 STP Converge Mode :Normal Time since last TC :0 days 0h:0m:13s Number of TC :89 Last TC occurred :GigabitEthernet0/0/1 ----[Port1(GigabitEthernet0/0/1)][FORWARDING]---- //以下为所有端口详细信息 Port Protocol :Enabled Port Role :Designated Port Port Priority :128 Port Cost(Dot1T ) :Config=auto / Active=20000 Designated Bridge/Port :0.4c1f-cc32-6eac / 128.1 Port Edged :Config=default / Active=disabled Point-to-point :Config=auto / Active=true Transit Limit :147 packets/hello-time ----More --- - //显示的信息很长,按Enter 键显示下一行,按Space 键显示下一 页,按Ctrl+C 组合键或Tab 键退出显示信息 注:CIST(CommonandInternalSpanningTree,公共和内部生成树)是连接一个交 换网络内所有设备的单生成树。 (2)查看SW3生成树接口简要信息。 [SW3]display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 DESI FORWARDING NONE 0 GigabitEthernet0/0/2 DESI FORWARDING NONE 0 GigabitEthernet0/0/3 DESI FORWARDING NONE 0 GigabitEthernet0/0/4 DESI FORWARDING NONE 可以看出,构建生成树的GE0/0/1和GE0/0/2为指定端口,处于转发状态。 (3)连通性测试。 对技术部主机和工程部主机配置IP后,可以连通公网Web服务器,TTL值为125, 如图1-2所示。 图1-2 连通性测试图 7 二、入侵实战@ 1.黑客交换机接入与生成树配置 将黑客交换机接入SW1和SW2中工程部vlan20任一接口(E0/0/11~E0/0/22), 如图1-3所示的E0/0/22。 图1-3 入侵拓扑图 注:如图1-3所示,SW3的MAC地址为4c1f-cc32-6eac,黑客交换机MAC 地址为 4c1f-cc1d-1011。在相同优先级(priority0)情况下,为使黑客交换机选举为根交换机,黑 客交换机MAC地址必须小于SW3的MAC地址。由于交换机MAC地址无法更改和自 定义,读者需反复尝试,直到找到适合的交换机作为黑客交换机为止。 黑客交换机生成树配置命令如下: <Huawei>system-view [Huawei]sysname Hacker [Hacker]stp enable [Hacker]stp mode rstp [Hacker]stp priority 0 //优先级与SW3 相同,都为0 [Hacker] 2.生成树重新选举与验证 (1)验证黑客交换机选举为根交换机。 由于黑客交换机和SW3生成树优先级都设置为0,则需比较双方MAC地址。由于 黑客交换机MAC地址小(网桥id=优先级+MAC地址),从而选举为根网桥。 [Hacker]display stp -------[CIST Global Info][Mode RSTP]------- CIST Bridge :0 .4c1f-cc1d-1011 //黑客交换机优先级和MAC 地址 Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 8 Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 CIST Root/ERPC :0 .4c1f-cc1d-1011 / 0 //生成树选举的根网桥优先级和MAC 地址,其值与黑客网桥相同,从而判 断黑客交换机为根网桥 CIST RegRoot/IRPC :0 .4c1f-cc1d-1011 / 0 CIST RootPortId :0.0 BPDU-Protection :Disabled TC or TCN received :17 TC count per hello :0 STP Converge Mode :Normal Time since last TC :0 days 0h:8m:5s Number of TC :9 Last TC occurred :Ethernet0/0/2 ----More ---- (2)验证SW3交换机为非根交换机。 [SW3]display stp -------[CIST Global Info][Mode RSTP]------- CIST Bridge :0 .4c1f-cc32-6eac //网桥SW3 优先级和MAC 地址 Config Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 Active Times :Hello 2s MaxAge 20s FwDly 15s MaxHop 20 CIST Root/ERPC :0 .4c1f-cc1d-1011 / 220000 //选举黑客交换机为根网桥 CIST RegRoot/IRPC :0 .4c1f-cc32-6eac / 0 CIST RootPortId :128.1 BPDU-Protection :Disabled CIST Root Type :Primary root TC or TCN received :237 TC count per hello :0 STP Converge Mode :Normal Time since last TC :0 days 0h:2m:11s Number of TC :99 Last TC occurred :GigabitEthernet0/0/1 ----More ---- (3)验证SW3阻塞端口与备份链路。 根据生成树选举经验,根网桥(黑客交换机)对角线为备份链路。进入交换机SW3查 看生成树接口简要信息。在SW3中,由于没有配置GE接口优先级,其优先级默认都为 128(注意:在选举指定端口时,以收到对方接口推送的PDU 优先级为准,即优先级不是 由自身端口优先级决定,而是由所连接的对方接口优先级决定),下一步则比较端口号。 由于GE0/0/1端口号小于GE0/0/2端口号,因此GE0/0/1选举为指定端口(DESI), GE0/0/2选举为替换端口(ALTE),处于阻塞DISCARDING 状态,SW3和SW2之间链 路为备份链路。 [SW3]display stp brief MSTID Port Role STP State Protection 0 GigabitEthernet0/0/1 ROOT FORWARDING NONE 9 0 GigabitEthernet0/0/2 ALTE DISCARDING NONE 0 GigabitEthernet0/0/3 DESI FORWARDING NONE 0 GigabitEthernet0/0/4 DESI FORWARDING NONE (4)验证SW2阻塞端口与备份链路。 根据“根网桥对角线为备份链路”准则,SW1和SW2之间链路也应为备份链路,进入 交换机SW2 查看生成树接口简要信息,发现GE0/0/1 选举为替换端口,处于阻塞 DISCARDING状态。 [SW2]display stp brief MSTID Port Role STP State Protection 0 Ethernet0/0/11 DESI FORWARDING N ONE 0 Ethernet0/0/22 ROOT FORWARDING N ONE 0 GigabitEthernet0/0/1 ALTE DISCARDING NONE 0 GigabitEthernet0/0/2 DESI FORWARDING NONE (5)生成树新拓扑结构。 黑客交换机接入后,生成树重新选举,阻塞备份端口,生成新拓扑如图1-4所示。生 成树选举过程会导致丢包现象,工程部与外网Web服务器连通情况如图1-5所示。此 时,SW2流量必须经过黑客交换机转发,从而引发安全事件。 图1-4 生成树新拓扑结构图 3.黑客交换机捕获工程部主机账号和密码 (1)在工程部主机上登录Web服务器,注册账号。 在公网Web服务器发布BBS论坛站点,可通过Win2008或Win2012或Win2016发 布,详细步骤请参阅本书附录2。在工程部主机上的浏览器输入地址http://116.64.100.10 可以访问公网Web服务器站点,并注册账号。如图1-6所示在工程部主机上注册的账号 名为gdcp,密码33732878。注册完后,单击论坛“退出登录”按钮。 10 图1-5 工程部主机连通性测试图 图1-6 通过客户机在服务器上注册账号 (2)黑客交换机捕捉到账号和密码。 在黑客交换机E0/0/1或E0/0/2接口启用抓包,如图1-7所示。在工程部主机上通 过账号gdcp和密码33732878 成功登录公网服务器Web站点后停止抓包。在Wireshar界 面单击“查找下一分组”按钮,输入33732878;在下拉列表框中单击下拉按钮分别选择“字 符串”和“分组详情”选项,可以捕获在工程部主机上登录的账号和密码,如图1-8所示。