zoukankan      html  css  js  c++  java
  • 20145229吴姗珊《网络对抗》shellcode注入&Return-to-libc攻击深入

    20145229吴姗珊《网络对抗》shellcode注入&Return-to-libc攻击深入(待上传)

    shellcode注入

    • shellcode是一段代码,是溢出程序和蠕虫病毒的核心,一般可以获取权限,如果将代码存储到对方的栈中,将返回地址利用缓冲区溢出就可以指向我们所希望的shellcode

    实践

    • 首先需要一个shellcode,我就取名为20145229shellcode啦

    • 编译运行一下呗

    • 为了在后面查询文件的堆栈是否可以执行,所以需要安装execstack指令

    • 配置环境,查询地址随机化是否开启

      execstack -s:设置堆栈可执行
      execstack -q:查询文件的堆栈是否可执行 X为可执行
      参数0表示地址随机化关闭,1表示将mmap基址,stack和vdso页面随机化,2为在1的基础下增加栈随机化

    • 构造要注入的payload
      以下buf结构为:nops+shellcode+retaddr,nop为了填充以及一个保险的作用,保证我们的猜测只要一个到nop即可跳转shellcode
      用x4x3x2x1覆盖返回地址的位置(这个图打字打错了,但是正确那个忘截图了,就用这个吧)

    • 打开另一个终端攻击buf,后面调试工程再按回车!!切记!!

    • 再打开一个终端,查找与20145229shellcode相关的进程,前面的终端按一下回车,出现如下图,找到该进程号为2304

    • 打开gdb,用attach指令进行反汇编

    • 对foo函数进行反汇编

    • 在ret处设置断点,查看注入buf的内存地址,分析我们之前猜测的返回地址位置是否正确

      这里经历了诸多磨难,发现前面有个地方输错了!!!然后重新来!!

  • 相关阅读:
    1、springcloud gateway
    -webkit-overflow-scrolling:touch 相关
    SpringBoot(一)原理剖析:SpringApplication启动原理
    JAVA基础面试题
    JVM面试题
    排序(四)选择排序:简单选择排序
    排序(三)插入排序:简单插入排序和希尔排序
    排序(二)交换排序:冒泡排序与快速排序
    排序(一)简介
    多线程面试题
  • 原文地址:https://www.cnblogs.com/20145229ss/p/6646497.html
Copyright © 2011-2022 走看看