• 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的防线 嗯 继续努力

  • 相关阅读:
    .net下将富文本编辑器文本原样读入word文档
    最大流算法完整代码
    如何用程序删除win 7下SYSTEM权限的目录
    01背包问题的动态规划算法
    使用gem安装jekyll错误记录
    dev机上数据库中批量生成table
    git pull错误记录及解决
    git clone操作到开发机的错误记录
    nginx错误记录
    链表链式结构的写法
  • 原文地址:https://www.cnblogs.com/Jclemo/p/6539710.html
Copyright © 2020-2023  润新知