码迷,mamicode.com
首页 > 其他好文 > 详细

Exp1 PC平台逆向破解(5)M

时间:2018-03-09 14:07:13      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:不可用   保存   修改   AC   bubuko   问题:   运算   2.3   分享图片   

Exp1 PC平台逆向破解(5)M

实践内容

  1. 实践对象是一个可执行文件pwn1
  2. 本程序的正常执行顺序应该是main函数调用foo函数,foo函数输出用户输入的字符串。
  3. 本程序还包含了另一个代码片段getshell,会返回一个可用的shell值,在正常的执行状况中该段代码不会被执行,而我们此次实践的内容就是对可执行文件进行攻击,从而让程序执行到此段代码。

    实践要求

  2.1掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分)

  2.2掌握反汇编与十六进制编程器 (0.5分)

  2.3能正确修改机器指令改变程序执行流程(0.5分)

  2.4能正确构造payload进行bof攻击(0.5分)

实践基础知识:

(1)NOP指令即“空指令”(机器码:90)。执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令。所以NOP指令自然也会占用执行一个指令的CPU时间片。

(2)JNE是一个条件转移指令(机器码:75)。当ZF=0,转至标号处执行。

(3)JE是一个条件转移指令(机器码:74)。如果相等则跳转。

(4)JMP是无条件转移指令。段内直接短转Jmp short(机器码:EB)段内直接近转移Jmp near(机器码:E9)段内间接转移Jmp word(机器码:FF)段间直接(远)转移Jmp far(机器码:EA)

(5)CMP为比较指令,功能相当于减法指令,只是对操作数之间运算比较,不保存结果(机器码:39)。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。

实践过程

本次实践有三种实现方式

  1. 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。
  2. 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
  3. 注入一个自己制作的shellcode并运行这段shellcode。

    手工修改可执行文件

    再动手之前应该知道反汇编指令是

objdump -d pwn1(文件名)|more 

动手之前应该准备好32位的执行环境

64位Kali无法顺利执行pwn1问题的解决方案

开始实践

  • 对pwn1进行备份并将副本命名为自己学号"20155329"并用副本进行实践。 使用cp 命令进行复制,例如cp pwn1 20155329
  • 对可执行文件进行反汇编
objdump -d 20155329 | more

技术分享图片
技术分享图片

由反汇编结果可以看出

图一
  1. e8对应call命令
  2. e8后的绿色部分为抵用的foo函数的偏移地址。

    图二
  3. main地址是080484af、
  4. foo地址是08048491、
  5. getshell的地址是0804847d。

    综上所述
  • foo函数的地址为08048291,getshellh函数的地址为0804847d,用16进制的减法我们可以精确的算出getshell比foo低了14,也就在原来的基础上减去14即可。而在linux环境下,采用小端存储的方式,也就是说d7为低位,就是说将到d7减去14即可,也就是变成c3。,我们使用vim编辑器对地址进行修改。
  • 使用vim打开可执行文件20155329
    技术分享图片
  • 此时文本为乱码,用“%!xxd”指令将文本转换成16进制文件来进行操作。
    技术分享图片
  • **修改偏移地址后,使用“%!xxd -r”将16进制文件转换成原文件保存退出。

    运行可执行文件20155329

    技术分享图片

实验中遇见的问题

共享文件夹无法正常使用

  • 重新安装 VMware tools

    安装32位的运行库时出现问题

  • 问题:无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
    E: 无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?”

  • 解决办法:
  • sudo rm /var/cache/apt/archives/lock
  • sudo rm /var/lib/dpkg/lock

Exp1 PC平台逆向破解(5)M

标签:不可用   保存   修改   AC   bubuko   问题:   运算   2.3   分享图片   

原文地址:https://www.cnblogs.com/hpl20155329/p/8533295.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!