首页
社区
课程
招聘
[翻译]Linux SRP覆写和 ROP
发表于: 2016-11-1 11:13 4867

[翻译]Linux SRP覆写和 ROP

2016-11-1 11:13
4867
Linux SRP 覆写和 ROP

原文:http://buffered.io/posts/linux-srp-overwrite-and-rop/
译者:布 (看雪ID: 我有亲友团)

  最近我开始在 Twitch 上直播一些与安全相关的东西,因为我很喜欢向别人教授并展示我使用的技术,工具以及整个过程,同时我也会努力将这些东西系统化,而不是吸收一些零散的碎片。昨晚我完成了我的第二场直播,主要是针对以下几点:

   1. 对易受攻击的 32 位 Linux 二进制文件的快速分析;
   2. 解释为什么栈缓冲区溢出会导致返回地址(SRP)被重写;
   3. 描述如何通过 SRP 重写来控制 EIP 寄存器;
   4. 演示如何通过这种控制来执行未启用 NX 的栈上的 shellcode;
   5. 编写一个使用这种缺陷的利用程序,执行被攻击者控制的代码。

    在第一个二进制的前提下,第二个也就更容易了。第二个二进制文件与前一个相差无几,只是它是使用 NX 编译的,因此之前的利用程序也就无效了。本节主要包含以下几点:

    1. NX 导致之前的漏洞不能使用的原因;
    2. 如何控制 EIP,使其依然可以被用来执行大块的代码;
    3. ROP 的“合理”描述,以及它是如何工作的;
    4. 在操作中 ROP 的演示(这里比较单调乏味,是为了让之前没有见过这种方式的人更容易理解);
    5. 构造一个利用程序来导致代码执行,即使已开启NX。

  这个视频的后半部分没有提前计划,比我预计的时间结束得要早一些。最后的利用程序是专门针对于我正在运行的机子( Fedora Core 24 ),因此没法在远程系统上使用。其实,我最开始的想法是演示如何可能通过读取整个内存区域,来搜索感兴趣的指令(这种情况下是 int 0x80; ret )。考虑到时间关系,我最后决定跳过这种方式,用更简单的方式实现它。

  该视频已发布到 YouTube ,链接在这里(https://www.youtube.com/watch?v=XOmawM1EXnM&feature=youtu.be)。

  对于嵌入 YouTube 视频剪辑时默认包含的 DoubleClick 以及 Javascript crap ,我深表歉意。为了使你不留下痕迹,请运行 uBlock 或者类似的程序。

  最后,我将这两个二进制文件放在这里(http://buffered.io/posts/linux-srp-overwrite-and-rop/),以供大家使用。

  对于由字体大小所引起的不满,我非常抱歉,我经常不知道我正在做什么。如果你有任何问题或者意见,欢迎来打我!谢谢!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 1040
活跃值: (1293)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这……还有预告?好吧,前排广告招租……
2016-11-1 11:20
0
游客
登录 | 注册 方可回帖
返回
//