通信人家园

标题: 交换机安全学习笔记 第二章 MAC地址泛洪攻击  [查看完整版帖子] [打印本页]

时间:  2013-8-27 15:53
作者: 柳下贤     标题: 交换机安全学习笔记 第二章 MAC地址泛洪攻击

本帖最后由 柳下贤 于 2013-8-29 11:09 编辑

2013年8月26日 星期一 开始学习。预期目标,9月末前看完《局域网交换机安全》一书。
本文为书中相关知识的摘要,由于书中以思科设备为配置依据,所以笔记中补充了华为、H3C设备的相关配置。华为设备配置参考华为S2352EI 产品版本:V100R005C01文档版本:02。  H3C配置参考S7600系列文档(资料版本:6W102-20130226 产品版本:S7600系列—Release 6701及以上版本  S7600-X系列 —Release 6901及以上版本 )。

转载请保留   作者: 周鹏      E-mail: zptxwd@gmail.com      最后一次修改时间:2013年8月27日15:53

一、MAC地址泛洪攻击
通过填满MAC地址表 (桥接表) 导致同一网段内设备之间通讯无法单播,只能通过未知单播泛洪来进行通讯。从而达到窃听信息的目的。

解决方法
(1)探测MAC Activity (MAC活跃性)    无实际防护作用,仅对用户通告相关告警

Cisco: mac-address-table notification mac-move
H3C: MAC Information   类似于思科的相关探测MAC活跃性的作用。仅用户通过告警。感觉没什么实质意义。

(2)Port security (端口安全)  如果使用软件进程来完成相关port security 功能则CPU利用率将会被大量占用。如果基于硬件速率限制则不会。

Cisco:   show port-security interface f8/4 查看端口
            show port-security address         查看被保护的MAC地址
            (书上对配置没有详细描述,我对思科设备配置不是很熟悉所以希望大家帮忙补充)
华为:
        接口MAC学习数量限制配置

- 执行命令interface interface-type interface-number,进入接口视图。

- 执行命令mac-limit maximum max-num,限制接口的MAC地址学习数量。

- 缺省情况下,不限制MAC地址学习数量。
H3C的区别,配置接口最多可以学习到的MAC地址数   mac-address max-mac-count  count

- 执行命令mac-limit alarm { disable | enable },配置当MAC地址数量达到限制后是否进行告警。

- 缺省情况下,对超过MAC地址学习限制的报文进行告警。
执行命令display mac-limit,可以查看MAC地址学习限制的配置是否正确。

        接口MAC安全配置    (我认为此配置可较好的解决相关问题,周鹏)
           进入相关接口
             1、 port-security enable
                   使能接口安全功能

             2、 port-security mac-address sticky
                   使能接口Sticky MAC功能。

             3、   port-security protect-action { protect | restrict | shutdown }
                   配置接口安全功能的保护动作。
protect      当学习到的MAC地址数达到接口限制数时,接口将丢弃源地址在MAC表以外的报文。
restrict      当学习到的MAC地址数达到接口限制数时,接口将丢弃源地址在MAC表以外的报文,同时发出trap告警。
shutdown  当学习到的MAC地址数达到接口限制数时,接口将执行shutdown操作。

             4、 port-security max-mac-num max-number
                   配置接口MAC地址学习限制数。

           可选 port-security mac-address sticky [ mac-address vlan vlan-id ]   手动配置一条sticky-mac表项。

   H3C的配置与华为基本相同。功能亦相同。再次不做赘述。
   PS:H3C的文档易读性明显不如华为做的好。同样的内容花了我很多时间去找。

