zoukankan      html  css  js  c++  java
  • 20145232韩文浩《网络对抗》PC平台逆向破解

    shellcode注入

    1、Linux下有两种基本构造攻击buf的方法:retaddr+nop+shellcodenop+shellcode+retaddr。我们采用anything+retaddr+nops+shellcode的方法。

    2、实验的目标是找到返回地址的位置和shellcode的地址。然后通过修改返回地址使其自动执行shellcode

    实验前通过命令:apt-get install exestack安装exestack
    拷贝并运行pwn1文件确保可以使用
    设置堆栈可执行

    • 关闭地址随机化,more/proc/sys/kernel/randomizevaspace用来查询地址随机化是否开启或者关闭的状态,2表示开启,0表示关闭。

    • 构造payload,采用nop+shellcode+retaddr方式(x4x3x2x1将覆盖到堆栈上的返回地址的位置,需要将它改为shellcode的地址)

    • 打开一个新的端口,用命令:(cat input_shellcode; cat) > ./20145232pwn1注入这段攻击并执行文件

    • 开启另一个终端,输入ps -ef | grep 201445232pwn1,查看进程的UID

    • 进入gdb模式,然后输入attach UID与进程进行连接

    • 输入命令disassemble foo对foo函数进行反汇编

    • 在ret处设置一个断点

    • 在端口下按回车执行一下程序,在gdb中输入c

    • 查看此时寄存器esp中的值,这个地址就是函数的返回地址

    • 输入quit退出gdb模式

    • 用xxd input_shellcode查看输入

    • 再次执行程序,完成攻击

  • 相关阅读:
    python3爬虫-快速入门-爬取图片和标题
    数据库Mysql的学习(八)-储存过程和事务和导入导出
    数据库Mysql的学习(七)-自定义函数和流程控制
    git reset --hard HEAD^
    list采坑记录一下
    Linux运行jar包
    JSONObject.toJSONString(map)
    String转list
    判断list中元素是否是相邻
    统计List中相同的元素
  • 原文地址:https://www.cnblogs.com/albieh/p/6688411.html
Copyright © 2011-2022 走看看