本文为 Exploit编写教程 的学习笔记,原文请点击这里
本文仅作以防御为目的的技术总结,所有操作均在实验环境下进行,请勿用于非法行为,否则后果自负。
如有侵权烦请告知,我们会立即删除并致歉。谢谢。

要点提示:

  • 复现环境首选 WinXP,因为没有 地址随机化ASLR,可以减少复现难度。ASLR在 Vista以上版本才有。
  • 用到的工具有:python3\pwntools\windbg\x32dbg\msfvenom
  • 造成崩溃后查看EIP是否为目标地址,使用 d esp 查看栈中的数据。
  • 直接使EIP指向ESP不会有效果,要使EIP指向 jmp esp 指令的地址。
  • 查看软件加载的DLL所在的地址范围,再使用 s 1a800000 l 1f200000 ff e4 查询该指令所在的地址。ff e4jmp esp 的OPcode。
  • 使用 msfvenom 生成playload,选择合适的编码器

0x00 初识漏洞利用

2009年7月17日,昵称为“Crazy_Hacker”的人通过 packetstormsecurity.org 报告了 Easy RM to MP3 Conversion Utility 的一个漏洞,是在 WinXP SP2上验证的。漏洞报告包括一个PoC(proof of concept),但是无法在 WinXP SP3 虚拟机上验证。稍后又发布了另一个漏洞。

如果直接复制 PoC 代码并运行,会发现并不起作用(如果幸运的话也会有效),所以可以试着理解构建漏洞利用的过程,以便修复漏洞利用程序,或者干脆从头开始构建自己的漏洞利用。

顺便说一句:除非你能快速对shellcode进行反汇编、阅读和理解,否则我绝不建议你直接运行别人写的漏洞利用,尤其是可执行文件的情况下。假如它只是为了在你电脑里开个后门而构建的呢?

问题是:漏洞利用编写者如何构建他们的漏洞利用?从检测可能的漏洞到构建实际有效的漏洞利用的过程是什么样的?如何使用漏洞信息来构建自己的漏洞利用?

自从我开博客以来,写一篇关于缓冲区溢出的基本教程就一直在我的“待办事项”清单上,但我从来没有真正花时间去做(或者干脆忘记了)。

当我今天看到漏洞报告并查看了漏洞利用时,我认为这个漏洞报告可以作为解释编写漏洞利用基础知识的完美示例————它干净、简单,并且允许我演示一些用于编写可稳定运行的基于栈的缓冲区溢出的技术。

所以也许现在是个好时机,尽管前面提到的漏洞报告已经包含了一个漏洞利用(不管是否有效),我仍然会以 [Easy RM to MP3 Conversion Utility] 中的漏洞为例,我们将一步一步地构建有效漏洞利用,无需复制任何内容。我们将从头开始构建它,这次让它在 WinXP SP3 上运行

Exploit编写教程1:栈溢出相关推荐

  1. Exploit编写教程2:跳转的多种姿势

    本文为 Exploit编写教程 的学习笔记,原文请点击这里 本文仅作以防御为目的的技术总结,所有操作均在实验环境下进行,请勿用于非法行为,否则后果自负. 如有侵权烦请告知,我们会立即删除并致歉.谢谢. ...

  2. 【转载】Nessus安全测试插件编写教程

    Nessus安全测试插件编写教程 作者:Renaud Deraison 翻译:nixe0n 1.怎样编写一个高效的Nessus安全测试插件 在Nessus安全测试系统中, 所有的安全测试都是由ness ...

  3. Billy Belceb病毒编写教程---Win32篇

    正在处理中,请稍后-- Billy Belceb病毒编写教程---Win32篇                                      翻译:onlyu                ...

  4. [翻译]Billy Belceb 病毒编写教程for Win32

    Billy Belceb病毒编写教程---Win32篇                                      翻译:onlyu                            ...

  5. 老狼远程协助软件编写教程共62节全(作为作者,应该是最晚发布的了)

    老狼远程协助软件编写教程 本教程将深入剖析Gh0st内核,深入了解远程管理类软件编写的全过程,老狼将带领学员在参考Gh0st源码的基础上,纯手工打造一个新的远程协助软件,自从Gh0st开源后,各种改改 ...

  6. 一个很不错的bash脚本编写教程

    一个很不错的bash脚本编写教程 建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很 ...

  7. 最新的Xposed模块编写教程

    原标题:新手不要再被误导!这是一篇最新的Xposed模块编写教程 查看全文 http://www.taodudu.cc/news/show-5139296.html 相关文章: smartbi问题_S ...

  8. AndriodStudio 开发环境下实现Xposed模块开发入门。Xposed框架模块编写教程

    前言: Xposed框架是一款开源框架,其功能是可以在不修改APK的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作.Xposed 就好比是 ...

  9. rootkit原理与编写教程

    rootkit原理与编写教程 rootkit原理 rootkit介绍 windows下rootkit编写 windows编程技术 Linux下rootkit编写 rootkit原理 rootkit介绍 ...

  10. 股票选股公式编写教程第一讲:公式编写的基础函数

    股票选股公式编写教程 第一讲:公式编写的基础函数 打开技术指标公式,我们最常见的,它的组成不外乎两种情况,一是 K线,二是均线.其他诸如柱状线,彩带,分段线等等,都是在 K线或均线基础上的延伸或变形. ...

最新文章

  1. c ajax定时获取,ajax的定时调用每5秒调用一次
  2. php 掌握jquery,完全掌握jquery tmpl模板
  3. 0-pyqt5开发环境搭建
  4. sql性能优化之多表联查
  5. python py2exe_转:py2exe 生成 python 可执行文件
  6. C#LeetCode刷题之#404-左叶子之和​​​​​​​​​​​​​​(Sum of Left Leaves)
  7. spark学习-76-目标:如何成为大数据Spark高手
  8. 如何利用phpize在生产环境中为php添加新的扩展php-bcmath
  9. LoadRunner11录制APP脚本(2)
  10. 四二拍用音符怎么表示_2020圣诞平安夜怎么发朋友圈?朋友圈关于平安夜经典语录精选...
  11. Linux网络编程——tcp、udp迭代服务器
  12. jsch mysql_java Jsch实现跳板机操作远程数据库
  13. 移动硬盘需要格式化才能打开如何解决?
  14. “两地三中心”和“双活”简介--容灾技术方案
  15. 支持ipv6路由器有什么优点?路由器应用了哪些技术?
  16. Win10下安装centos7双系统
  17. Aliyun ECS 配置
  18. VMware安装Kali2021虚拟机
  19. python如何表示小数_小数的定点表示(附python程序)
  20. 使用visDrone数据集训练yolov5检测器

热门文章

  1. go语言 flag用法
  2. Jenkins 部署(Docker)
  3. Matlab Coder杂记
  4. 开源项目--阿里巴巴腾讯Google
  5. 最小生生树算法-prim/kruskal
  6. php吧输出结果进行分割,[判断题] 呼叫处理程序按照一定的逻辑对呼叫进行处理,对呼叫的处理结果与局数据、用户数据的内容无关。...
  7. Java根据信用卡号区分国际常用的五大信用卡卡种:VISA,Master,AE,DC,JCB.
  8. php 卡号算法,验证信用卡卡号代码 Luhn算法
  9. 【华为云技术分享】Linux内核发展史 (1)
  10. 2022保研经验帖——吉大、华师、浙大、中大、南航/理、东南、南开等