1.逆向及Bof基础实践说明

       1.1实践目标

  • 实践对象:pwn1的linux可执行文件
  • 实践目的:使程序执行另一个代码(ShellCode)
  • 实践内容:
    • 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数。
    • 利用foo函数的Bof漏洞,构造一个攻击输入字符串,覆盖返回地址,触发getShell函数。
    • 注入一个自己制作的shellcode并运行这段shellcode。

       1.2基础知识

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

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

  • 找到机器地址为80484b5的e8d7
  • 按照指导书上的说明用vi指令修改其内容
  • 在使用vi命令进行查找时,e8d7可能不连续,找不到的时候应该在e8和d7之间加上空格
  • 注意在使用:%!xxd时在修改结束时要用:%!xxd -r再修改回原格式,否则接下来无法使用objdump指令进行查看

  • 修改之后如下

  • 输入代码调用shell

3 .通过构造输入参数,造成BOF攻击,改变程序执行流输入代码调用shell

  • 确认哪几个字符会覆盖返回地址

  • 根据getshell的内存地址确定要修改的地址值

  • 执行文件观察是否调用shell

3 .注入shellcode并执行

  • 准备工作

  • 构造要执行的payload,打开一个终端然后注入

  • 打开另一个终端设置断点

  • 寻找shellcode的地址

  • 将返回地址替换成shellcode构建payload

  • 注入成功

实验总结

  • 本次实验主要学习了PC平台逆向和BOF基础,了解了缓冲区溢出攻击的基本原理和攻击方法。
  • 本次实验的思维方式和老师上课讲的内容大致一致,课上不明白的地方,在实验过程中加以巩固。
  • 按照实验步骤指导和同学们的博客基本上能够做出来,但实验环境即虚拟机的配置让我花费了不少时间去解决,比如虚拟机无法联网,虚拟机更新源太旧,当然还有一些令人窒息的操作上的问题,不过大体上还是解决的差不多了,当然是在老师同学的帮助下。同时也让我学会了一种解决困难的方法,那就是利用好自己的搜索引擎。
  • 最重要的是学习了linux系统指令代码的使用,让我对linux系统有了初步的了解,希望在以后的实验过程中能够进一步深入学习linux,嗯,还有九次实验,不着急。

20164310Exp1 PC平台逆向破解和BOF基础的更多相关文章

  1. 20155202张旭《网络对抗技术》 week1 PC平台逆向破解及Bof基础实践

    20155202张旭<网络对抗技术> week1 PC平台逆向破解及Bof基础实践 1.实践目标: 实践对象:一个名为pwn1的linux可执行文件. 该程序正常执行流程是: main调用 ...

  2. # 2018-2019-2 20165210《网络攻防技术》Exp1 PC平台逆向破解(BOF实验)

    2018-2019-2 20165210<网络攻防技术>Exp1 PC平台逆向破解(BOF实验) 实验分为三个部分: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. ...

  3. 20155336虎光元 Exp1PC平台逆向破解及Bof基础实践

    20155336Exp1 PC平台逆向破解(5)M 实践目标: 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入 ...

  4. 20155206赵飞 Exp1PC平台逆向破解及Bof基础实践

    实验一 逆向及Bof基础 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP汇编指令的机器码是"90" JNE汇编指令的机器码是"75" ...

  5. 20155236范晨歌 Exp1PC平台逆向破解及Bof基础实践

    出现的问题及解决: 在下载execstack时,出现了下列签名无效的错误! 解决方案:发现是密钥过期了,将新的密钥填入apt-keyring 输入命令:apt-key adv --keyserver ...

  6. 2018-2019-2 网络对抗技术 20165337 Exp1 PC平台逆向破解(BOF实验)

    实验内容 直接修改程序,跳转到getShell函数. 使用BOF攻击,覆盖返回地址,触发getShell函数. 注入一个自己的shellcode并运行. 任务一:直接修改程序,跳转到getShell函 ...

  7. 2018-2019-2 网络对抗技术 20165303 Exp1 PC平台逆向破解(BOF实验)

    1.实践目的 本次实践的对象是一个名为pwn1的linux可执行文件. 三个实践内容如下: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个 ...

  8. 2018-2019-2 网络对抗技术 20165304 Exp1 PC平台逆向破解(BOF实验)

    1.实践目的 本次实践的对象是一个名为pwn1的linux可执行文件. 三个实践内容如下: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个 ...

  9. 2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解

    2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解(BOF实验) 实验有三个模块: (一)直接修改程序机器指令,改变程序执行流程: (二)通过构造输入参数,造成BOF攻 ...

随机推荐

  1. C# 保存屏幕截图

    //屏幕宽 int iWidth = Screen.PrimaryScreen.Bounds.Width; //屏幕高 int iHeight = Screen.PrimaryScreen.Bound ...

  2. 转自CSDN-详述 Java 中的别名现象

    在任何编程语言中,赋值操作都是最常见的操作之一,Java 自然也不例外.赋值时,使用赋值操作符=,它的意思是:“将等号右边的值(右值),复制给左边的值(左值)”.右值可以是任何常数.变量或者表达式(只 ...

  3. 日志管理中获取浏览器、操作系统、IP等信息。。。

    今天在书写日志管理的模块的时候,遇到了一些问题,首先是日志的添加,就是在登录的时候记下他登录的名字以及登录的时间和登录的一些信息给存入到日志表中,这一下给蒙了,于是就查找资源,在这里我就简单地总结一下 ...

  4. ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台(elk5.2+filebeat2.11)

    ELK+Filebeat+Kafka+ZooKeeper 构建海量日志分析平台 参考:http://www.tuicool.com/articles/R77fieA 我在做ELK日志平台开始之初选择为 ...

  5. Oracle KEEP 分析函数

    Oracle中为了解决子集合中查询最值的问题,提出了KEEP()语法. 典型案列如:在每个部门中找出年龄最小的人中的最高工资. 基本语法结构: MAX(COL2) KEEP (DENSE_RANK F ...

  6. PA教材提纲 TAW12-1

    Unit1 Introduction to Object-Oriented Programming(面向对象编程介绍) 1.1 Explaining the Object-Oriented Progr ...

  7. cocos creator 刚体卡顿问题(边界会卡住)

    **问题描述:**在项目开发中,使用到了刚体, 在搭建地图过程中,发现两个相邻的砖块,即使贴合的再紧密,但星星人在上面走动的时候还是会有很大概率发生卡顿(被两个刚体的边界处卡住).为了解决这个问题,我 ...

  8. C语言-第4次作业得分

    作业链接:https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523 作业链接:https://edu.cnblogs.com/campus ...

  9. leetcode 刷题(2)--- 两数相加

    给定两个非空链表来表示两个非负整数.位数按照逆序方式存储,它们的每个节点只存储单个数字.将两数相加返回一个新的链表. 你可以假设除了数字 0 之外,这两个数字都不会以零开头. 示例: 输入:(2 -& ...

  10. ztree模糊筛选展开选中节点

    树呢是一个最简单的树,并没有做一异步加载,也就是一个筛选,然后跳到第一个符合删选的数据下,并且所有符合的都会被展开和选中.其中ztreeAry是一个模拟的本地数组json.在test.json中,如果 ...