专栏首页吾生也有涯IT也无涯堆栈溢出渗透实战-part5

堆栈溢出渗透实战-part5

这是这个靶机环境的最后一个flag了,目标是获取root用户shell,不知道作者会设置些什么样的障碍,一步一步试吧,渗透技术不就是通过不断的尝试来找到各种脑洞大开的方法嘛。

与前面的flag一样,目录下给了一个levelFive的可执行文件,没有其他提示。

执行一下试试看,这个程序还是一个交互式的程序,按照提示输入一个字符串,提示参数错误。

输入一个短点的字符串,没有报错,看来对输入长度有要求。

同样的方法,edb开始分析汇编的代码,在5655628f处调用了levelFive!overflow,看来这个过程是切入点了。

继续分析levelFive!overflow,这里没有看到熟悉的strcpy函数,但是找到了一个同样存在越界可能的gets函数。

既然找到了存在隐患的函数,那传入一个较长的字符串参数观察一下是否会出现溢出。(注意下图中的函数返回地址 ffffd33c,值为56556214)

在edb的output窗口输入字符串。

从栈内容中可以看到输入的字符串被写入到了ffffd32c,并且把后面的返回地址覆盖了。这样就说明了溢出是可操作的,接下来就是定义payload了。

下图是我使用的shellcode,想详细分析可以到shell-storm.org上找。毕竟我不会写shellcode。

这里要注意的是在返回地址之前填充的内容长度太小,不足以容纳shellcode,所以用字符串填充,为了shellcode不受栈影响,跳转到变量保存的位置。

将shellocde输入到5.txt,并用5.txt的内容做为输入,执行levelFive,成功获得shell,但是确没有得到root权限,看来还是少了点什么。

仔细对比levelFive与之前的程序反汇编代码,发现少了一个setuid的调用过程,如果不把uid设置为0,那程序肯定没有root权限。

最简单的方法就是在shellcode之前再加一个setuid的代码不就行了,网上借鉴了其它shellcode,将\xb0\x17\x31\xdb\xcd\x80这6个字节的代码加入到原来的shellcode之面。

重新执行levelFive,成功拿到了root的shell。

回过头来查看一下levelFive文件的uid属性,其uid在一开始就一直是0,那为什么执行时并没有使用root权限呢?这个问题一直没有想明白,不知道有没有大神可以指导一下。

本文分享自微信公众号 - 吾生也有涯IT也无涯(UnlessITSkill),作者:光明SAMA

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 堆栈溢出渗透实战-part3

    Stack Overflows for Beginners: 1这个靶机还剩下三个flag没有拿到,继续加油。

    光明SAMA
  • 堆栈溢出渗透实战-part2

    昨天完成了Stack Overflows for Beginners: 1靶机的第一个目标,还是比较简单的,今天来继续完成第二个目标。

    光明SAMA
  • VulnHub靶机渗透之Matrix:v3

    这一次的靶机难度为中等难度,有所提升,以黑客帝国电影为背景,有点中二,感兴趣可以自行下载研究,下载连接如下:https://download.vulnhub.c...

    光明SAMA
  • Pycharm创建Django项目

    2. 打开Terminal, 进入刚刚创建的路径执行如下命令: python manage.py startapp app01

    py3study
  • CCAI 2015 | 徐扬生院士:机器人,从动作到智能

    用户1737318
  • jquery的扩展方法介绍

      最近一直在写js,这其中也少不了一位js的主角了jQuery,下面介绍的是jQuery的一些扩展,也就是jQuery的扩展方法,jQuery的扩展方法有两种...

    Java中文社群-磊哥
  • Django实现图片上传并前端页面显示

    开始之前我们先确认环境中已经安装了Pillow,如果没有安装,可以通过pip install Pillow来安装,这个是python的图像处理库

    常见_youmen
  • 学习 jQuery 源码整体架构,打造属于自己的 js 类库

    本文章学习的是 v3.4.1版本。unpkg.com源码地址:https://unpkg.com/jquery@3.4.1/dist/jquery.js

    若川
  • 发售即“暴死”的《无人深空》再推VR模式,曾经的“无人深坑”如何一步步实现逆袭?

    谈到逆袭的游戏作品,《无人深空》不可不提。从最初的高开低走,到制作团队埋头进行优化,再到后续推出的多人模式、VR模式,这款曾被称为“无人深坑”的独立游戏已经逐渐...

    VRPinea
  • 9.python异常处理

    常见异常 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x FileNotFoundError ...

    zhang_derek

扫码关注云+社区

领取腾讯云代金券