注意事项:
1、执行命令port-security aging-time time ,配置接口学习到的安全动态MAC地址的老化时间。
2、使能接口安全功能后,缺省情况下,接口学习的安全动态MAC地址不老化。若只启用接口安全功能 则 设备重启后安全动态MAC地址会丢失,需要重新学习。
3、Sticky MAC的主要作用是将接口学习到的动态MAC地址转换成静态MAC地址,可以理解为将MAC地址黏在接口上。当接口学习的最大MAC数量达到上限后,不再学习新的MAC地址,只允许这些Sticky MAC和交换机通信。这样一可以避免在设备重启后动态MAC丢失需要重新学习,二可以阻止其他非信任的MAC主机通过本接口和交换机通信。

(3)未知单播泛洪保护(unkonw unicast flooding protection)
CISCO:  Router(config)# mac-address-table unicast-flood limit 3 vlan 100 filter 5
               limit限制每个源MAC地址以及每个VLAN的每秒单播泛洪个数. filter值规定了对单播泛洪流量进行多次实践的过滤。 除了filter 还有 alter(告警)         shutdown关闭端口 两个值可选。
               Router #    show mac-address-table  unicast-flood

其他方法:
禁止MAC地址学习    使用纯静态MAC表进行转发。MAC表中没有的则直接丢弃
mac-address learning disable 可在端口或VLAN中禁用

执行命令drop illegal-mac enable,配置S2352EI设备丢弃全0非法MAC地址报文。

缺省情况下,S2352EI设备没有配置丢弃全0非法MAC地址报文的功能


黑客精神不灭,自由意志永存。    欢迎大家帮忙补充不足之处,以及指正错误。





补充内容 (2013-9-4 14:59):
第三章攻击生成树协议的链接:http://www.txrjy.com/forum.php?m ... d=727833&page=0
时间:  2013-8-27 16:09
作者: 柳下贤

明后天将会更新 攻击生成树协议 相关内容。觉得我写的对你有一定帮助的同志 回复个呗。。。给我个鼓励啥的
时间:  2013-8-27 16:45
作者: 巨魔战将

好,搞基站的表示不懂。
时间:  2013-8-27 16:46
作者: laolu999

柳下贤 发表于 2013-8-27 16:09
明后天将会更新 攻击生成树协议 相关内容。觉得我写的对你有一定帮助的同志 回复个呗。。。给我个鼓励啥的 ...

帮顶一下~期待继续
时间:  2013-8-27 16:56
作者: 柳下贤

谢谢支持
时间:  2013-8-27 17:48
作者: yylm

帮顶一下~期待继续
时间:  2013-8-28 16:56
作者: gxz18sh

先顶
时间:  2013-8-29 09:42
作者: tangfu040410

正在接触 还不太清楚,顶一个
时间:  2013-8-29 10:24
作者: 柳下贤

本帖最后由 柳下贤 于 2013-8-29 11:06 编辑

这两天在赶一个方案。估计要推迟几天才有时间写第三章的笔记了。
时间:  2013-8-30 19:42
作者: ahshiyalei


时间:  2013-9-2 20:26
作者: h345026039

才1年多没接触,基本看不到。。。
时间:  2013-9-9 10:10
作者: qiuwuzhizun


时间:  2013-9-24 14:05
作者: 柳下贤

本帖最后由 柳下贤 于 2013-9-24 14:09 编辑

交换机安全学习笔记 第四章 VLAN

Trunk 口  思科称为:native VLAN  华为称为:PVID   说白了就是Trunk端口本身所属的VLAN,因为,Trunk端口要"透传"多个VLAN的流量,其本身不属于任何一个VLAN。但是Trunk端口在交换机内部要与一个VLAN ID关联,此VLAN ID就是 思科的:native VLAN  华为的:PVID。
Trunk口的native VLAN 是不带标签通过的。到对端后会打上对端端口响应的native VLAN标签。如果两端native VLAN不一致就会发生VLAN跳跃问题(VLAN hopping)!
思科有CDP 思科发现协议(Cisco Discovery Protocol)若两端的trunk端口native VLAN 配置不一致会发出相关告警。


