APP下载

戴夫寇尔剖析漏洞与制作攻击验证工具

2019-10-09 21:49

图片来源: 

周峻佑摄

专精于找寻漏洞的戴夫寇尔,今年举办的资安大会中,有2场他们在台湾发现的资安漏洞演讲,它们的共通之处,就是在许多民众习以为常的资讯设备或系统上,发现可被滥用的弱点。我们先前整理了有关中华电信家用网络调制解调器的漏洞,而他们公开的另一项漏洞,则是戴夫寇尔去年与网擎资讯合作,由网擎资讯提供测试环境,并且同意戴夫寇尔透过逆向工程等管道,所发现Mail2000网页邮件系统上的漏洞。

Mail2000是台湾本土厂商网擎资讯所开发的解决方案,发展已经超过10年以上,有许多企业、公部门,以及教育单位采用。这套产品最新的版本为7.0,企业部署的方式相当多元,包含了硬件设备、纯软件,以及云端服务(MailCloud)等。

负责寻找Mail2000漏洞的戴夫寇尔资安研究员Meh,揭露她当时找出网擎Mail2000网页邮件服务CGI漏洞的过程。虽然攻击对象是网页应用程序,一般来说,骇客多半会从前台下手,找寻能够利用的漏洞。但对于专精找寻应用程序漏洞的Meh来说,她发现,网站后台的元件,也与一般应用程序相同,是透过许多二进制执行档(Binary)组合而成,因此,在她检视Mail2000的系统架构后,发现还是有不少可以尝试攻击的地方。

戴夫寇尔资安研究员Meh发现的漏洞,来自libm2k和libm2kc等2个程式库。(摄影/周峻佑)

而透过Binary的角度来看待网页应用程序时,也会出现另一种的思维。由于一般的套装软件被发现漏洞时,所有部署相同软件的设备,都会受到影响,企业若是没有充分的资产盘点,逐一修补,想躲都躲不掉。Meh甚至形容,Binary漏洞的威力,有如核武般的恐怖,以这次发现的漏洞为例,红队演练的队员若是发现企业环境中建置Mail2000服务器,再加上没有安装修补程式,可能就直接从管理者的信件里,找到存取企业内部环境所需的账号密码,而无须侦察相关漏洞。

然而,网页应用程序通常采用动态呼叫的方式运作,导致每次执行使用者的请求时,都会视为全新执行的处理程序,而取得不同的内存区块,对于骇客而言,便必须在无法指向特定内存区块的限制下进行攻击。

发现漏洞后必须制作能够利用的攻击工具

Meh表示,越底层的漏洞越泛用,所以她决定朝程式库下手。这次发现的漏洞,出现在网擎实作的libm2k与libm2kc两个程式库中,它们处理连线过程的验证,并且具备CGI通用函式的功能。她发现了内存越界写入漏洞,参数数量能够超过阵列大小,而且,只要有使用参数的CGI都能触发。Meh指出,若是网擎其他产品也运用这两个程式库,也会受到影响。

接着,他们就开始研究如何利用这个漏洞,Meh说,在Binary的渗透手法中,利用FILE结构的特性,就能挟持程式的执行流程,因为,可执行程式未必会做档案处理,却一定会有STDERR,也就是输出错误讯息的指令。因此,她就规划了初步的渗透流程。

在拟定的攻击方法里,她先建立连线,呼叫CGI,然后使用大量参数覆写vector指标,并且伪造POST file里的FILE,指向伪造的FILE结构指标,最后在CGI的流程呼叫FILE执行相关操作,得以挟持程式的运作流程。但是这个时候,因为Linux操作系统内建的内存存取保护机制,也就是位址空间配置随机载入(Address Space Layout Randomization,ASLR),会在应用程序每次执行时,重新分配所需的内存位置。也就是说,Mail2000呼叫CGI的时候,存取所需的应用程序,都会取得不同的内存区块。

Meh发现了程式库的内存越界写入漏洞,但真正实际要拿来发动攻击,必须解决Shellcode指向内存位置的问题。(摄影/周峻佑)

