zoukankan      html  css  js  c++  java
  • 20145331魏澍琛 《网络对抗技术》 PC平台逆向破解

    20145331魏澍琛 《网络对抗技术》 PC平台逆向破解

    学习任务

    1、shellcode注入:shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对方的堆栈中,并将堆栈的返回地址利用缓冲区溢出,覆盖成为指向 shellcode 的地址。

    2、Return-to-libc 攻击实验:即使栈有不可执行的能力,无法将shellcode放入堆栈中运行,但我们却可以直接让漏洞程序调转到现存的代码来实现我们的攻击。

    注入Shellcode并执行

    1、设置环境

    2、以 anything+retaddr+nops+shellcode 的结构来构造,先估计返回地址所在位置,并且找到 shellcode 所在地址

    3、验证返回地址所在位置以及找到 shellcode 地址,切记先别着急按回车,先另外打开一个终端!

    4、找到正在执行的20145331pwn1的进程号

    5、进入GDB,联上刚刚找到的进程号

    6、在 ret 处设置断点,接着运行到断点处,显示当前esp的值并依照此位置显示接下来的内存地址内容,并由此分析出返回地址位置的正确性以及shellcode的地址

    7、继续运行,再次检测是否跳到覆盖的返回地址所表示的地方

    8、将作为输入的 input_shellcode 处的 “x10x20x30x40” 换为上面所找到的 shellcode 地址 “x31xd3xffxff”,接着执行 20145331pwn1 ,shellcode成功注入!

    Return-to-libc 攻击实验

    1、进入 32 位 linux 环境。输入“/bin/bash”使用 bash

    2、把漏洞程序代码保存为“retlib.c”,在 /tmp 目录下

    3、编译

    4、环境变量的程序“getenvaddr.c”,代码如下

    5、攻击程序代码保存为“exploit.c”,在/tmp 目录下

    6、用getenvaddr程序获得 BIN_SH 地址

    7、用gdb获得system和exit地址

    8、用得到的值去覆盖原exploit.c 文件的对应数据(BIN_SH+system+exit)

    9、先运行攻击程序 exploit,再运行漏洞程序 retlib,可见攻击成功,获得了 root 权限,实验成功!

    /.

      个人痕迹好像不太明显。。。。

      不过BIN_SH、system、exit的值每个人都应该不一样

    ./

  • 相关阅读:
    2017光棍节新生训练赛
    javascript模块化编程(二):AMD规范
    javascript模块化编程(一):模块的写法
    CommonJS Promises/A规范
    javascript面向对象(三):非构造函数的继承
    javascript面向对象(二):构造函数的继承
    javascript面向对象(一):封装
    this用法(ryf)
    javascript继承机制的设计思想(ryf)
    XMLHttpRequest对象用法
  • 原文地址:https://www.cnblogs.com/bosswsc/p/6580804.html
Copyright © 2011-2022 走看看