由于802.1Q规范并没有禁止多个连贯的标记(tag)串连起来。事实上QinQ技术也正是利用这一点缓解了单层VLAN4096个的限制。提供了4096*4096中可能的组合较好扩展了分配给每个VLAN ID的12比特的限制。   但是这一特性也成为了一下攻击的基础。

    双嵌套(double-nested)VLAN攻击
          注意:仅当Trunk口的native VLAN 与攻击者所在端口的VLAN ID 一致且分别属于用Trunk口互联的两台交换机下时,攻击才会生效。

                攻击者<--->交换机1<--->交换机2<--->受害者

         利用的就是Trunk口的native VLAN 是不带标签通过的。到对端后会打上对端端口响应的native VLAN标签。的特性。
         1、在攻击者发出以太网帧时就带上2个tag。外层tag与攻击者接入端口的tag一致。内层tag与受害者所在VLAN一致。
         2、当该攻击帧进入交换机1后通过交换机1~2之间的Trunk 口时由于与Trunk口nativeVLAN一致所以剥离外层的tag标签 此时攻击帧还剩下一层与受害者VLAN相同的内层标签。
         3、当交换机2Trunk端口收到攻击帧后发现攻击帧VLAN与受害者VLAN相同 按照该VLAN转发。  至此完成了跨越VLAN的攻击。

         在协议立场上看,并没有违规事件——讲802.1Q的帧头部串接起来并不违法。
          有三种方法可以来组织该攻击:
         1、确保不将native VLAN分配给任何访问端口。

         2、从Trunk中清除native VLAN(不建议使用)。

         3、强制Trunk上的所有流量都携带一个tag(首选的方法)。 警告:当与不支持该方法的交换机互相通信时native VLAN上的通信会中断!
              配置:不同版本可以在全局或端口下配置
                  全局 CiscoSwitch(config)#vlan dot1q tag native
                  端口 CiscoSwitch(config)#interface GigabitEthernet2/1
                         CiscoSwitch(config-if)#switchport trunk native vlan tag

       此外就是一些针对VLAN透传相关协议的攻击

       动态中继协议DTP,是 VLAN 组中思科的私有协议,主要用于协商两台设备间链路上的中继过程及中继封装 802.1Q 类型。DTP的用途是取代动态ISL(Dynamic ISL,DISL)。
        针对性的在连接普通用户的LAN口配置成access端口并将它们植入一个static(静态)VLAN.这样该端口会静默的丢弃DTP帧。





另外 阅读华为的文档时  基于MAC 基于子网 基于策略等VLAN划分都有如下描述:

        * 当收到的报文为untagged报文时,会以报文的源MAC地址为根据去匹配MAC-VLAN表项。如果匹配成功,则按照匹配到的VLAN ID和优先级进行转发;如果匹配失败,则按其它匹配原则进行匹配。



        * 当收到的报文为tagged报文时,处理方式和基于接口的VLAN一样:如果接口允许携带该VLAN标记的报文通过,则正常转发;如果不允许,则丢弃该报文。

若使用软件自行打上tag则可以不需要基于MAC 基于子网 基于策略匹配 可骗过交换机。(我推测的)所以....还是老老实实的做基于端口的VLAN划分吧




时间:  2013-9-24 14:06
作者: 柳下贤

本帖最后由 柳下贤 于 2013-9-24 14:08 编辑

交换机安全学习笔记 第五章 DHCP缺陷攻击

转载请保留   作者: 周鹏      E-mail: zptxwd@gmail.com      最后一次修改时间:2013年9月23日

关于DHCP攻击有如下几类攻击方式:

一、耗尽DHCP地址池
   通过随机生成源MAC地址,然后伪造DHCPDISCOVER数据包。耗尽DHCP服务器地址池。   免费的攻击工具:  Yersinia 和 Gobbler
     Gobbler是专门用于攻击DHCP的工具。具有回应DHCP服务器周期发送的ARP请求数据包和ICMP echo(回显)数据包   的能力。从而对抗DHCP服务器回收IP地址的功能。

