不知道能不能在这上面问。如果不行的话,请告诉我,我马上移除~
自从这个漏洞公布以来,我老板要我研究这个漏洞。
我看了好几天Qualys的报告对照glibc各版本的source code,
发现好多疑点。
这个漏洞的原理,就是gethostbyname()呼叫malloc()时给的值不正确,
所以在strcpy()时会造成overwrite。Overwrite的地方,是malloc的chunk。
所以,Qualys将malloc chunk里面的chunk size改成非常大,
就可以改变heap里头其他资料,甚至执行程式。问题来了:
1.因为hostname是IP时出问题,所以只能是数字或是点,
不可能随心所欲调成自己要的数值,只要出现非数字或点,这bug不会执行。
2.就算是成功调成了想要的数值,一旦呼叫malloc()一做检查,就会发生
"memory corruption",我试了好几次,就产生error跳出程式。
3.其实(2)可能不成立,无法覆蓋chunk size值,因为chunk size的前面有资料,
overwrite只会盖到chunk size前一个位置。
目前我的结论是,要产生Deny of Service是可行的,但是要remote code execution,
我做不到。Qualys声称他们成功开了remote shell,可惜他们还没放出poc code。
老板坚持CVE上面都写了,可以"execute arbitary code",不可能有错。
想请问有没有人可以给我意见?我是哪里漏掉了没有考虑到呢?
谢谢,先感恩了~
※ 引述《Kitakami (北上)》之铭言:
: Linux出现重大“鬼”漏洞!
: 网络安全暨漏洞管理业者Qualys揭露一个严重的Linux漏洞,
: 这个被称为“GHOST”的漏洞位于Linux glibc library中,
: 允许骇客从远端掌控含有漏洞的系统。
: glibc亦被称为GNU C函式库,为一开放源码且被广泛使用的C语言函式库,
: 它支援多种Linux平台,被视为Linux平台上的重要元件,
: 缺乏glibc的Linux系统甚至无法运作。
: Qualys漏洞实验室总监Amol Sarwate表示,
: 他们在glibc的 __nss_hostname_digits_dots() 功能中发现一个缓冲区溢位漏洞,
: 只要是经由本机或远端各种将网站名称转成IP位址的gethostbyname*() 功能
: 就可触发该漏洞,骇客可藉以掌控受骇系统,自远端执行任何程式。
: 由于此一漏洞是经由GetHOST功能触发,因而被简称为GHOST。
: Sarwate指出,他们已打造出一个概念验证程式,传递一个特制的电子邮件至邮件服务器,
: 取得了进入Linux机器的远端接口,成功绕过不论是32位元或64位元系统的各种保护机制。
: 虽然含有该漏洞的glibc是在2000年11月所释出的glibc 2.2,
: 而且在2013年的3月就已被修补,
: 然而,不少Linux版本仍然使用尚未修补的glibc,因而招致重大的安全风险,
: 包括Debian 7、Red Hat Enterprise Linux 6/7、CentOS 6/7及Ubuntu 12.04等。
: 上述业者已在本周二同步更新了受影响的作业系统,
: Qualys则说稍后才会释出概念性验证攻击程式,要留点时间给使用者修补。
: iThome
: http://www.ithome.com.tw/news/93791
: