幽灵漏洞是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/

附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] = '';
  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 */

【想查看更多互联网新闻趣事,欢迎收听网络尖刀官方微信。(微信号:mcbang_com )】

本文由站内编辑授权爱尖刀发表,并经爱尖刀编辑。转载此文章须经作者同意,并请附上出处(爱尖刀科技媒体)及本页链接。原文链接http://www.ijiandao.com/safe/cto/10864.html

解决方法:

OS:CentOS 和 RedHat  更新方法如下:
1)用户使用root用户, 在系统上执行: #yum clean all; yum update glibc
2)以上命令执行完成后, 查看Glibc版本:# rpm –qa|grep glibc-2.12

OS版本
对应Glibc版本
CentOS6.x/redhat6.x
glibc-2.12-1.149.el6_6.5
OS版本: CentOS 6.2 安全版(tlinux)
glibc-2.12-1.149.tl1.5
CentOS5.x/redhat5.x
glibc-2.5-123.el5_11.1

OS: Ubuntu 更新方法如下:

【针对Ubuntu,腾讯云软件仓库已完成同步】

1)用户使用root权限登录系统或使用sudo获取root权限,执行以下命令:
#apt-get update
#apt-get install libc6

2)执行完成以后,查看版本, 输出如下表示更新完成:
root@VM-ubuntu:~# dpkg-l|grep libc6

OS版本
对应Glibc版本
Ubuntu12.x
2.15-0ubuntu10.10
Ubuntu14.x
2.19-0ubuntu6
Ubuntu10.x
2.11.1-0ubuntu7.20

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

  1. linux 幽灵漏洞,CVE-2015-0235:Linux Glibc幽灵漏洞分析 V1.0

    CVE-2015-0235:Linux Glibc幽灵漏洞分析 V1.0 2015-01-28 12:06:44 阅读:0次 漏洞描述: glibc的__nss_hostname_digits_dot ...

  2. Linux Glibc幽灵漏洞紧急修补方案

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

  3. Linux Glibc幽灵漏洞紧急修补方案【转】

    转自:http://blog.csdn.net/chen19870707/article/details/43560823 幽灵漏洞是Linux glibc库上出现的一个严重的安全问题,他可以让攻击者 ...

  4. Linux Glibc幽灵漏洞紧急修补方案;Centos7升级内核到3.18

    本文转载:http://ixdba.blog.51cto.com/2895551/1609526 幽灵漏洞是Linux glibc库上出现的一个严重的安全问题,他可以让***者在不了解系统的任何情况下 ...

  5. 3 src 获取_CVE-2019-15846:Exim远程获取root权限漏洞分析

    报告编号:B6-2019-103101 报告来源:360-CERT 报告作者:360-CERT 更新日期:2019-10-31 0x00 漏洞背景 2019年9月6日18:00,exim发布exim- ...

  6. delphi7 获取dll的类_上传quot;定时任务quot;获取系统权限

    原文来自SecIN社区-作者:tkswifty 相关背景 文件上传是系统中比较常见的业务需求,例如上传头像.简历.报表等.但是如果在业务实现过程中没有考虑相关的安全问题(例如没有对用户上传的文件类型做 ...

  7. Android如何通过shareduserid获取系统权限

    2019独角兽企业重金招聘Python工程师标准>>> android会为每个apk进程分配一个单独的空间(比如只能访问/data/data/自己包名下面的文件),一般情况下apk之 ...

  8. QQ远程提示系统权限原因暂时无法操作怎么办

    使用qq远程的时候,提示系统权限原因暂时无法操作怎么办,下面来介绍一下方法 工具/原料 win10系统 方法一 第一步打开控制面板,点击系统和安全 第二步进去系统和安全之后,然后点击更改用户帐户控制设 ...

  9. pwn,获取系统权限,入门题,cyclic

    https://pan.baidu.com/s/1qy5cyX-RJDyl3wxOXypHtA dx5d 输入[./ret2text]运行程序,发现让你输入,那么我们先随便输入个[123456],程序 ...

最新文章

  1. C语言volatile关键字详解
  2. 这也不能一直在这儿瞎忙活
  3. 这项技术是谷歌AI的New Sexy:利于隐私、节能环保,目前最大挑战是布道阐释
  4. 微服务架构编码,构建
  5. C++ FAQs 第二版
  6. linux nat软件,linux下nat的应用(转)
  7. 怎么理解马氏距离呢?简单的解释
  8. [Qt教程] 第22篇 数据库(二)编译MySQL数据库驱动
  9. chrome开发总结(交互/权限/存储)-爬虫
  10. 打趴系统的不一定是技术
  11. 135. 分发糖果002(贪心算法+思路+详解)
  12. 写一个公用的gpio口驱动
  13. 第 9 章 代码审查制度
  14. kux格式怎么转换成mp3_kux格式怎么转换成mp4?快速转换格式的方法
  15. hikaricp使用
  16. Elasticsearch refresh
  17. 《Windows 网络操作系统》集中实训任务书详解
  18. 计算机没有机械硬盘了,到底有没有必要给笔记本加机械硬盘
  19. 痞子衡嵌入式:ARM Cortex-M内核那些事(5)- 一表搜罗指令集
  20. (适配多个版本)双击 DWG 文件以使用 AutoCAD 产品打开时显示“Windows 找不到 [文件名].acad.exe ”

热门文章

  1. h5滚动时侧滑出现_HTML5移动端触摸事件以及滑动翻页效果
  2. ARM-translation table walk
  3. IDEA中Translation插件无法使用怎么办?
  4. 笛卡尔坐标系与右手定则
  5. Swift 参数可选和必选的区别
  6. 2020 最新 Zotero文献管理 工具使用指南
  7. 通过python-pptx模块操作ppt文件
  8. 精通特征工程 —— 2.简单得数字奇特技巧
  9. 前端测试框架Jest——语法篇
  10. 视差滚动的原理及实现