二、利用DHCP无赖服务器劫持流量
   假冒DHCP服务器抢先响应客户端的DHCPDISCOVER消息。这样就可以给目标客户端分配IP地址、网关、DNS服务器等信息。引导受害者访问伪造的网站从而窃取受害者敏感信息。

对策:
针对第一种攻击,普通攻击模式 在攻击者接入的交换机LAN口会学习到大量MAC地址。利用之前MAC地址攻击一章提到的交换机的限制端口学习MAC数量配置即可解决。
               高级攻击模式 攻击者使用单一MAC地址通过对Client Hardware Address(客户硬件地址)的关键字随机填充。使得单一MAC打到每个DHCPDISCOVER数据包都对DHCP服务器单独而有效。
               对于此种教高级的攻击模式,端口安全的配置已经无法有效解决。此时我们使用DHCP Snooping机制来解决此问题。至于DHCP Snooping 自己去找资料学习吧...

另外第二种攻击方式也可以利用DHCP Snooping解决

DHCP Snooping是DHCP(Dynamic Host Configuration Protocol)的一种安全特性,通过截获DHCP Client和DHCP Server之间的DHCP报文并进行分析处理,可以过滤不信任的DHCP报文并建立和维护一个DHCP Snooping绑定表。该绑定表包括MAC地址、IP地址、租约时间、绑定类型、VLAN ID、接口等信息。
DHCP Snooping通过记录DHCP Client的IP地址与MAC地址的对应关系,保证合法用户能访问网络,作用相当于在DHCP Client和DHCP Server之间建立一道防火墙。
DHCP Snooping可以解决设备应用DHCP时遇到DHCP DoS(Denial of Service)攻击、DHCP Server仿冒攻击、DHCP仿冒续租报文攻击等问题。

攻击类型                                                                                      DHCP Snooping工作模式
DHCP Server仿冒者攻击                                                               配置接口状态为信任(Trusted)/不信任(Untrusted)
改变CHADDR值的DoS攻击                                                           检查DHCP报文的CHADDR字段
仿冒DHCP续租报文攻击                                                               检查DHCP Request报文是否匹配DHCP Snooping绑定表
DHCP报文洪泛攻击                                                                      限制DHCP报文的上送速率

时间:  2013-9-24 14:06
作者: 柳下贤

交换机安全学习笔记 第六章 IPV4 ARP攻击

ARP欺骗攻击
常用工具:  dsniff(Linux/windows)、ettercap(Linux/windows)、cain(仅windows)。
ARP欺骗攻击的目的是嗅探发往某主机的所有IP数据包。

交换机:
在LAN接入中的三层交换机使用第五章中提到的DHCP Snooping 功能中的动态ARP检查(Dynamic ARP Inspection)功能即可有效防止ARP欺骗的发生。
并且可以设置N秒内收到M条ARP欺骗消息会产生一条日志。每秒收到超过多少条ARP数据包时 使相应端口进入错误禁用(err-disable)状态。以缓解由于处理大量ARP数据包导致的CPU使用率过高,以及CPU使用率过高导致的无法维持路由协议进程的运行可能引发的严重的路由稳定问题。

主机:
在接入的PC上忽略免费ARP消息也可以一定程度的避免ARP欺骗。当然也可以完全使用静态ARP,但是在大型网络中完全使用静态ARP工作量巨大。

入侵检测:
一款免费的工具: ARPwatch (仅Lunux) 检测到异常后会通过邮件警告管理员。

由于ARP协议自身的缺陷目前尚无有效方法减缓ARP信息泄露。

时间:  2013-9-24 14:06
作者: 柳下贤

本帖最后由 柳下贤 于 2013-9-24 14:12 编辑

交换机安全学习笔记 第六章 IPV4 ARP攻击

