glibc漏洞监测并修复

【CVE 2015-0235: GNU glibc gethostbyname 缓冲区溢出漏洞 】全面爆发,该漏洞的产生是Qualys公司在进行内部代码审核时,发现了一个在GNU C库(glibc)中存在的__nss_hostname_digits_dots函数导致的缓冲区溢出漏洞。这个bug可以通过gethostbyname *()函数来触发,本地和远程均可行。该漏洞(幽灵漏洞)造成了远程代码执行,攻击者可以利用此漏洞获取系统的完全控制权。

1,监测漏洞:新建文件夹/root/glibc/  ,在里面新建个cve.c 文件:

添加如下代码:

#include <netdb.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <gnu/libc-version.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);
}

2,编译运行脚本

  #gcc cve.c -o cve

  #./cve

3,如果现实vulnerable 表明存在漏洞

4,修复步骤:最简单的就是:

#yum install glibc

5, 在运行脚本,显示:not vulnerable表明漏洞已修复

 

时间: 2024-08-11 03:29:46

glibc漏洞监测并修复的相关文章

Linux Glibc库严重安全漏洞检测与修复方案

2015年1月27日 Linux GNU glibc标准库的 gethostbyname函数爆出缓冲区溢出漏洞,漏洞编号为CVE-2015-0235.黑客可以通过gethostbyname系列函数实现远程代码执行,获取服务器的控制权及 Shell 权限,此漏洞触发途径多,影响范围大,已确认被成功利用的软件及系统:Glibc 2.2到2.17 (包含2.2和2.17版本). GNU glibc标准库的gethostbyname 函数爆出缓冲区溢出漏洞,漏洞编号:CVE-2015-0235. Gli

openssl 再爆惊天漏洞及紧急修复指南

openssl 又摊上大事了,2014 年6月5日,SSL/TLS Man-in-the-Middle Vulnerability 该漏洞使得攻击者可以拦截恶意中间节点加密和解密数据,同时强迫使用弱密钥的ssl客户端暴露在恶意节点中,当软件使用OpenSSL的受影响版本,通过 网页浏览.电子邮件和VPN进行内容和身份验证等加密通讯时会有篡改的风险. 这里介绍openssl的升级方法,当前不受影响的最新版本为OpenSSL 1.0.1h, wget http://www.openssl.org/s

Git任意代码执行漏洞检测与修复(CVE-2018-11235)

检测漏洞方法 检测漏洞有两种方法: 1.通过查看git客户端版本 git --version 如果版本低于2.13.7肯定存在漏洞如果版本高于2.13.7请比对下面的版本 版本2.13.x,小于2.13.7则存在漏洞版本2.14.x ,小于 2.14.4则存在漏洞版本2.15.x,小于 2.15.2则存在漏洞版本2.16.x,小于 2.16.4则存在漏洞版本2.17.x,小于 2.17.1则存在漏洞 2.通过git命令检测 cd /tmp git init test && cd test

Linux底层函数库glibc漏洞核查整改指引

# 一. **漏洞概要** 近日,Linux底层函数glibc 的 DNS 客户端解析器被发现存在基于栈的缓冲区溢出漏洞.攻击者可借助特制的域名. DNS 服务器或中间人攻击利用该漏洞执行任意代码,甚至控制整个系统. # 二. **漏洞原理** 攻击者可在恶意域名服务器创建恶意的DNS域名,诱骗用户访问查找恶意域名,并最终得到恶意服务器的 buffer-busting 响应.该域名被嵌入服务器日志中,一旦解析就会触发远程代码执行,SSH客户端也会因此被控制. glibc通过alloca()函数在

Linux Glibc漏洞在线更新

1. 漏洞背景 代码审计公司Qualys的研究人员在glibc库中的__nss_hostname_digits_dots()函数中发现了一个缓冲区溢出的漏洞,这个bug可以经过gethostbyname*()函数被本地或者远程的触发. 1)通过gethostbyname()函数或gethostbyname2()函数,将可能产生一个堆上的缓冲区溢出.经由gethostbyname_r()或gethostbyname2_r(),则会触发调用者提供的缓冲区溢出(理论上说,调用者提供的缓冲区可位于堆,栈

Linuxglibc幽灵漏洞测试与修复方法

simeon 一.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.攻击者可利用此漏洞实施远程攻击,并完全控制

Jenkins-CVE-2016-0792漏洞利用及修复建议

漏洞概述: 国外网站 Contrast Security 于2016年2月24日在公开了Jenkins近日修复的一个可通过低权限用户调用 API 服务致使的命令执行漏洞详情.通过低权限用户构造一个恶意的 XML 文档发送至服务端接口,使服务端解析时调用 API 执行外部命令. 利用方法: 1. 登陆低权限用户test 权限为:Overall的read权限+Job的create权限 将下面xml数据包post到创建项目页面,项目名称任意命名,这里暂取qt-sec ,完整链接如下: http://1

ECSHOP v2.7.3注入漏洞分析和修复

测试版本 漏洞条件 漏洞利用 产生原因 修复方案 1.测试版本 v2.7.3 RELEASE 20121106(最新) v2.7.3 RELEASE 20120411 2.漏洞条件 需登录到后台 3.漏洞利用 1) 登陆到台后,选择模板管理,语言项编辑,搜索“用户信息” 为什么要搜索“用户信息”,还可以搜索其它的吗? 答案是搜索languages\zh_cn\user.php文件里任何一个变量都可以 2) 添加如下后门,将用户信息改为 用户信息${${fputs(fopen(base64_dec

定心丸!ZipperDown漏洞分析与修复建议

近日,盘古实验室对外披露了ZipperDown漏洞,该漏洞是盘古团队针对不同客户的iOS应用安全审计的过程中发现的,大约有10%的iOS应用会受到此漏洞的影响. 利用此漏洞可以做很多事情,例如实现目录遍历攻击和App Container目录中任意文件覆盖风险--影响究竟有多大,取决于具体App和对应取得的权限. ZipperDown获得大量媒体聚焦的同时,也吸引了大量不法分子的目光,一场安全风暴隐约即将到来. 那如何防止ZipperDown漏洞带来的破坏呢?网易云易盾安全专家结合目前披露的信息以