2018-2019-2 网络对抗技术 20165320 Exp1 PC平台逆向破解
学到的新知识总结
- 管道:符号为
|前一个进程的输出直接作为后一个进程的输入 - 输出重定向:符号为
>将内容定向输入到文件中 - perl:一门解释性语言,不需要预编译,直接在命令行中使用。常与输出重定向">"将生成的字符串存储到文件input中。
- xxd:16进制查看命令
- objdump:反汇编
实验过程
1、修改机器指令,改变程序执行流程
首先将目标文件pwn1进行反汇编,能够看到相关的汇编代码。

其中main函数中有一条call指令,后面原本接的是foo函数的起始地址
为了能让程序在执行时直接跳到shellcode,我们需要修改调用foo函数时的机器指令,只要修改“d7ffffff”为,"getShell-80484ba"对应的补码就行。如下图所示


- 执行结果如下:

2、通过构造输入参数,造成BOF攻击
这种攻击主要是通过缓冲区的数据溢出导致原函数的返回地址被Shellcode的起始地址所覆盖。
首先我们需要对程序进行GDB调试,查看输入的字符串到第几个字节会发生溢出。(小端机器)

然后构造一个输入,将Shellcode代码的地址覆盖到相应的位置。这时需要用到perl指令。如图

执行结果如下:

3、注入Shellcode并执行
准备工作如下:
设置堆栈可执行 execstack -s 设置堆栈可执行
execstack -q 查询文件的堆栈是否可执行
关闭地址随机化
more /proc/sys/kernel/randomize_va_space 2echo "0" > /proc/sys/kernel/randomize_va_spacemore /proc/sys/kernel/randomize_va_space 0
常用的构造攻击buf的方法
retaddr+nop+shellcode (缓冲区小)
nop+shellcode+retaddr (缓冲区大)
实验首先类似上一个实验构造一个输入,然后用gdb进行调试,对foo函数进行反汇编,在ret指令处设置断点,等待程序继续运行时查看ESP中的值。(一开始按照老师的教程走了一遍,发现原来还有坑,心塞)

ESP的值+4就是Shellcode的地址,再将其写入一开始的攻击buf,执行程序就能攻击成功。

4、老师问题
- NOP:NOP指令即“空指令”。执行到NOP指令时,CPU什么也不做,仅仅当做一个指令执行过去并继续执行NOP后面的一条指令。(机器码:90)
- JNE:条件转移指令,如果不相等则跳转。(机器码:75)
- JE:条件转移指令,如果相等则跳转。(机器码:74)
- JMP:无条件转移指令。段内直接短转Jmp short(机器码:EB) 段内直接近转移Jmp near(机器码:E9) 段内间接转移 Jmp word(机器码:FF) 段间直接(远)转移Jmp far(机器码:EA)
CMP:比较指令,功能相当于减法指令,只是对操作数之间运算比较,不保存结果。cmp指令执行后,将对标志寄存器产生影响。其他相关指令通过识别这些被影响的标志寄存器位来得知比较结果。
实验感想
- 我觉得这次实验对于我来说还是挺难的吧,第三个实验的细节还有待琢磨,虽然能按照步骤达成最终的目的,但是得把过程细化,理清思路才行。堆栈的结构还有地址的存储还有待加强理解。
2018-2019-2 网络对抗技术 20165320 Exp1 PC平台逆向破解的更多相关文章
- 20165221 《网络对抗技术》EXP1 PC平台逆向破解
20165221 <网络对抗技术>EXP1 PC平台逆向破解 一.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函 ...
- 2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解
2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解(BOF实验) 实验有三个模块: (一)直接修改程序机器指令,改变程序执行流程: (二)通过构造输入参数,造成BOF攻 ...
- 2018-2019-2 20165206《网络对抗技术》Exp1 PC平台逆向破解
- 2018-2019-2 20165206<网络对抗技术>Exp1 PC平台逆向破解 - 实验任务 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:mai ...
- 2018-2019-2 20165317《网络对抗技术》Exp1 PC平台逆向破解
2018-2019-2 20165317<网络对抗技术>Exp1 PC平台逆向破解 实验目的 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:无作用,英文&quo ...
- 2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解
2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解 1. 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常 ...
- 2018-2019-2 网络对抗技术 20165305 Exp1 PC平台逆向破解
2018-2019-2 网络对抗技术 20165305 Exp1 PC平台逆向破解 实验1-1直接修改程序机器指令,改变程序执行流程 先输入objdump -d 20165305pwn2查看反汇编代码 ...
- 2018-2019-2 《网络对抗技术》 Exp1 PC平台逆向破解 20165215
2018-2019-2 <网络对抗技术> Exp1 PC平台逆向破解 20165215 目录 知识点描述 实验步骤 (一)直接修改程序机器指令,改变程序执行流程 (二)通过构造输入参数,造 ...
- 2018-2019-2 20165316 《网络对抗技术》Exp1 PC平台逆向破解
2018-2019-2 20165316 <网络对抗技术>Exp1 PC平台逆向破解 1 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件 ...
- 20165214 2018-2019-2 《网络对抗技术》Exp1 PC平台逆向破解 Week3
<网络对抗技术>Exp1 PC平台逆向破解之"逆向及Bof基础实践说明" Week3 一. 实验预习 1.什么是漏洞?漏洞有什么危害? 漏洞就是在计算机硬件.软件.协议 ...
随机推荐
- spring boot 系列之一:spring boot 入门
最近在学习spring boot,感觉确实很好用,开发环境搭建和部署确实省去了很多不必须要的重复劳动. 接下来就让我们一起来复习下. 一.什么是spring boot ? spring boot是干嘛 ...
- Sublime text3 插件HTML/CSS/JS prettify 格式化代码
1.首先安装插件 菜单的preference->packages control,然后输入install .. 回车,再输入HTML/CSS/JS prettify 再回车,重启后就可以了. 2 ...
- SSM poi通过模板 反射导出excel
1 import java.lang.reflect.Field; 2 import java.lang.reflect.Method; 3 import java.util.Iterator; 4 ...
- 自学工业控制网络之路1.1-工业控制系统发展历程CCS DCS FCS
返回 自学工业控制网络之路 自学工业控制网络之路1.1-工业控制系统发展历程CCS DCS FCS 工业控制系统是对诸如图像.语音信号等大数据量.高速率传输的要求,又催生了当前在商业领域风靡的以太网与 ...
- SharePoint 2013 APP 开发示例 (四)JQuery访问REST
这个示例里,我们将用JQuery AJAX去发送一个 REST请求,并查看返回结果.为了让我们更好地理解REST 接口,我们将添加一个输入框让用户可以指定REST的URL, 这将让我们尝试着用构造的U ...
- 洛谷 P1120 小木棍 [数据加强版]解题报告
P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它 ...
- 精确度量Linux下进程占用多少内存的方法
背景 在Linux中,要了解进程的信息,莫过于从 proc 文件系统中入手去看. proc的详细介绍,可以参考内核文档的解读,里面有很多内容 yum install -y kernel-doc cat ...
- js,mui,jq 操作基本的DOM
一.HTML <ul> <li>1111111</li> <li>22222222</li> </ul> 二.CSS li{ h ...
- pyautogui_pdf批量转换为TXT
pyautogui_pdf批量转换为TXT, 用pdf自带无损转换 # -*- coding: utf-8 -*- """ Created on Thu May 5 15 ...
- https和server-status配置案例
https和server-status配置案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.https协议 我们知道http协议是明文的,所以,你的数据发送不管是请求报文(r ...