20165214 2018-2019-2 《网络对抗技术》Exp1+ 逆向进阶 Week4
《网络对抗技术》Exp2 PC平台逆向破解之“MAL_简单后门” Week4
一、实验内容
Task1
自己编写一个64位shellcode。参考shellcode指导。
自己编写一个有漏洞的64位C程序,功能类似我们实验1中的样例pwn1。使用自己编写的shellcode进行注入。
Task 2(未完成)
进一步学习并做ret2lib及rop的实践,以绕过“堆栈执行保护”。参考ROP
Task 3(未完成)
可研究实践任何绕过前面预设条件的攻击方法;可研究Windows平台的类似技术实践。
或任何自己想弄明白的相关问题。包括非编程实践,如:我们当前的程序还有这样的漏洞吗?
二、实验步骤
1、Task1
1、打开创段,创建shellcode.c,输入shellcode源码:

2、编译生成可执行文件,执行查看效果:

3、反汇编查看代码
objdump -d shellcode | more,并且找到main函数:

4、打开另一终端,将main函数的16进制代码写进一个C程序中来测试我们获得的shellcode是否正确。这里折腾了两三个小时后失败了。对于整体的流程我已经烂熟于心了,但一直卡在一个地方:根据反汇编代码,用汇编写出代码。这一点我始终学不会,学姐的博客也没有写出来。于是我决定先跳过这一步,拿现成的汇编代码来进行下面的步骤。也希望自己能够在今后的学习中解决这个遗憾。
5、创建newshellcode.nasm,输入如下代码:

6、先后输入
nasm -felf32 newshellcode.nasm -o newshellcode.o和ld -melf_i386 newshellcode.o -o newshellcode.bin,进行汇编与链接,,再输入./newshellcode运行尝试,成功。

7、查看反汇编代码,提取出来

shellcode[]="\x31,\xc0,\x31,\xd2,\xb0,\x0b,\x52,\x66,\x68,\x2d,\x63,\x89,\xe7,\x52,\x68,\x62,\x61,\x73,\x68,\x68,\x62,\x69,\x6e,\x2f,\x68,\x2f,\x2f,\x2f,\x2f,\x89,\xe3,\x52,\xeb,\x06,\x57,\x53,\x89,\xe1,\xcd,\x80,\xe8,\xf5,\xff,\xff,\xff,\x2f,\x62,\x69,\x6e,\x2f,\x73,\x68"8、放进C语言程序进行调试:

9、调试,成功:

10、使用实验一的第三个步骤的方法进行注入,结果如下:

2、Task2
20165214 2018-2019-2 《网络对抗技术》Exp1+ 逆向进阶 Week4的更多相关文章
- 20145311 王亦徐《网络对抗技术》 逆向及BOF进阶实践
20145311<网络对抗技术>逆向及BOF进阶实践 学习目的 shellcode注入:shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈 ...
- 20145321《网络对抗技术》逆向与Bof基础
20145321<网络对抗技术>逆向与Bof基础 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何 ...
- 20145337《网络对抗技术》逆向及BOF基础
20145337<网络对抗技术>逆向及BOF基础 实践目标 操作可执行文件pwn1,通过学习两种方法,使main函数直接执行getshall,越过foo函数. 实践内容 手工修改可执行文件 ...
- 20145302张薇 《网络对抗技术》逆向及BOF基础实践
20145302张薇 <网络对抗技术>逆向及BOF基础实践 实验内容 实践对象:名为20145302的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单 ...
- 20145328 《网络对抗技术》逆向及Bof基础实践
20145328 <网络对抗技术>逆向及Bof基础实践 实践内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回 ...
- 20145210姚思羽《网络对抗技术》逆向及Bof基础实践
20145210姚思羽<网络对抗技术>逆向及Bof基础实践 实践目标 1.本次实践的对象是一个名为pwn1的linux可执行文件. 2.该程序正常执行流程是:main调用foo函数,foo ...
- 20145236《网络对抗》Exp1 逆向及Bof基础
20145236<网络对抗>Exp 1逆向及Bof基础 一.实践目标 运行原本不可访问的代码片段 强行修改程序执行流 以及注入运行任意代码. 二.基础知识及实践准备 理解EIP寄存器及其功 ...
- 20145339顿珠达杰 《网络对抗技术》 逆向与Bof基础
目的 通过一些方法,使能够运行本不该被运行的代码部分,或得到shell的使用: 将正常运行代码部分某处call后的目标地址,修改为另一部分我们希望执行.却本不应该执行的代码部分首地址(这需要我们有一定 ...
- 实验一 《网络对抗技术》逆向及Bof技术
随机推荐
- python+selenium测试
网址http://blog.csdn.net/u011541946/article/category/6788788/1
- js实现word转换为html
前言 最近接到一个需求,实现上传一个word文档,然后将该word转换成html丢给服务端存上.进行技术调研后发现有三种方法可以实现这个功能:ActiveXObject.docx2html.mammo ...
- 自动车牌识别(ALPR)---https://blog.csdn.net/ELEVEN_ZOU/article/details/80893579
1.基本功能:从一张或者一系列的图片中提取车牌信息,比如车牌号码.车牌颜色等信息. 2.功能扩展:车型.车品牌.车牌类型等. 3.应用方向:电子交易系统(停车自动收费.收费站自动支付等).交通执法.交 ...
- vue 渲染后更新数据
this.$set(this.selGetData,level,[{},{}])this.$set(this.selGetData,1,{message:"Test add attr&quo ...
- 安装在类虚拟机crossover中的容器怎么进行的备份和恢复
备份教程: 步骤一:运行CrossOver,选中相关容器,然后在[容器]中找到并点击[导出“MathType6.9b_Trial_YY.exe”到存档],或者直接右击容器名称,然后选择[导出“Math ...
- C++(实验三)
Part 1 画布小球试验 程序源码 #include <iostream> #include "canvas.h" #include "ball.h&quo ...
- git reset 和 git revert 使用区别
git reset 用于回退代码,但是git pull后会和远程分支保持一致,所以无法修改远程代码 git revert可以撤销代码,撤销后直接git push ,可以修改远程分支的代码
- PAT 1148 Werewolf - Simple Version
1148 Werewolf - Simple Version (20 分) Werewolf(狼人杀) is a game in which the players are partitioned ...
- 文科生打开python的大门
作为唯一的一名教育学院的学生,加入python课程,一定要声明我可不是并不是被迫选课的!虽然是文科生,但是是对编程这种东西很感兴趣的文科生.从站在python门口的张望,到现在悄悄把门打开,越来越感觉 ...
- lumion材质系统室内渲染6.3
材质系统是对于导入的模型,而不对自带的模型起作用.自带的模型有的能改变属性. 点击“材质”点击墙,出来材质库.为墙体赋予一种材质, 完成后点击保存,就可以保存了.然后给窗户添加玻璃材质. 可以看到墙, ...