20164310Exp1 PC平台逆向破解和BOF基础
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基础的更多相关文章
- 20155202张旭《网络对抗技术》 week1 PC平台逆向破解及Bof基础实践
20155202张旭<网络对抗技术> week1 PC平台逆向破解及Bof基础实践 1.实践目标: 实践对象:一个名为pwn1的linux可执行文件. 该程序正常执行流程是: main调用 ...
- # 2018-2019-2 20165210《网络攻防技术》Exp1 PC平台逆向破解(BOF实验)
2018-2019-2 20165210<网络攻防技术>Exp1 PC平台逆向破解(BOF实验) 实验分为三个部分: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. ...
- 20155336虎光元 Exp1PC平台逆向破解及Bof基础实践
20155336Exp1 PC平台逆向破解(5)M 实践目标: 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入 ...
- 20155206赵飞 Exp1PC平台逆向破解及Bof基础实践
实验一 逆向及Bof基础 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP汇编指令的机器码是"90" JNE汇编指令的机器码是"75" ...
- 20155236范晨歌 Exp1PC平台逆向破解及Bof基础实践
出现的问题及解决: 在下载execstack时,出现了下列签名无效的错误! 解决方案:发现是密钥过期了,将新的密钥填入apt-keyring 输入命令:apt-key adv --keyserver ...
- 2018-2019-2 网络对抗技术 20165337 Exp1 PC平台逆向破解(BOF实验)
实验内容 直接修改程序,跳转到getShell函数. 使用BOF攻击,覆盖返回地址,触发getShell函数. 注入一个自己的shellcode并运行. 任务一:直接修改程序,跳转到getShell函 ...
- 2018-2019-2 网络对抗技术 20165303 Exp1 PC平台逆向破解(BOF实验)
1.实践目的 本次实践的对象是一个名为pwn1的linux可执行文件. 三个实践内容如下: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个 ...
- 2018-2019-2 网络对抗技术 20165304 Exp1 PC平台逆向破解(BOF实验)
1.实践目的 本次实践的对象是一个名为pwn1的linux可执行文件. 三个实践内容如下: 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 利用foo函数的Bof漏洞,构造一个 ...
- 2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解
2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解(BOF实验) 实验有三个模块: (一)直接修改程序机器指令,改变程序执行流程: (二)通过构造输入参数,造成BOF攻 ...
随机推荐
- log4j 2.+框架
今天听网友介绍说Log4j2说效率比lOG4J高而且敲级好用.晚上有空就花了几个时间研究了一下.发现嗯,的确好用.我还清楚的记得Log4j1.2的时候我们需要设置log4j需要通过一个properti ...
- 面向对象text 01 盖伦vs瑞文vs提莫
''' Text For Class: League of Legends Garen vs Riven vs Teemo ''' import random # 全局随机 import time c ...
- Python 多进程和多线程的效率对比
import time from threading import Thread from multiprocessing import Process def f1(): # time.sleep( ...
- 实际操作中遇到的问题--Django中查看已安装的包的相关命令
pip freeze --------查看已经安装的包 pip uninstall 安装包名 ---------卸载已安装的包 pip install 安装包名--------安装包
- 微信小程序 获取用户信息授权
login.wxml界面 获取用户授权可以用微信提供的接口 wx.authorize, 但是获取用户信息的授权用这个接口不会弹出授权窗口 <button class="submit-b ...
- 【Java】关于项目启动大请求量高负载时如何确保db等资源不出错的问题
如果一个项目启动时(单机), 瞬间来了1000个访问, 如何确保db等资源不会压垮呢? 现在想想我当时回答的并不好, 而现在看公司框架才发现其实有针对于这一块做过专门的优化的.下面就来分享下公司关 ...
- Jenkins-client模式配置
Jenkins配置master-slave模式 本来想着先写一篇jenkins安装的流程,但是现在jenkins做的已经非常完善了,有.war文件,直接在tomcat启动即可,所以这里就不多说了,小白 ...
- java效验只能为数字类型
首先要import java.util.regex.Pattern 和 java.util.regex.Matcher /** * 利用正则表达式判断字符串是否是数字 * @param str * @ ...
- 安装并激活pycharm
进入 pycharm官网 https://www.jetbrains.com/pycharm/ 或直接百度pycharm进入官网 点击download now 下载专业版: 点击保存文件: 双击 py ...
- Pytho的历史和语言介绍
1.Python的历史 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语言的编译器.Python这个名字,来自Guido ...