Linux glibc幽靈漏洞測試與修復方法

2021-09-04 13:28:49 字數 2994 閱讀 1158

一、linux glibc幽靈漏洞簡介

2023年1月28日網際網路上爆出linux glibc幽靈漏洞(glibc gethostbyname buffer overflow,也有人將其稱之為「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函式最早版本是在2023年11月發布的。這一漏洞曾在2023年5月被修補(在glibc-2.17和glibc-2.18版本之間)。但由於當時並沒有被認定為安全威脅,包括debian 7、red hat enterprise linux 6 & 7、 centos 5&6& 7和ubuntu 12.04在內的多數知名linux版本在長達一年半的時間都沒有修補幽靈漏洞,經測試以下版本均存在漏洞:

據360安全公司研究人員分析linuxglibc幽靈漏洞最容易的***入口是郵件伺服器,和存在***f(server-side request forgery)漏洞的web介面。值得慶幸的是,此漏洞目前還沒有公開通用的*****,這也給了伺服器管理員們及時安裝補丁的寶貴時間。

二、linux glibc幽靈漏洞測試方法

1. ubuntu & debian檢查

ldd –version

(1)ubuntu受影響版本(

ubuntu 12.04 lts: 2.15-0ubuntu10.10

ubuntu 10.04 lts: 2.11.1-0ubuntu7.20

(2)debian gibc受影響版本( 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

3.poc驗證測試

把下面的**儲存為ghost.c,或者wget

/* * ghostvulnerability check

* * usage: gcc ghost.c-o ghost && ./ ghost

*/ #include

#include

#include

#include

#include

#define canary "in_the_coal_mine"

struct temp = ;

int main(void)

if (retval ==erange)

exit(exit_failure); }

直接編譯並執行: gcc ghost.c-o ghost && ./ghost 如果存在漏洞則會顯示「

vulnerable

」,如圖2所示。

也可以執行下面的命令,以檢測是否存在漏洞

方法一:

rpm -qglibc

cat/etc/issue

wget 

gcc ghost.c-o ghost && ./ghost

方法二直接顯示glibc的版本資訊:

wget -oghost-test.sh

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.

pleaserefer to for remediationsteps

三、修復方法:

1. ubuntu/debian

在ubuntu/debian上執行以下命令進行修復,修復後需要重啟。

apt-get update && apt-get -y install libc6

2.centos

參考資料

1.360安全播報

2. 國家漏洞庫:

3. 4. 

-against-the-ghost-vulnerability

本文出自 「simeon技術專欄」 部落格,請務必保留此出處

Linux glibc幽靈漏洞修復方法

cve 2015 0235 linux glibc幽靈漏洞允許黑客遠端獲取系統許可權 測試漏洞是否存在 把下面的 儲存為gistfile1.c include include include include include define canary in the coal mine struct ...

Linux Glibc幽靈漏洞緊急修補方案

幽靈漏洞是linux glibc庫上出現的乙個嚴重的安全問題,他可以讓攻擊者在不了解系統的任何情況下遠端獲取作業系統的控制許可權。目前他的cve編號為cve 2015 0235。什麼是glibc glibc是gnu發布的libc庫,即c執行庫。glibc是linux系統中最底層的api,幾乎其它任何...

Linuxglibc幽靈漏洞測試與修復方法

linuxglibc幽靈漏洞測試與修復方法 simeon 一 linux glibc幽靈漏洞簡介 2015年1月28日網際網路上爆出linux glibc幽靈漏洞 glibc gethostbyname buffer overflow,也有人將其稱之為 20150127ghost gethostby...