ARP欺骗攻击
常用工具:  dsniff(Linux/windows)、ettercap(Linux/windows)、cain(仅windows)。
ARP欺骗攻击的目的是嗅探发往某主机的所有IP数据包。

交换机:
在LAN接入中的三层交换机使用第五章中提到的DHCP Snooping 功能中的动态ARP检查(Dynamic ARP Inspection)功能即可有效防止ARP欺骗的发生。
并且可以设置N秒内收到M条ARP欺骗消息会产生一条日志。每秒收到超过多少条ARP数据包时 使相应端口进入错误禁用(err-disable)状态。以缓解由于处理大量ARP数据包导致的CPU使用率过高,以及CPU使用率过高导致的无法维持路由协议进程的运行可能引发的严重的路由稳定问题。

主机:
在接入的PC上忽略免费ARP消息也可以一定程度的避免ARP欺骗。当然也可以完全使用静态ARP,但是在大型网络中完全使用静态ARP工作量巨大。

入侵检测:
一款免费的工具: ARPwatch (仅Lunux) 检测到异常后会通过邮件警告管理员。

由于ARP协议自身的缺陷目前尚无有效方法减缓ARP信息泄露。


额 这一章多发了一次 等下一章的时候再把这个编辑掉好了

时间:  2015-12-30 15:16
作者: 柳下贤

交换机安全学习笔记 第八章 针对POE的攻击

POE即 Power over Ethernet 借助于以太网供电。最初为了IP电话,目前主要用于功耗小于15.4w的设备例如Ap和视频监控设备。并且简化了相关设备的电力线布线。

英文缩写注释:
PSE(Power Supplying Equipment 电力供应设备)
PES(Powered End Station 末端用电工作站)

针对POE的工具类型:

一、偷电(Power stealing),未授权的设备连接到交换机上请求大量电脑,使得授权的PES无电可用。

二、改变功率(Power changing),通过在相应端口通过CDP请求更低的功率使得该端口的PES设备无法正常工作。

三、烧毁(Burning),通过欺骗交换机的供电检测机制。使得交换机向不需要供电的末端设备供电。当在5类线上施以42V电压时,末端设备就有可能会被烧毁(Burning)了。

四、关闭(shutting down)。如果攻击者关闭或切断PSE设备的电缆,PES设备讲无法收到电能并被挂壁。这尤其可能会对监控摄像头造成影响。

本文所讨论的绝大多数工具,都需要攻击者或恶意用户能够物理访问以太网口。这些攻击不能从远程位置或Internet上发起。

防范手段:
偷电: 在POE设备上采用静态配置。在所有连有PES设备的端口进允许交付确切功率值的电能。

改变功率: 在POE设备上采用静态配置。对于思科标准的POE协议则关闭CDP。不过这可能会导致无法有效的分配电能。

POE关闭:给交换机配备不间断电源(UPS)。。。  把用于POE供电的网线埋起来不要被人剪断。。。重要设备不要使用POE供电。。。(感觉都是废话。。。)

烧毁:如果攻击者能物理接触你的网络。在网线上注入高电压那么基本无法防范。因为就算他不想烧了你的设备也可以进去例如剪断网线之类的其他物理破坏。。。所以物理隔离是一切安全手段的基础。。。。
时间:  2015-12-30 15:19
作者: 柳下贤

交换机安全学习笔记 第九~十章 HSRP VRRP

HSRP  (Hot Standby Router Protocol) 热备份路由器协议 思科私有

HSRP消息
使用UDP 端口号 1985(IPv6时为2029) 使用多播地址 224.0.0.2(版本1)    224.0.0.112(版本2)       TTL值为1 (即不允许被转发)
注意!这里使用的多播地址都在多播地址的本地链路地址范围内。
本地链路(link local)范围
根据定义,本地链路范围内的所有组地址仅在一条链路内有效;也就是说,进在一个LAN内有效。去往一个本地链路地址的数据包绝不会被路由到该LAN之外。这也意味着,黑客们在任何时候都不可能把伪造的HSRP数据包发送给一个远程LAN内的攻击目标,因为转发路径上的所有路由器都讲简单的丢弃该数据包。