基于上述的原因,Meh说,他们必须在没有固定内存位置的情况下,执行渗透攻击,为此,先后写出了2个专用的CGI程式。

第1个CGI攻击程式名为msg_read,其特点是程式的功能较多,其中内含能够发动内存堆叠溢位攻击(Heap Spray)的模组,也就是称为返回导向程式设计(Return-Oriented Programming,ROP)的Gadget数量,比较丰富。他们再搭配意外发现Mail2000的另一项弱点,也就是开发者开放了stack的可执行权限,得以直接绕过系统,执行壳层指令(Shellcode)。

但上述CGI真正难以实际运用的问题,在于攻击者必须登入Mail2000系统,才能发挥作用。因此,Meh又再制作了第2个CGI攻击程式,名为cgi_api。

顾名思义,这个攻击程式用途是呼叫程式库的API界面,而无法像前一只程式使用ROP攻击,也因为第2个CGI程式的特性,Meh发现,他们只要利用CGI的特性,让HTTP的变数存放于环境变数里,就能直接让壳层指令复制到stack上执行,实际上根本不需要透过ROP手法。

这个时候执行的问题,又回到前述与ASLR机制有关的内存定址。但Meh发现,Mail2000是32位元的应用程序,内存可能的位址,只有4,096种,透过暴力破解,仅需要几分钟的时间,就能得到真正的位址,进而执行壳层指令,取得Shell。她说,虽然资安人员总想要像狙击手帅气的一击毙命,但这次的例子中,暴力破解才是务实的作法──只要拿出大炮全面扫射,打中敌人就能达标。

从这次发现漏洞的过程中,我们可以看到,骇客想要攻打目标,过程中会依据执行的结果,持续修正做法,调整思维,甚至是推翻先前的策略,进而达成目的。

相关文章

最新资讯

  • 台湾逾2,000万民众个资在暗网中流传
    2020-05-31 09:47
  • 焦距自拍最合适? Panasonic Lumix S 20-60mm f3.5-5.6 正式发布
    2020-05-31 09:46
  • 强劲国产芯!紫光展锐虎贲T618 VSDP惊艳实力!
    2020-05-29 14:50
  • 科技改变教育 腾讯教育助力西双版纳推进“互联…
    2020-05-29 14:50
  • 全球5G大战进入白热化阶段,vivo为中国通信技…
    2020-05-29 14:50

手机

  • LG 双屏幕手机 V60 ThinQ 5G 登台 双大屏幕、大电量、售价 33,900 元
    2020-05-29 15:45
  • 我的手机暴走了 初号机联名款 OPPO Ace 2 中国登场 卡针完美还原朗基努斯之枪
    2020-05-29 10:45
  • vivo Y50 / Y15 在台上市 主打前后共五镜头、5,000mAh 大电池
    2020-05-28 16:46
  • 华为两款手表登台:HUAWEI WATCH GT 2e、HUAWEI Band 4 Pro 平价开卖
    2020-05-27 14:45
  • 传三星 Galaxy Note 20 可能长这样 超显眼主镜头模组、更大的屏幕
    2020-05-26 16:45

数码

  • 智能家居告诉你 如何确保家中水电安全
    2019-02-24 09:47
  • 安卓手机2014年全球发货量首次突破10亿部
    2019-02-24 09:47
  • 谷歌联合Mozilla 在浏览器上推加密传输技术
    2019-02-24 09:47
  • 谷歌将3D视觉智能手机项目转出ATAP部门
    2019-02-24 09:47
  • 华为超薄旗舰P8细节曝光:5.2吋 售2999
    2019-02-24 09:47

科技

  • 传欧盟将对Google开铡 罚金最高110亿美元
    2018-06-07 13:32
  • 透明如水 Coca-ColaCLEAR下周日本登场
    2018-06-07 13:32
  • AMD:年年都有新显卡 2018年7纳米Vega打头阵
    2018-06-07 13:32
  • 空中客车成立城市空中行动部门 力推空中计程服务
    2018-06-07 13:32
  • 华润微电子原法务总监王颀涉职务侵占罪外逃新加坡
    2018-06-07 14:32