首页
社区
课程
招聘
[原创]关于setuid提权问题以及调试栈偏移解决方法
发表于: 2024-3-18 11:07 3095

[原创]关于setuid提权问题以及调试栈偏移解决方法

2024-3-18 11:07
3095

讲两个方面:一个是setuid与root权限关系;另一个是在调试过程中栈的位置与实际运行存在偏移。

setuid

平常的CTF-PWN问题只是讲ELF文件打通,即可获得shell,但是本文的情况是一个被标记了s位的vulnerable文件,这个文件只是教学用,不开启任何保护,我们的最终目的是获得root权限的shell,其实就是提权。首先,setuid是Linux系统为了让进程能够暂时获得root权限而设置的,我们先找好偏移,通过这个,我们在网上找一段包含了setuid的shellcode,然后放进缓冲区进行溢出,在eip,即返回地址上填入shellcode的地址(先这样,后面会改),即可打通提权。

偏移问题

这个问题是在gdb调试过程与实际运行过程中,栈的地址会存在偏移,大小不定,之前过程中是0x40的偏移,所以当尝试搞任意代码执行(ret2shellcode)时,不能把eip(ret_addr)填为shellcode的起始地址,最保险的方法是在shellcode前填充大量的NOP(空指令),形成NOP雪橇,当程序读取返回地址为NOP时,指针指向NOP,向下执行指令直至shellcode,即可打通。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 3004
活跃值: (30866)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢分享
2024-3-19 11:25
1
游客
登录 | 注册 方可回帖
返回
//