CVE-2015-0235:Linux Glibc幽灵漏洞允许黑客远程获取系统权限
来源:互联网 发布:h3c交换机查看端口mac 编辑:程序博客网 时间:2024/05/08 08:16
来源:360播报
幽灵漏洞是Linux glibc库上出现的一个严重的安全问题,他可以让攻击者在不了解系统的任何情况下远程获取操作系统的控制权限。目前他的CVE编号为CVE-2015-0235。
什么是glibc
glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。glibc 囊括了几乎所有的 UNIX 通行的标准。
出现了什么漏洞
代码审计公司Qualys的研究人员在glibc库中的__nss_hostname_digits_dots()函数中发现了一个缓冲区溢出的漏洞,这个bug可以经过 gethostbyname*()函数被本地或者远程的触发。应用程序主要使用gethostbyname*()函数发起DNS请求,这个函数会将主机名称转换为ip地址。更多的细节可以从下面的视频中看到。
漏洞危害
这个漏洞造成了远程代码执行,攻击者可以利用此漏洞获取系统的完全控制权。
漏洞证明
在我们的测试中,我们编写了一个POC,当我们发送一封精心构造的电子邮件给服务器后,我们便可以获得远程Linux服务器的shell,这绕过了目前在32位和64位系统的所有保护(如ASLR,PIE和NX)。
我们能做什么?
给操作系统及时打补丁,我们(Qualys)已与Linux发行商紧密合作,会及时发布补丁。
为什么叫做GHOST?
因为他通过GetHOST函数触发。
哪些版本和操作系统受影响?
第一个受影响的版本是GNU C库的glibc-2.2,2000年11月10号发布。我们已找出多种可以减轻漏洞的方式。我们发现他在2013年5月21号(在glibc-2.17和glibc-2.18发布之间)已经修复。不幸的是他们不认为这是个安全漏洞。从而导致许多稳定版本和长期版本暴露在外,其中包括Debian 7 (wheezy),Red Hat Enterprise,Linux 6 & 7,CentOS 6 & 7,Ubuntu 12.04等
在哪里下载EXP?
我们希望每个人能有充分的时间去打补丁。根据我们的统计数据当漏洞达到半周期的时候我们会放出EXP。半周期是指超过一半的主机已打上补丁。这个周期展示出了漏洞修复的努力程度。一个较短的周期意味着更快速的修复努力。半周期概念由Qualys的漏洞准则提出。
Qualys的客户可以使用Qualys Vulnerability Management (VM)云解决方案来扫描和检测GHOST。Qualys的客户可以可以获得相应的报告。可以可视化得追踪和展示这次漏洞修复进程。
参考
Qualys Advisory: https://www.qualys.com/research/security-advisories/GHOST-CVE-2015-0235.txt
RedHat: https://rhn.redhat.com/errata/RHSA-2015-0090.html
Ubuntu: https://launchpad.net/ubuntu/+source/eglibc
Debian: https://security-tracker.debian.org/tracker/CVE-2015-0235
GNU C Library: http://www.gnu.org/software/libc/
更多技术细节:http://bobao.360.cn/learning/detail/224.html
附POC
测试方法:gcc gistfile1.c -o CVE-2015-0235 ./CVE-2015-0235
#include <netdb.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h> #define CANARY "in_the_coal_mine" struct { char buffer[1024]; char canary[sizeof(CANARY)];} temp = { "buffer", CANARY }; int main(void) { struct hostent resbuf; struct hostent *result; int herrno; int retval; /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/ size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1; char name[sizeof(temp.buffer)]; memset(name, '0', len); name[len] = '\0'; retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); if (strcmp(temp.canary, CANARY) != 0) { puts("vulnerable"); exit(EXIT_SUCCESS); } if (retval == ERANGE) { puts("not vulnerable"); exit(EXIT_SUCCESS); } puts("should not happen"); exit(EXIT_FAILURE);}#* from http://www.openwall.com/lists/oss-security/2015/01/27/9 */
Linux Glibc幽灵漏洞修复方法:http://blog.csdn.net/sikers/article/details/43230503
- CVE-2015-0235:Linux Glibc幽灵漏洞允许黑客远程获取系统权限
- Linux Glibc幽灵漏洞允许黑客远程获取系统权限
- GHOST: glibc vulnerability (CVE-2015-0235)#GHOST(幽灵)漏洞修复
- 从代码层剖析CVE-2015-0235(glibc幽灵漏洞)
- CVE-2015-0235:幽灵(GHOST)漏洞解析
- Linux glibc幽灵漏洞修复方法
- Linux Glibc幽灵漏洞紧急修补方案
- Linux Glibc幽灵漏洞紧急修补方案
- Linux glibc幽灵(GHOST)漏洞检测及修复方案
- Linux YUM或RPM修复 glibc幽灵(GHOST)漏洞
- Glibc ghost(CVE-2015-0235)漏洞简要分析及检测
- glibc CVE-2015-7547漏洞的分析和修复方法
- DirtyCow Linux权限提升漏洞分析(CVE-2016-5195)
- DirtyCow Linux权限提升漏洞分析(CVE-2016-5195)
- 【漏洞公告】CVE-2017-7669:Apache Hadoop远程权限提升漏洞
- CVE-2015-7547溢出漏洞的简单分析与调试 glibc getaddrinfo
- Samba CVE-2015-0240 远程代码执行漏洞利用实践
- CVE-2015-8660 OverlayFS文件系统权限检查缺陷漏洞
- NTFSI 目录
- LeetCode --- 10. Regular Expression Matching
- hiho一下 第三十周 题目1 : 小Hi小Ho的惊天大作战:扫雷·一
- HDOJ——简单数学题
- 面向对象原则(1):单一职责原则
- CVE-2015-0235:Linux Glibc幽灵漏洞允许黑客远程获取系统权限
- PHP实现返回JSON和XML的类分享
- 《C++ Primer》和《C++ Primer Plus》拾遗
- USACO2.3.3 Zero Sum (zerosum)
- iOS中的UIView动画
- 今天又长知识了,HDMI线比VGA的好处除了高清还有可以转换音频输出
- 数据结构——树形结构的应用
- 实现一个图片切换功能
- cocos2dx lua找不到导出类