专栏首页FreeBuf“优雅”的Linux漏洞:用罕见方式绕过ASLR和DEP保护机制

“优雅”的Linux漏洞:用罕见方式绕过ASLR和DEP保护机制

最近国外研究人员公布的一段exp代码能够在打完补丁的Fedora等Linux系统上进行drive-by攻击,从而安装键盘记录器、后门和其他恶意软件。

这次的exp针对的是GStreamer框架中的一个内存损坏漏洞,GStreamer是个开源多媒体框架,存在于主流的Linux发行版中。我们都知道,地址空间布局随机化(ASLR)和数据执行保护(DEP)是linux系统中两个安全措施,目的是为了让软件exp更难执行。

但新公布的exp通过一种罕见的办法绕过了这两种安全措施——国外媒体还专门强调了这个漏洞的“优雅”特色。

研究人员写了个flac多媒体文件,就能达成漏洞利用!

ASLR是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的的一种技术。

而DEP则能够在内存上执行额外检查以帮助防止在系统上运行恶意代码。

无脚本exp

与传统的ASLR和DEP绕过方法不同的是,这个exp没有通过代码来篡改内存布局和其他的环境变量。而是通过更难的字节码排序彻底关闭保护。

由于不需要JavaScript也不需要其他与内存通信的代码,所以其他攻击不行的时候,这种攻击可能依然可行。

“这个exp很可笑”,研究员Chris Evans在周一的博文中写道,“但是它证明了无脚本的exp也是可行的,即便开启了64位的ASLR还是有办法能够进行读写内存等操作,并且能够稳扎稳打地一步一步进行攻击然后获得控制权。”

Azimuth Security高级研究院Dan Rosenberg特别擅长Linux漏洞的防御。在一封邮件中他同意了Chris Evans的观点:

这个exp相当厉害,因为它成功绕过了ASLR和NX等先进的保护措施,而且不需要与目标软件进行程序交互。 详细来说,当要攻击浏览器漏洞的时候,exp会用JavaScript影响内存布局。类似地,当要攻击本地内核漏洞时,exp会发起系统调用来影响目标环境。 但在现在的场景差别很大,由于exp是一个单独的媒体文件,黑客没有机会在攻击的过程中作调整。

Evans随后发布了一个FLAC媒体文件,它能够运行在默认版本的Fedora 24上(其中预装了最新版的GStreamer)。

Evans说,写Ubuntu的exp更容易些,因为他没有ASLR, RELRO等防御措施,即使是在最新的16.04 LTS版本中也没有。不过他的exp仍然需要改写才能在除Fedora 24的其他linux版本中运行。

虽然攻击针对的是GStreamer对FLIC文件格式的解码器,Evans说攻击目标是Rhythmbox媒体播放器的二进制代码。Totem播放器也可以用类似的方法攻击。

Exp下载:https://security.appspot.com/security/flic/fedora_flx_exploit.flac (仅针对Fedora 24)

漏洞利用较麻烦

这个exp的学术研究价值要比实用价值来得高,因为如果要在其他linux版本上运行就需要重写。并且由于在linux上播放媒体软件的用户本身就少,漏洞可利用的范围就更少了。

周二的时候,Ubuntu发布了补丁,之后几天应该会有更多的厂商跟进。这个漏洞究竟优雅与否,有兴趣的可移步点击下面的原文链接。

*参考来源:Ars & ScaryBeastSecurity,本文作者:Sphinx,转载请注明来自FreeBuf(FreeBuf.com)

本文分享自微信公众号 - FreeBuf(freebuf),作者:Sphinx

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-11-28

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 浅谈非PE的攻击技巧

    背景 近日,金山毒霸安全中心捕获到一例利用邮件传播的非PE样本,类型为lnk快捷方式文件,执行后会下载勒索病毒,最终会加密用户机器上的文档、图片、视频等重要文件...

    FB客服
  • “Carbanak”回来了

    就在最近,国际战略研究中心(CSIS)进行了取证分析,发现Windows客户端有被破坏的危险,并企图对网上银行交易进行欺诈。作为取证分析工作的一部分,我们成功的...

    FB客服
  • Frida之Pin码破解实验

    0×00前言 在网上搜了一些frida破解Pin码的文章,不动手写点代码总感觉理解不深入的念头又升起来了,于是决定找一个开源pin码,然后改一改再破解。 特别感...

    FB客服
  • Python之简易计算器

    用户2398817
  • 生信技能树R语言作业-高级

    数据包: ALL, CLL, pasilla, airway 软件包:limma,DESeq2,clusterProfiler 工具包:reshape2 ...

    Y大宽
  • 简单计算器(栈的变种)- HDU 1237

    测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不要输...

    ACM算法日常
  • 人为了什么留在一个平台?

    作者:eka,腾讯产品经理 近有三件事让我思考同一个问题。 第一件事:一直刷朋友圈,也一度一直刷空间,发现自己产生了依赖,所以在想是什么让我依赖这些平台? 第二...

    腾讯大讲堂
  • 浅谈非PE的攻击技巧

    背景 近日,金山毒霸安全中心捕获到一例利用邮件传播的非PE样本,类型为lnk快捷方式文件,执行后会下载勒索病毒,最终会加密用户机器上的文档、图片、视频等重要文件...

    FB客服
  • 002. Flink入门案例-WordCount批处理

    CoderJed
  • 分布式任务调度平台XXL-JOB

    XXL-JOB是一个轻量级分布式任务调度框架,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。

    用户1518699

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动