首页
社区
课程
招聘
[原创]极光行动----漏洞分析
发表于: 2019-6-1 16:04 13725

[原创]极光行动----漏洞分析

2019-6-1 16:04
13725

极光行动(英语:Operation Aurora)或欧若拉行动是2009年12月中旬可能源自中国的一场网络攻击,其名称“Aurora”(意为极光、欧若拉)来自攻击者电脑上恶意文件所在路径的一部分。遭受攻击的除了Google外,还有20多家公司:其中包括Adobe Systems、Juniper Networks、Rackspace、雅虎、赛门铁克、诺斯洛普·格鲁门和陶氏化工。这场攻击过后,Google提出了它的新计划:它将“在必要的法律范围内”,于中国运营一个完全不受过滤的搜索引擎;同时Google也承认,如果该计划不可实现,它将可能离开中国并关闭它在中国的办事处

以下是百度百科的详情介绍:

靶机:windows xp sp3 ,Ie6.0(版本6.0.2900.5512)

放置网页的机器:windows 2003,iis6.0

windbg , OllyDbg, notepad++

提取出来的样本,并不是每次都能完美的执行

在windows 2003下搭建iis6.0的环境,此处不多赘述。

将以下代码,放入index.html里面

如下图:

1559366289001

在靶机中,在IE6.0中访问html文件(注:加参数[?rFfWELUjLJHpP])

如下:

1559366503968

因为该样本并不是每次都能完美进行堆喷射,所以在经过多次尝试后,终于找到了关键信息(IE崩溃)

如下图:

1559366665794

我们将windbg设置为即时调试器,然后重新访问该网页

再次等待程序崩溃,最终程序报出异常,windbg断在下面位置

1559367210114

程序断在此处,由上图可知,此时的ecx=00000006,该处内存并没有分配

那ecx来源与那里呢?我们来对ecx进行溯源

由该处汇编指令的上下文,我们可以得知 此处为一个函数,由某个函数调用产生异常

我们将 mshtml.dll拖入IDA 并跟随到 地址0x7e278c83

看到有交叉引用,直接查看。

*,真多

1559367491703

1559367516458

没办法,我只能进行栈回溯了,

在windbg中查看当前堆栈

1559367672635

u 7e44c4c0

由图,我们得知 ecx,又来源于ebx,继续回溯

1559367827157

这次我们可以继续用IDA分析了,在IDA中转到 0x7e44c4c0

我们发现,之前有多种情况跳转到该位置

1559368745846

我们以红色部分为情况来逐步进行回溯

ecx=ebx

ebx=[esi]

esi=[eax]

eax=[ebp+var8]=[ebp-8]

最终的值 来自于句柄变量

最总公式如下

ecx=[[[[ebp-8]]]]

然而在我们发生异常的位置,下面是这样几行代码

最终 call dword ptr [eax+34h]

可以表达为 call dword ptr[[[[[[ebp-8]]]]]+34h]

也就是说 最后call的地址 可以由局部变量 ebp-8确定

那么我们就可以利用 堆喷射,进行漏洞利用(堆喷射技术与原理在此不多做阐述,有兴趣参考书籍 0day2)

我们先找到是那个函数的局部变量调用了该函数,在IDA中,往上翻找到函数头部

1559372159284

我们发现,该函数上次调用 来自于一个对象中的 2 个函数,

可是我们看我们的html里面,虽然有个img的图标,但是并没有调用函数,这是为什么呢?

在上述分析中,我们有提到,该网页要加参数

该脚本最重要地方是这行代码,将解密后的代码通过正则表达式进行转换,并作为代码执行

然后我们真正要执行的代码,也就是处理之后的代码是下面的

我们将这段代码替换原来index.html里面 script 标签的内容

替换整体代码如下:

我们来分析一下这段代码

不是很懂js,但是根据开发经验,我猜测的执行顺序应该是如下(忽略堆喷代码的构建)

1559372585862

到这里我们应该就能联系到一块了

因为我们在的模块最终的上层调用为

然 js脚本里面最终执行的也是

1559373415611

在上面分析中,我们忽略了 堆喷射 代码的构建

我们看一下 该函数

1559373764271

假设"\u9090\u9090\u9090\u9090\u9090\u9090\u9090\u9090\u9090\u9090\u9090\u9090\u9090"

为我们的shellcode

我们做出如下修改即可

用od打开ie浏览器,并在 0x7E44C4C3 下条件断点 ecx==0x0c0d0c0d

F9跑起来,访问我们的html

程序断到下图位置:

1559370403996

F7步进,发下ecx指向的区域基本全为0x0c0d0c0d(这块区域为滑板指令)

1559370508869

继续F7,发下call的地址也是 0x0c0d0c0d

1559370595263

继续F7跟进跟进call,到这里,滑板指令往下就是我们正在的shellcode了

1559371760551

我们CTRL+B 搜索二进制字符串 90 90 90 90 90,并下断

1559373996918

F9执行,成功断到此处

1559374054009

 
 

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 3
支持
分享
打赏 + 2.00雪花
打赏次数 1 雪花 + 2.00
 
赞赏  kanxue   +2.00 2019/06/02 感谢分享~
最新回复 (12)
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
内容很精彩,虽然很老的看的还是很舒服。
2019-6-1 16:20
0
雪    币: 2170
活跃值: (2354)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
3
分析完,我看网上并没有这个漏洞的分析,所有想给大家分享一下。我甚至都不知道他的CVE编号,老哥你知道吗
2019-6-1 16:26
0
雪    币: 300
活跃值: (2477)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mark
2019-6-1 21:21
0
雪    币: 26225
活跃值: (63302)
能力值: (RANK:135 )
在线值:
发帖
回帖
粉丝
5
感谢分享~mark!
2019-6-3 09:23
0
雪    币: 1887
活跃值: (360)
能力值: ( LV8,RANK:121 )
在线值:
发帖
回帖
粉丝
6
这漏洞很经典
2019-6-4 13:57
0
雪    币: 1421
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
编号是CVE-2010-0249
2019-6-10 09:03
0
雪    币: 6064
活跃值: (12624)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
9
有意思的故事从情报开始
最后于 2020-2-13 20:29 被kanxue编辑 ,原因:
2019-6-10 09:08
0
雪    币: 1421
活跃值: (162)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
想问下lz最前面加的这个参数是干什么用的?rFfWELUjLJHpP


最后于 2020-2-17 20:44 被kanxue编辑 ,原因:
2019-6-11 11:15
0
雪    币: 2170
活跃值: (2354)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
11
一滴泪 想问下lz最前面加的这个参数是干什么用的?rFfWELUjLJHpP
解密的key,读取的那个网页是加密的
2019-6-13 08:10
0
雪    币: 2170
活跃值: (2354)
能力值: ( LV12,RANK:270 )
在线值:
发帖
回帖
粉丝
12
一滴泪 编号是CVE-2010-0249
3Q
2019-6-13 08:10
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
13

0

最后于 2020-8-18 15:25 被一曲沙丶天涯编辑 ,原因:
2020-2-26 21:51
0
游客
登录 | 注册 方可回帖
返回
//