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表示关闭),若是开启状态,则关闭地址随机化

采用nop+shellcode+retaddr方式构造payload,其中\x4\x3\x2\x1处是将来要填的shellcode起始地址,最后一个字符不能是\x0a

打开一个新终端,将payload注入到pwn1中(此处pwn1复制了一份,并命名为20145219pwn)

在第一个终端中查询20145219pwn进程的UID

保持第二个终端如上图状态,再打开一个新终端,开启GDB,对20145219pwn进行调试

先用attach命令进入对应UID端口,进行追踪

设置断点

在GDB调试出现continue的时候,在第二个终端中敲一下回车,此时,第二个终端如下图,GDB调试也暂停在断点处

查看内存地址,最终找到shellcode起始地址为0xffffd300

将用nop+shellcode+retaddr方式构造的payload中的\x4\x3\x2\x1改为\x00\xd3\xff\xff,并在再次注入到20145219pwn中,观察结果看到注入失败……

4、retaddr+nop+shellcode方法

nop+shellcode+retaddr方式的基础上,在构造的payload的最前面,加上\x00\xd3\xff\xff,重新注入到20145219pwn中,观察结果看到注入成功^_^

参考文献

20145219《网络对抗》PC平台逆向破解的更多相关文章

  1. 20155334 网络对抗PC平台逆向破解(二)

    注入Shellcode并运行攻击 shellcode就是一段机器指令(code) 通常这段机器指令的目的是为获取一个交互式的shell(像linux的shell或类似windows下的cmd.exe) ...

  2. 20145219《网络对抗技术》PC平台逆向破解之逆向与Bof基础

    20145219<网络对抗技术>PC平台逆向破解之逆向与Bof基础 实践目标 实践对象:一个名为pwn1的linux可执行文件. pwn1正常执行流程:main调用foo函数,foo函数会 ...

  3. 20155324《网络对抗》Exp1 PC平台逆向破解(5)M

    20155324<网络对抗>Exp1 PC平台逆向破解(5)M 实验目标 本次实践的对象是一个名为~pwn1~的~linux~可执行文件. 该程序正常执行流程是:~main~调用~foo~ ...

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

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

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

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

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

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

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

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

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

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

  9. 2018-2019-2 20165236郭金涛《网络对抗》Exp1 PC平台逆向破解

    2018-2019-2 20165236郭金涛<网络对抗>Exp1 PC平台逆向破解 一.实验内容 1.掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码(0.5分) 2.掌 ...

随机推荐

  1. 设计模式之单例模式(JAVA实现)

    单例模式之自我介绍 我,单例模式(Singleton Pattern)是一个比较简单的模式,我的定义如下: Ensure a class has only one instance,and provi ...

  2. ubuntu 信使(iptux) 创建桌面快捷方式

    $ sudo ln -s /usr/bin/iptux ~/桌面/iptux.ln

  3. ELK基础学习

    第壹部分:Elasticsearch 一 .Elasticsearch增删改查1.数据写入:HTTP method:POSTURL:http://127.0.0.1:9200/index-docs-n ...

  4. 170519、FastDFS分布式文件系统的安装与使用(单节点)

    基于 于 D Do ubbo 的分布 式系统架构 视频 教程 高 级篇S FastDFS 分布 式 文件系统的安装与使用 (单 节点)跟踪 服务器 : 192.168.4.12 21 1 (edu- ...

  5. Spring.Net的使用

    1.Spring.Net的简单介绍 spring.net 框架是微软效仿java中的spring框架而推出的一种在.net中使用的框架,它使用配置的方式实现逻辑的解耦,它的主要功能集成在Spring. ...

  6. Code Forces 18D Seller Bob(简单DP)

    D. Seller Bob time limit per test 2 seconds memory limit per test 128 megabytes input standard input ...

  7. Asp.NET 与 WebApi 共享Session

    首先新建一个.net framework 4.5.2的 web应用程序,选择WebApi基架,包括MVC与Webapi 1.在global.asax中启用Session 2.在HomeControll ...

  8. CRM - 起步

    一.crm简介 crm 客户关系管理软件 ( Customer Relationship Management ) 二.起步 models.py 表结构 from django.db import m ...

  9. PHP面向对象详解:继承、封装与多态

    首先,在解释面向对象之前先解释下什么是面向对象? [面向对象]1.什么是类? 具有相同属性(特征)和方法(行为)的一系列个体的集合,类是一个抽象的概念2.什么是对象?从类中拿到的具有具体属性值得个体, ...

  10. pouch架构源码分析

    // daemon/daemon.go 1.func NewDaemon(cfg config.Config) *Daemon 调用containerStore, err := meta.NewSto ...