<网络对抗>Exp1 PC平台逆向破解20155337祁家伟 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode. 一.基础知识学习 1.掌握NOP.JNE.JE…
2018-2019 20165226 网络对抗 Exp1 PC平台逆向破解 目录 一.逆向及Bof基础实践说明 二.直接修改程序机器指令,改变程序执行流程 三.通过构造输入参数,造成BOF攻击,改变程序执行流 四.注入Shellcode并执行 五.问题与思考 一.逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShel…
20155305<网络对抗>PC平台逆向破解(二) shellcode注入 1.shellcode shellcode是一段代码,溢出后,执行这段代码能开启系统shell. 2.构造方法 (1)nop+shellcode+retaddr(适用于缓冲区大的情况) (2)retaddr+nop+shellcode(适用于缓冲区小的情况) 3.准备工作(安装execstack并修改设置) 安装execstackapt-get install execstack 设置堆栈可执行execstack -s…
20155311<网络对抗>PC平台逆向破解(二) shellcode注入 什么是shellcode? shellcode是一段代码,溢出后,执行这段代码能开启系统shell. 前期准备--安装execstack,修改设置 输入execstackapt-get install execstack下载exectstack 设置堆栈可执行execstack -s pwn20155311 看看堆栈是否可执行execstack -q pwn20155311 输入more /proc/sys/kerne…
2015531 网络攻防 Exp1 PC平台逆向破解(5)M 实践目标 本次实践的对象是linux的可执行文件 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode 实践一 首先,通过命令objdump -d pwn1对文件进行反汇编…
20145330 <网络对抗>PC平台逆向破解:注入shellcode 实验步骤 1.用于获取shellcode的C语言代码 2.设置环境 Bof攻击防御技术 需要手动设置环境使注入的shellcode到堆栈上可执行. 具体在终端输入如下: root@KaliYL:~# execstack -s pwnyx //设置堆栈可执行 root@KaliYL:~# execstack -q pwnyx //查询文件的堆栈是否可执行 X pwn1 root@KaliYL:~# more /proc/sy…
20145221<网络对抗>PC平台逆向破解 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段. 实践要求 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(1分) 掌握反汇编与十六进制编程器 (1分) 能正确修改机器指令改…
20155307<网络对抗>PC平台逆向破解(二) shellcode注入 什么是shellcode? shellcode是一段代码,溢出后,执行这段代码能开启系统shell. 前期准备--安装execstack,修改设置 输入execstackapt-get install execstack下载exectstack 设置堆栈可执行execstack -s pwn20155307 看看堆栈是否可执行execstack -q pwn20155307 输入more /proc/sys/kerne…
20145312 <网络对抗>PC平台逆向破解:注入shellcode和 Return-to-libc 攻击实验 注入shellcode 实验步骤 1. 准备一段Shellcode 2. 设置环境 Bof攻击防御技术 从防止注入的角度来看:在编译时,编译器在每次函数调用前后都加入一定的代码,用来设置和检测堆栈上设置的特定数字,以确认是否有bof攻击发生. GCC中的编译器有堆栈保护技术(结合CPU的页面管理机制,通过DEP/NX用来将堆栈内存区设置为不可执行.这样即使是注入的shellcode…
20145201<网络对抗>PC平台逆向破解 准备阶段 下载安装execstack. 获取shellcode的c语言代码 设置堆栈可执行 将环境设置为:堆栈可执行.地址随机化关闭(2开启,0表示关闭) 采用nop+shellcode+retaddr方式构造payload,其中\x4\x3\x2\x1处是将来要填的shellcode起始地址,最后一个字符不能是\x0a 开启一个新的终端将payload注入到pwn1中 在第一个终端中查询20145201pwn进程的UID 4948 -保持第二个终…
20145219<网络对抗>PC平台逆向破解 shellcode注入 1.shellcode shellcode是一段代码,溢出后,执行这段代码能开启系统shell. 2.构造方法 (1)nop+shellcode+retaddr(适用于缓冲区大的情况) (2)retaddr+nop+shellcode(适用于缓冲区小的情况) 3.nop+shellcode+retaddr方法 用vim编写一段代码shellcode 安装execstack 设置堆栈可执行 查询地址随机化状态(2表示开启,0表…
Exp1 PC平台逆向破解 20165235 祁瑛 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串.该程序同时包含另一个代码段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode. 三个实践内容如下: 手工修改可执行文件,改变程序执行流程,直接跳…
PC平台逆向破解_advanced shellcode注入 Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码,一般可以获取权限.另外,Shellcode一般是作为数据发送给受攻击服务器的. linux下有两种基本构造攻击buf的方法:retaddr+nop+shellcode,nop+shellcode+retaddr.因为retaddr在缓冲区的位置是固定的,shellcode要不在它前面,要不在它后面.一般来说,缓冲区小就把shellcode放后边,…
shellcode注入 1.Linux下有两种基本构造攻击buf的方法:retaddr+nop+shellcode,nop+shellcode+retaddr.我们采用anything+retaddr+nops+shellcode的方法. 2.实验的目标是找到返回地址的位置和shellcode的地址.然后通过修改返回地址使其自动执行shellcode 实验前通过命令:apt-get install exestack安装exestack 拷贝并运行pwn1文件确保可以使用 设置堆栈可执行 关闭地址…
20155239 网络对抗 Exp1 PC平台逆向破解(5)M 实验内容 (1).掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(1分) (2)掌握反汇编与十六进制编程器 (1分) (3)能正确修改机器指令改变程序执行流程(1分) (4)能正确构造payload进行bof攻击(2分) (5)Optional:进阶,shellcode编程与注入 实践指导:实践指导 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,f…
20155324<网络对抗>Exp1 PC平台逆向破解(5)M 实验目标 本次实践的对象是一个名为~pwn1~的~linux~可执行文件. 该程序正常执行流程是:~main~调用~foo~函数,~foo~函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,~getShell~,会返回一个可用~Shell~.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何~Shellcode~. 基础知识 掌…
20165221 <网络对抗技术>EXP1 PC平台逆向破解 一.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串.但是该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode. 三个实践内容如下: 直接修改程序机器指令…
2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解(BOF实验) 实验有三个模块: (一)直接修改程序机器指令,改变程序执行流程: (二)通过构造输入参数,造成BOF攻击,改变程序执行流: (三)注入Shellcode并执行: 回答一下老师的问题 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:90 JNE:75 JE:74 JMP:E9(JMP immed16)EA(JMP immed32)EB(JMP immed8) CMP:38(C…
- 2018-2019-2 20165206<网络对抗技术>Exp1 PC平台逆向破解 - 实验任务 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode. 三个实践内容如下…
2018-2019-2 20165317<网络对抗技术>Exp1 PC平台逆向破解 实验目的 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:无作用,英文"no operation"的简写,意思是"do nothing"(机器码90) JNE:若不相等则跳(机器码75) JE:若相等则跳(机器码74) JMP:无条件转移指令.段内直接短转Jmp short(机器码:EB),段内直接近转移Jmp near(机器码:E9),段内间接…
2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解 1. 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串.该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段. 1.2实践内容如下: 手工修改可执行文件,改变程序执行流程,直接跳转到…
2018-2019-2 20165236郭金涛<网络对抗>Exp1 PC平台逆向破解 一.实验内容 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分) 2.掌握反汇编与十六进制编程器 (0.5分) 3.能正确修改机器指令改变程序执行流程(0.5分) 4.能正确构造payload进行bof攻击(0.5分) 二.实践目标 1.本次实践的对象是一个名为pwn1的linux可执行文件,如图: 2.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输…
2018-2019-2 网络对抗技术 20165305 Exp1 PC平台逆向破解 实验1-1直接修改程序机器指令,改变程序执行流程 先输入objdump -d 20165305pwn2查看反汇编代码,然后查看机器指令,找到并根据机器指令计算出要篡改的目标地址. 我们可以从下图中看到call 804891的 机器码指令为e8 d7 ff ff ff,然后我们可以通过知道,只要把d7改为c3就可以在运行文件时调用getshell. 以下是我要执行的一系列指令 首先输入vi 20165305pwn2…
2018-2019-2 <网络对抗技术> Exp1 PC平台逆向破解 20165215 目录 知识点描述 实验步骤 (一)直接修改程序机器指令,改变程序执行流程 (二)通过构造输入参数,造成BOF攻击,改变程序执行流 (三)注入Shellcode并执行 实验感想及问题回答 [知识点描述] 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:空指令,运行该指令时单片机什么都不做,但是会占用一个指令的时间,对应机器码为90 JNE:条件转移指令,ZF标志位为0时跳转,对应…
2018-2019-2 20165316 <网络对抗技术>Exp1 PC平台逆向破解 1 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何She…
<网络对抗技术>Exp1 PC平台逆向破解之"逆向及Bof基础实践说明" Week3 一. 实验预习 1.什么是漏洞?漏洞有什么危害? 漏洞就是在计算机硬件.软件.协议.安全策略上存在的缺点.利用这些缺点,攻击者可以对计算机系统进行攻击,从而达到一定的目的.漏洞威胁了计算机的系统安全,给攻击者有可乘之机,可能引起经济损失.机密泄露.隐私暴露.数据篡改等问题. 2.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(以下为16进制) NOP:91,空指令 JNE…
2018-2019-2 网络对抗技术 20165228 Exp1 PC平台逆向破解 实验内容及步骤 第一部分:直接修改程序机器指令,改变程序执行流程 关键:通过修改call指令跳转的地址,将原本指向被调用函数入口的地址修为getshell函数入口的地址,从而达到目的 对pwn1进行反汇编,分析函数执行的步骤 objdump -d pwn1 getshell函数入口地址为0x0804847d foo函数入口地址为0x08048491 main函数中调用foo函数的机器码为e8 d7 ff ff f…
2018-2019-2 网络对抗技术 20165308 Exp1 PC平台逆向破解 NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP汇编指令:执行到NOP指令时,CPU仅仅当做一个指令执行过去并继续执行NOP后面的一条指令. JNE汇编指令:条件转移指令,如果不相等则跳转. JE汇编指令:如果条件相等则跳转. JMP汇编指令:直接跳转到所需跳转的位置. CMP汇编指令:减法指令,只是对操作数之间运算比较,不保存结果.cmp指令执行后,将对标志寄存器产生影响.其他相关指令通过识…
2018-2019-2 20165205 <网络对抗技术> Exp1 PC平台逆向破解 1. 实验任务 1.1实验概括 用一个pwn1文件. 该程序正常执行流程是:main调用foo函数,foo函数会回显任何用户输入的字符串. 该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不被运行的.实践的目标就是想办法运行这个代码片段. 我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode. 1.2实践内容 手工修改可执行文件,改变E…
20165315 2018-2019-2 <网络对抗技术>Exp1 PC平台逆向破解 一.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字符串.但是该程序同时包含另一个代码片段,getShell,会返回一个可用Shell.正常情况下这个代码是不会被运行的.我们实践的目标就是想办法运行这个代码片段.我们将学习两种方法运行这个代码片段,然后学习如何注入运行任何Shellcode. 三个实践内容如下:…