首页
社区
课程
招聘
[翻译] Linux (x86) Exploit 开发系列教程之四(使用return-to-libc绕过NX bit)
发表于: 2017-4-10 21:32 9024

[翻译] Linux (x86) Exploit 开发系列教程之四(使用return-to-libc绕过NX bit)

2017-4-10 21:32
9024

使用return-to-libc绕过NX bit

前提条件:

经典的基于堆栈的缓冲区溢出

虚拟机安装:Ubuntu 12.04(x86)

在以前的帖子中,我们看到了这个攻击者

     -复制shellcode堆栈并跳转到它!

为了成功利用漏洞代码。为了阻止攻击者的行动,安全研究人员提出了一个名为“NX Bit”的漏洞缓解!

什么是NX Bit?

它是一种利用缓解技术,使某些内存区域不可执行,并使可执行区域不可写。示例:使数据,堆栈和堆段不可执行,而代码段不可写。

在NX bit打开的情况下,我们基于堆栈的缓冲区溢出的经典方法将无法利用此漏洞。因为在经典的方法中,shellcode被复制到堆栈中,返回地址指向shellcode。但是现在由于堆栈不再可执行,我们的漏洞利用失败!但是这种缓解技术并不完全是万无一失的,因此在这篇文章中我们可以看到如何绕过NX Bit!

漏洞代码:此代码与以前发布的漏洞代码相同,稍作修改。稍后我会谈谈需要修改的内容。


编译命令:


注意:“-z execstack”参数不传递给gcc,因此现在堆栈是非可执行的,可以验证如下所示:

堆栈段只包含RW标志,无E标志!

如何绕过NX位并实现任意代码执行?

可以使用叫做“return-to-libc”的攻击技术绕过NX bit。这里返回地址被一个特定的libc函数地址覆盖(而不是包含shellcode的堆栈地址)。例如,如果攻击者想要生成一个shell,那么他将使用system()地址覆盖返回地址,并在堆栈中设置system()所需的相应参数,以便成功调用它。

在已经反汇编并绘制了漏洞代码的堆栈布局后,让我们编写一个漏洞代码来绕过NX位!

漏洞代码:

执行上面的exploit程序给我们root shell,如下所示:


宾果,我们得到了root shell!但是在实际应用中,由于root setuid程序会采用最小权限的原则,它并不容易。


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

收藏
免费 2
支持
分享
最新回复 (7)
雪    币: 346
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
学习!
2017-4-11 14:52
0
雪    币: 791
活跃值: (404)
能力值: ( LV4,RANK:51 )
在线值:
发帖
回帖
粉丝
3
请问大家  system_arg=“xxxxxxxx”,怎么找到的,thanks
2018-5-26 17:30
0
雪    币: 3170
活跃值: (129)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
wx_哈哈哈 请问大家 system_arg=“xxxxxxxx”,怎么找到的,thanks
gdb调试,printf出system的地址
2018-8-8 13:36
0
雪    币: 861
活跃值: (683)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
5
灵音 gdb调试,printf出system的地址
这个有点麻烦,还不如libc中去找偏移
2018-11-20 16:36
0
雪    币: 3352
活跃值: (10987)
能力值: ( LV9,RANK:240 )
在线值:
发帖
回帖
粉丝
6
wx_哈哈哈 请问大家 system_arg=“xxxxxxxx”,怎么找到的,thanks
exp.py的注释中写了
2019-2-22 14:45
0
雪    币: 3352
活跃值: (10987)
能力值: ( LV9,RANK:240 )
在线值:
发帖
回帖
粉丝
7
应该是fflu"sh"中的"sh"在vuln中的偏移,+0x8048000吧。
2019-2-22 15:00
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
exit = 0xb7e54be0          #0xb7e2000+0x00032be0
这句中的,0x00032be0,是什么意思,如何获取
我用 gdb> p exit 打印出了地址,但是exp并不奏效

最后于 2019-3-1 15:32 被wintrysec编辑 ,原因:
2019-3-1 14:39
0
游客
登录 | 注册 方可回帖
返回
//