zoukankan      html  css  js  c++  java
  • 20145307陈俊达《网络对抗》shellcode注入&return to libc

    20145307陈俊达《网络对抗》shellcode注入
    Shellcode注入

    基础知识

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

    将环境设置为:堆栈可执行、地址随机化关闭

    选择anything+retaddr+nops+shellcode的结构构造攻击buf,先猜测返回地址所在位置,并且找到shellcode所在地址

    在终端注入这段攻击buf:

    先不输入“回车”,在后面的调试过程中需要继续运行的时候再回车,此时再打开另外一个终端,用gdb来调试20145307pwn1这个进程,先找到该进程的进程ID,再打开gdb,用attach指令对该进程进行调试:

    对foo函数进行反汇编,在ret处设置断点,接着继续运行到断点处,显示当前esp的值并依照此位置显示接下来的内存地址内容,来分析我们之前猜测的返回地址位置是否正确

    继续运行确认返回地址:

    将返回地址修改为0xffffd364,重新注入

    接下来是return to libc的实验

    首先创建一个新的用户,我们命名为stayreal

    建立相关属性用id等命令确认创建的id是否可行。编译程序。

    把system的放置在环境变量BIN_SH中,然后获取BIN的地址,同时用GDB获取system和exit的地址

    运行gdb调试 获得system和exit的值

    之后就运行exploit和retlib
    然后ls出先内容,whoami发现嘻嘻嘻是root

    感想感想

    嗯 还是蛮刺激的 竟然能攻破linux的防线 嗯 继续努力

  • 相关阅读:
    java performance
    C# and Java: Comparing Programming Languages
    MYSQL blogs and articles
    网络基本功系列:细说网络那些事儿
    Spark 优化器 ML的论文
    逻辑回归
    MapReduce
    Spark
    Set-Theory-and-Logic
    k-means
  • 原文地址:https://www.cnblogs.com/Jclemo/p/6539710.html
Copyright © 2011-2022 走看看