• 逆向之利用地址覆盖执行Shellcode


    逆向之利用地址覆盖执行Shellcode

    Shellcode

    • Shellcode定义

      Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码一般可以获取权限。

    • Shellcode的作用

      Shellcode一般是作为数据发送给受攻击服务器的。Shellcode是溢出程序和蠕虫病毒的核心提到它自然就会和漏洞联想在一起。漏洞利用中最关键的是Shellcode的编写。

    由于漏洞发现者在漏洞发现之初并不会给出完整Shellcode因此掌握Shellcode编写技术就显得尤为重要。

    Shellcode的构造

    • 构造shellcode的作用:

      构造一段shellcode的作用就是为了在缓冲区溢出时将shellcode的地址覆盖掉正常的返回地址。

    • Shellcode的存放位置:

      Shellcode的通常放在缓冲区内,也可以通过环境变量存入堆内,也可以通过动态内存放入堆区。

    Shellcode执行方法

    跳板跳转

    • 跳板跳转的定义

      跳板跳转是一种常见的让可执行程序执行Shellcode内容的方法。

    • 跳转过程:

      (1)用内存中任意一个”jmpesp”的地址覆盖返回地址。
      (2)函数返回后被重定向去执行内存中jmpesp”指令。
      (3)由于函数返回后ESP指向返回地址后,"jmpesp”执行后,CPU将到栈区函数返回地址之后的地方取指令执行。
      (4)Shellcode的布置。缓冲区前面一段用任意数据填充,把Shellcode放在函数返回地址后面。jmpesp执行完就执行Shellcode。

    代码

    愿路途漫长,以后莫失莫忘。 愿你不骄不躁,安稳顺心。

    作者:菜鸟-传奇
    本文版权归作者和博客园共有,不以任何盈利为目的,欢迎转载。但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律声明责任的权利。
  • 相关阅读:
    html JS 开发备忘
    C++学习备忘(一)
    博客开通备忘
    自己制作的代码生成工具AutoCoder
    C# 小技巧
    突破list存为模板为10M限制
    开博
    OpenEuler中C语言中的函数调用测试
    socket测试3
    电子公文传输系统验收4开发基础
  • 原文地址:https://www.cnblogs.com/cainiao-chuanqi/p/14705473.html
Copyright © 2020-2023  润新知