HSRP 虚拟IP地址对应的MA 交换机安全学习笔记 第九~十章 HSRP VRRP C地址的最后的XXX对应的是HSRP组号。
HSRP 版本1  0000.0C07.ACXX
IPv4 版本2   0000.0C9F.FXXX
IPv6 版本2   0005.73A0.0XXX

HSRP状态
初始状态
学习状态
监听状态
发言状态
备份状态
活跃状态

HSRP计时器
Hello间隔 (默认3S)
保持时间(默认10S)

Switch(config-if)#standby group-number ip virtual-ip-address
Switch(config-if)#standby group-number priority priority-value

HSRP占先权
优先级高的路由器重新获得转发权,成为活跃路由器
Switch(config-if)#standby group-number preempt

HSRP计时器
配置 Hello 间隔和保持时间
Switch(config-if)#standby group-number times hellotime holdtime

HSRP端口跟踪
Switch(config-if)#standby group-number track type mod/mum interface-priority

HSRP状态查看
Switch#show standby group-number brief
Switch#show standby

缓解攻击的有效方法1使用强认证,采取 预配置共享密钥链的方法.详见 局域网交换机安全142页.
方法2 依靠基础网络设施限制非新人接口接入的设备发送HSRP消息. 如VLAN ACL 限制指定IP地址为源才能发送HSRP消息.具体配置示例详见局域网交换机安全144页.
时间:  2015-12-30 15:19
作者: 柳下贤

交换机安全学习笔记 第九~十章 HSRP VRRP

HSRP  (Hot Standby Router Protocol) 热备份路由器协议 思科私有

HSRP消息
使用UDP 端口号 1985(IPv6时为2029) 使用多播地址 224.0.0.2(版本1)    224.0.0.112(版本2)       TTL值为1 (即不允许被转发)
注意!这里使用的多播地址都在多播地址的本地链路地址范围内。
本地链路(link local)范围
根据定义,本地链路范围内的所有组地址仅在一条链路内有效;也就是说,进在一个LAN内有效。去往一个本地链路地址的数据包绝不会被路由到该LAN之外。这也意味着,黑客们在任何时候都不可能把伪造的HSRP数据包发送给一个远程LAN内的攻击目标,因为转发路径上的所有路由器都讲简单的丢弃该数据包。

HSRP 虚拟IP地址对应的MA 交换机安全学习笔记 第九~十章 HSRP VRRP C地址的最后的XXX对应的是HSRP组号。
HSRP 版本1  0000.0C07.ACXX
IPv4 版本2   0000.0C9F.FXXX
IPv6 版本2   0005.73A0.0XXX

HSRP状态
初始状态
学习状态
监听状态
发言状态
备份状态
活跃状态

HSRP计时器
Hello间隔 (默认3S)
保持时间(默认10S)

Switch(config-if)#standby group-number ip virtual-ip-address
Switch(config-if)#standby group-number priority priority-value

HSRP占先权
优先级高的路由器重新获得转发权,成为活跃路由器
Switch(config-if)#standby group-number preempt

HSRP计时器
配置 Hello 间隔和保持时间
Switch(config-if)#standby group-number times hellotime holdtime

HSRP端口跟踪
Switch(config-if)#standby group-number track type mod/mum interface-priority

HSRP状态查看
Switch#show standby group-number brief
Switch#show standby

缓解攻击的有效方法1使用强认证,采取 预配置共享密钥链的方法.详见 局域网交换机安全142页.
方法2 依靠基础网络设施限制非新人接口接入的设备发送HSRP消息. 如VLAN ACL 限制指定IP地址为源才能发送HSRP消息.具体配置示例详见局域网交换机安全144页.




通信人家园 (https://www.txrjy.com/) Powered by C114