Ubuntu系统中居然存在任天堂红白游戏机的漏洞

最近安全研究人员Evans在Ubuntu系统中发现了一个很有意思的漏洞,这个漏洞还跟任天堂当年的8位游戏机(NES,或者叫FC)有关。

Evans表示,在Ubuntu 12.04.5版本的多媒体框架中存在一个漏洞,该漏洞可以被红白机播放的声音文件(NSF文件)利用——红白机和Ubuntu系统有什么关系?

这个漏洞的根源实际上在于音频解码器libgstnsf.so,这个解码器原本是用于支持gstreamer 0.10播放NSF格式文件的——而红白机的音乐文件就是.NSF格式——Ubuntu系统在播放这种文件的时候,会实时创建红白机的6502处理器和音频硬件的虚拟环境。

这样讲来也很容易理解,漏洞的影响并不算深远,研究人员也只是觉得很有趣才做了深入观察。

Evans表示:“该漏洞一定程度上依赖于默认安装过程。”因为在Ubuntu安装过程中,系统会询问“你是否期望系统能正确播放mp3文件? 用户当然会选择“是”。

这样一来,系统就会安装包括streamer-1.0-pliugins-bad(包含libgstnsf.so)在内的各种包。

如果你对NSF文件感兴趣,可以点击阅读原文下载cv2.nsf(这是游戏《恶魔城:暗影之王》的BGM)。这类文件都很小,要包含样本其实也有难度,但如果要搞点小动作还是可以的。有兴趣的同学可以点击阅读原文下载漏洞利用文件,如上图所示。

要说攻击代码,实际上和红白机的6502处理器的确是有关的。6502 CPU是一个传奇的存在,出现在各种各样的传奇系统中,如任天堂红白机,Commodore 64,BBC微型计算系统等。

这个漏洞的代码正是攻击者用据说非常晦涩的6502语言编写的,它依靠虚拟的6502处理器来解析此代码,并提供恶意指令进行攻击。Evans说,这个漏洞利用NES处理存储寄存器之间的切换,在Linux用户桌面上运行代码。详情可移步Evans的博客。

要利用该漏洞,可以采取以下方法:

1、给目标发电子邮件,邮件中带上可利用漏洞的附件。只要受害者下载文件,他们就会被攻击。 不过需要注意,要把文件扩展名从.nsf改为.mp3,因为绝大部分Linux桌面系统并不识别NSF文件——但要肯定会用播放器去播放MP3文件。大部分基于gstreamer的媒体播放器会忽略文件的后缀,自动检测文件格式,再采用所需的解码器。 2、采用路过式下载方案。比如用Chrome浏览器下载UX,受害者访问欺骗网站时,就可以将文件转储到受害者的Downloads文件夹。在文件管理器中查看Downloads文件夹的时候,文件管理器会针对那些已知后缀的文件,自动显示其缩略图或预览。而漏洞利用就可以依赖于缩略图进行攻击。 3、更为完整的路过式下载利用方案。Evans表示会单独写一篇文章来详述整个过程(真是好执着)。 4、利用USB设备进行攻击。这很容易理解了,将nsf格式文件存在U盘,用户在打开USB设备过程中,就会触发上述缩略图攻击过程。

虽说这是个0day漏洞,但它造成的影响并不是很严重。 而且该漏洞只存在于Ubuntu 12.04.5系统版本中,这是一个比较老的版本了。

要避开这个漏洞也非常容易,只要删除libgstnsf.so即可。而且还不会引起功能的缺失,因为在NES中还有另外的解码器可以播放NSF音乐。

如果各位对6502感兴趣,欢迎点击阅读原文去研究,灰常有趣~~

*参考来源:scarybeastsecurity,networkworld,FB小编latiaojun编译,转载请注明来自FreeBuf.COM

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

原文发表时间:2016-11-21

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏飞雪无情的博客

Android 源码目录结构详解

这是Android2.1的源代码的目录结构,可以帮助我们研究Android的源代码。Android源代码的下载请参考官网

1732
来自专栏编程

高级运维工程师学习路线

信息安全公益宣传,信息安全知识启蒙。 ? 运维工程师在前期是一个很苦逼的工作,在这期间可能干着修电脑、掐网线、搬机器的活,显得没地位!时间也很碎片化,各种零碎...

4977
来自专栏Android开发实战

腾讯最热门30款开源项目

开源是个好东西,马化腾除了王者荣耀还是干了些好事情的。腾讯最近开源的一些比较热门的项目,可以学习了解下哈

9413
来自专栏嵌入式程序猿

赶快来更新你的bootloader吧

不知大家是否还记得在之前给大家介绍过NXP的kinetis bootloader1.2版本的, 嵌入式工程师必须会的技能:玩转bootloader 时隔一年多,...

3869
来自专栏AndroidTv

【Android】又一个Gank客户端来啦

Gank平台的移动端又来了,非常感谢Gank平台开放接口,让我们这些小白有机会练手、学习。

3756
来自专栏MoeLove

高效 Bash 使用技巧

我们在日常使用中,难免会使用到一些历史命令或者有时需要对历史命令进行更正,那么如何更加高效的来完成这些操作呢?

952

构建高度可扩展的纯IPv6云主机

本文介绍了如何使用商用服务器之间的纯 IPv6 通信构建新的高度可扩展的云托管解决方案,以及我们所面临IPv6协议会有哪些问题,同时,该如何处理这些问题以支持超...

27310
来自专栏java一日一条

从输入 URL 到浏览器接收的过程中发生了什么事情?

首先是「输入 URL」,大部分人的第一反应会是键盘,不过为了与时俱进,这里将介绍触摸屏设备的交互。

1323
来自专栏双十二技术哥

Android性能优化(六)之卡顿那些事

对普通用户而言,类如内存占用高、耗流量、耗电量等性能问题可能不会轻易发现,但是卡顿问题用户一定会立马直观的感受到。本文就带你一览卡顿的发生、检测、及优化。

1572
来自专栏腾讯Bugly的专栏

《iOS APP 性能检测》

| 导语 最近组里在做性能优化,既然要优化,就首先要有指标来描述性能水平,并且可以检测到这些指标,通过指标值的变化来看优化效果,于是笔者调研了iOS APP性能...

1.7K5

扫码关注云+社区

领取腾讯云代金券