安云网 - AnYun.ORG | 专注于网络信息收集、网络数据分享、网络安全研究、网络各种猎奇八卦。
当前位置: 安云网 > 技术关注 > 网络安全 > 漏洞分享 > Linux Glibc幽灵漏洞允许黑客远程获取系统权限

Linux Glibc幽灵漏洞允许黑客远程获取系统权限

时间:2015-01-28来源:未知 作者:安云网点击:
幽灵漏洞是Linux glibc库上出现的一个严重的安全问题, 他可以让攻击者在不了解系统的任何情况下远程获取操作系统的控制权限 。目前他的CVE编号为CVE-2015-0235。 什么是glibc glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底

Linux Glibc幽灵漏洞允许黑客远程获取系统权限

//本文来自安云网

幽灵漏洞是Linux glibc库上出现的一个严重的安全问题,他可以让攻击者在不了解系统的任何情况下远程获取操作系统的控制权限。目前他的CVE编号为CVE-2015-0235。 //内容来自AnYun.ORG

什么是glibc //本文来自安云网

glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。glibc 囊括了几乎所有的 UNIX 通行的标准。 //内容来自AnYun.ORG

出现了什么漏洞

//内容来自安云网

代码审计公司Qualys的研究人员在glibc库中的__nss_hostname_digits_dots()函数中发现了一个缓冲区溢出的漏洞,这个bug可以经过 gethostbyname*()函数被本地或者远程的触发。应用程序主要使用gethostbyname*()函数发起DNS请求,这个函数会将主机名称转换为ip地址。更多的细节可以从下面的视频中看到。

//内容来自安云网

//本文来自安云网

漏洞危害

//本文来自安云网

这个漏洞造成了远程代码执行,攻击者可以利用此漏洞获取系统的完全控制权。

//本文来自安云网

漏洞证明

//内容来自AnYun.ORG

在我们的测试中,我们编写了一个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的漏洞准则提出。

//内容来自AnYun.ORG

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 

//内容来自AnYun.ORG

附POC //本文来自安云网

测试方法:gcc gistfile1.c -o CVE-2015-0235 ./CVE-2015-0235

//本文来自安云网

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#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 */

//本文来自安云网
//本文来自安云网

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
相关内容
推荐内容