FreeBSD团队宣布他们的操作系统存在严重的漏洞,黑客可以利用这个漏洞进行DoS(拒绝服务)攻击,提权或窃取系统敏感信息。
SCTP ICMPv6错误处理漏洞 (CNNVD-201601-642)
SCTP (流控制传输协议)是一种传输层协议,它可以用来在IP环境中传输信号。通常,移动运营商会在技术网络中使用这个协议。
这个漏洞影响了FreeBSD系统的数个版本(9.3、10.1、10.2),如果它们支持SCTP和IPV6就会中招(这其实是系统默认配置)。黑客利用这个漏洞,需要发送一个精心构造的ICMPv6消息。如果漏洞利用成功,就可以对系统进行DoS攻击。
DoS攻击是由于系统对来自ICMPv6的错误消息,并没有仔细检查其中SCTP包头部的长度。如果目标接收者不存在,路由会生成一个错误信息,通过ICMPv6反馈给发送人。
该ICMPv6包括原始的IPv6包,其中的Next Header区域会显示SCTP是如何封装的:
在系统内核接收了通过ICMPv6发送来的错误消息时,它会将上层协议包传输到必要的解析器sctp6_ctlinput()里。SCTP解析器将传入的头部误认为是合法长度,然后会试图用m_copydata()将它copy,里面存有偏移值和字节数值。本来系统预计消息的头部长度是12个字节,但是黑客可能就给它发送了一个长为11字节的头部,最后空指针的引用就导致了内核崩溃。
漏洞利用代码
利用这个漏洞时,并不需要开放的SCTP套接字。Scapy会创建漏洞利用所需的ICMPv6数据包:
修复和安全建议
为了保护系统不受该漏洞的侵害,建议用户:
1、如果不需要IPv6,请将其禁用。
2、在防火墙禁用ICMPv6或者IPv6流量。
3、如果用不上的话,请禁用系统内核对SCTP堆栈的支持(需要重新编译内核)。
来源:freebuf.com
原文始发于微信公众号(CNNVD安全动态):FreeBSD远程DoS攻击的利用分析(CNNVD-201601-642)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论