文档章节

Linux glibc幽灵漏洞测试与修复

EchoAm3
 EchoAm3
发布于 2016/07/15 13:42
字数 1100
阅读 4
收藏 0
点赞 0
评论 0

1、Linux glibc幽灵漏洞:

2015年1月28日互联网上爆出Linux glibc幽灵漏洞(glibc gethostbyname buffer overflow,http://seclists.org/oss-sec/2015/q1/274),也有人将其称之为“20150127GHOST gethostbyname() heap overflow in glibc”,在CVE上的漏洞编号是CVE-2015-0235。攻击者可利用此漏洞实施远程攻击,并完全控制目标系统。

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

国外安全研究人员发现,glibc的__nss_hostname_digits_dots()函数有缓冲区溢出漏洞。这一漏洞既可以本地利用,也 可以远程利用。研究人员对漏洞进行了测试验证:向目标邮件服务器发送特别构造的邮件,从而获得了远程登录Linxu系统的shell脚本。通过这种方式可 以绕过32位和64位系统上的所有现存保护机制(比如SSLR、PIE和NX)。

受glibc-2.2影响的GNU C函数最早版本是在2000年11月发布的。这一漏洞曾在2013年5月被修补(在glibc-2.17和glibc-2.18版本之间)。但由于当时并没有被认定为安全威胁,包括Debian 7、Red Hat Enterprise Linux 6 & 7、 CentOS 5&6& 7和Ubuntu 12.04在内的多数知名Linux版本在长达一年半的时间都没有修补幽灵漏洞,经测试以下版本均存在漏洞:

  • RHEL (Red Hat Enterprise Linux) version 5.x, 6.x, 7.x
  • CentOS Linux 5.x, 6.x & 7.x
  • Ubuntu Linux version 10.04, 12.04 LTS
  • Debian Linux version 7.x
  • Linux Mint version 13.0
  • Fedora Linux version 19 y anteriores
  • SUSE Linux Enterprise 11 y anteriores
  • Arch Linux glibc version <= 2.18-1

据安全公司研究人员分析Linux glibc幽灵漏洞最容易的攻击入口是邮件服务器,和存在SSRF(Server-side Request Forgery)漏洞的WEB接口。值得庆幸的是,此漏洞目前还没有公开通用的攻击代码,这也给了服务器管理员们及时安装补丁的宝贵时间。
二、Linux glibc幽灵漏洞测试方法
1. Ubuntu & Debian检查
ldd –version
(1)Ubuntu受影响版本(https://launchpad.net/ubuntu/+source/eglibc):
Ubuntu 12.04 LTS: 2.15-0ubuntu10.10
Ubuntu 10.04 LTS: 2.11.1-0ubuntu7.20
(2)Debian gibc受影响版本(https://security-tracker.debian.org/tracker/CVE-2015-0235),Debian 7LTS: 2.13-38+deb7u7等
eglibc (PTS)      squeeze  2.11.3-4  vulnerable
eglibc wheezy  2.13-38+deb7u6      vulnerable
Debian gibc已经修复版本:
squeeze (lts)    2.11.3-4+deb6u4   
wheezy (security)    2.13-38+deb7u7     
2. CentOS & RHEL检查
在centos上执行“rpm -qglibc”命令,如图1所示,显示glibc的版本信息为glibc-2.5-118.el5_10.2。

受影响版本:

CentOS 5:glibc-2.5-118.el5_10.2
CentOS 6: glibc-2.12-1.149.el6_6.5
CentOS 7: glibc-2.17-55.el7_0.5
RHEL 5: glibc-2.5-123.el5_11.1
RHEL 6: glibc-2.12-1.149.el6_6.5
RHEL 7: glibc-2.17-55.el7_0.5
查看RHEL 各个版本更多有关该漏洞的信息请访问:
https://security-tracker.debian.org/tracker/CVE-2015-0235

3.POC验证测试

把下面的代码保存为ghost.c

#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);
}


直接编译并执行: gcc ghost.c-o ghost && ./ghost 如果存在漏洞则会显示“vulnerable”,如图2所示。

也可以执行下面的命令,以检测是否存在漏洞

方法一:
rpm -qglibc
cat/etc/issue
wget http://www.antian365.com/lab/linux0day/ghost.c
gcc ghost.c-o ghost && ./ghost
方法二直接显示glibc的版本信息:
wget -OGHOST-test.sh http://www.antian365.com/lab/linux0day/GHOST-test.sh.txt
bashGHOST-test.sh
显示结果如下:
Vulnerableglibc version <= 2.17-54
Vulnerableglibc version <= 2.5-122
Vulnerableglibc version <= 2.12-1.148
Detectedglibc version 2.5 revision 118
Thissystem is vulnerable to CVE-2015-0235.<https://access.RedHat.com/security/cve/CVE-2015-0235>
Pleaserefer to <https://access.redhat.com/articles/1332213> for remediationsteps

三、修复方法:
1. Ubuntu/Debian
在Ubuntu/Debian上执行以下命令进行修复,修复后需要重启。
apt-get update && apt-get -y install libc6
2.Centos
在Centos上执行“yumupdate glibc”后会有一个确认,输入“y”,大概会下载6个安装包,安装完成后需要重启计算机。

http://www.linuxidc.com/Linux/2015-01/112562.htm

-------------------------------------------------------------------------------------------------------------------------------------

本文转载自:http://www.linuxidc.com/Linux/2015-01/112562.htm

共有 人打赏支持
EchoAm3
粉丝 0
博文 14
码字总数 8221
作品 0
杨浦
程序员
Linux glibc幽灵漏洞简介与修复方法

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

鉴客
2015/01/29
888
0
Linux Glibc 幽灵漏洞紧急修补方案

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

鉴客
2015/01/29
897
1
Linux glibc幽灵漏洞检测及修复方案

昨日Linux glibc库曝出高危缓冲区溢出漏洞GHOST(幽灵),漏洞CVE编号为CVE-2015-0235,通过该漏洞,攻击者可以远程获取linux服务器的最高控制权限。glibc是linux系统中最底层的API,几乎其它运...

光头呆呆
2015/01/30
104
0
Red Hat 发布补丁以缓解 Spectre Variant 4 漏洞影响

正如本周早些时候所作出的承诺,Red Hat 面向 RHEL 以及 CentOS 等衍生系统发布了软件更新,减缓和降低最近披露的 Spectre Variant 4 安全漏洞所带来的负面影响。 2018年5月21日,来自谷歌的...

局长
05/25
0
1
AMD和微软发布针对Spectre漏洞的微代码和操作系统更新程序

        本周二,微软和AMD共同发布了针对“Spectre”(幽灵)漏洞的微代码和安全更新程序。    漏洞情况   “Spectre”(幽灵)和“Meltdown”(熔断)漏洞对处理器(CPU)行业的...

嘶吼RoarTalk
04/14
0
0
修复 CPU 漏洞性能会降多少?英特尔首度公开内测数据

以往只要有重大安全漏洞爆出,受影响的用户都会第一时间去更新,去修复漏洞,以避免自家的应用服务安全受影响,但是这次的 CPU 重大漏洞“熔断”和“幽灵”却不同,虽然受波及的 CPU、云、操...

局长
01/06
2.6K
4
针对英特尔漏洞,Linux发布了安全更新

  【IT168 评论】前几日,英特尔 CPU存在重大安全漏洞被传的沸沸扬扬,据悉,这一漏洞能够导致黑客访问到个人电脑内核访问的内存数据,其中包括用户账号密码、应用程序文件,文件缓存等。 ...

it168网站
01/09
0
0
解读CPU漏洞:熔断和幽灵

1月4日,国外安全研究机构公布了两组CPU漏洞,由于漏洞严重而且影响范围广泛,引起了全球的关注。 Meltdown(熔断),应对漏洞CVE-2017-5754; Spectre(幽灵),对应漏洞CVE-2017-5753/CVE...

又田
01/08
0
0
Windows 用户怒了!系统漏洞简直泛滥成灾

点击上方“CSDN”,选择“置顶公众号” 关键时刻,第一时间送达! ▌Windows 用户再陷勒索病毒危机 去年 4 月,“蠕虫式”WannaCry 勒索病毒在全球范围内大规模爆发,大肆攻击各国政府,学校...

csdnnews
05/14
0
0
Chrome提出了一种阻止Spectre漏洞攻击的新方法

2008 年首发的 Google Chrome 浏览器,在业内处于技术相当领先的位置,尤其是多线程运算方面。当某个标签页出现意外的时候,该方法可以让其它标签页不受干扰继续运作。不过最近一段时间,Goo...

稿源:
07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CoreText进阶(五)- 文字排版样式和效果

CoreText进阶(五)- 文字排版样式和效果 效果 以下是三个设置了不同属性的效果图 第一个设置了文字颜色为红色,字体为16号 第二个设置了文字颜色为灰色,字体为16号,对其为居中 第三个设置...

aron1992
27分钟前
1
0
10.23 linux任务计划cron~10.27 target介绍

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是...

洗香香
37分钟前
0
0
告警系统主脚本、告警系统配置文件、告警系统监控项目

20.20 告警系统主脚本 告警系统主脚本 main.sh内容 #!/bin/bash#Written by aming.# 是否发送邮件的开关export send=1# 过滤ip地址export addr=`/sbin/ifconfig |grep -A1 "en...

lyy549745
41分钟前
0
0
Don’t Repeat Yourself

在软件工程中,Don’t Repeat Yourself(DRY)是软件开发的原则,旨在减少重复,用抽象代替它,使用数据规范化来避免冗余。 这个原则在维基百科上是说是由Andy Hunt和Dave Thomas《The Pragmat...

woshixin
43分钟前
0
0
搭建webpack项目框架

作者:汪娇娇 时间:2018年6月4日 一、说明 随着业务发展和前端人员的增加,搭建一个通用框架以及制定统一规范就成了必然。对于选型这方面,一开始好像就没考虑其他框架,直接选了webpack。w...

娇娇jojojo
50分钟前
0
0
Java基础——面向对象(内部类)

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。 内部类: 1.有名内部类 2.无名内部类 内部类申请...

凯哥学堂
58分钟前
0
0
HttpClient内部三个超时时间的区别

RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(config.connReqTimeout) //从连接池中获取连接的超时时间 ......

1713716445
今天
0
0
每天一个命令SCP

每天一个命令:SCP scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速...

河图再现
今天
0
0
cron/chkconfig/systemd/unit/target

linux任务计划 : cron工具 任务计划在运维工作中用到的比较多,大部分系统管理工作都是通过定期自动执行某个脚本来完成。 查看linux中任务计划的配置文件: /etc/crontab [root@yolks-001 ~]...

Hi_Yolks
今天
1
0
ftp攻略

Vsftpd完全攻略(一)ftp原理与vsftp安装:https://www.iyunv.com/thread-44698-1-1.html Vsftpd完全攻略(二)设置匿名用户也支持下载和上传与创建目录:https://www.iyunv.com/forum.php?mo...

寰宇01
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部