Skip to content

Latest commit

 

History

History
122 lines (71 loc) · 7.15 KB

File metadata and controls

122 lines (71 loc) · 7.15 KB

零、前言

这本书是关于寻找缓冲区溢出漏洞,从零开始手工制作自己的 Shellcode,学习操作系统的安全机制,并利用开发。您将了解如何使用 Shellcode、程序集和 Metasploit 在操作系统和网络级别绕过系统。您还将学习编写和修改 64 位 Shellcode 以及内核级 Shellcode 概念。总的来说,这本书是一个循序渐进的指南,将带您从低级安全技能到利用漏洞开发和 Shellcode 来覆盖循环。

这本书是给谁的

本书旨在供渗透测试人员、恶意软件分析师、安全研究人员、法医从业人员、漏洞开发人员、C 语言程序员、软件测试人员和安全领域的学生阅读。

这本书涵盖的内容

第一章引言讨论了 Shellcode、缓冲区溢出、堆损坏的概念,并介绍了计算机体系结构。

第 2 章实验室设置教授如何建立一个安全的环境来测试坏代码,并向读者介绍调试器的图形界面。

第三章Linux 中的汇编语言介绍了如何在 Linux 上使用汇编语言构建 Shellcode。

第 4 章逆向工程展示了如何使用调试器对代码进行逆向工程。

第 5 章创建 Shellcode介绍了如何使用汇编语言和 Metasploit 构建 Shellcode。

第 6 章缓冲区溢出攻击详细介绍了 Windows 和 Linux 上的缓冲区溢出攻击。

第 7 章漏洞开发–第 1 部分讨论了如何执行模糊化和查找返回地址。

第 8 章漏洞利用开发–第 2 部分介绍如何生成正确的 Shellcode 以及如何在漏洞利用中注入 Shellcode。

第 9 章真实场景–第 1 部分介绍了一个真实的缓冲区溢出攻击示例。

第 10 章真实世界场景–第 2 部分继续上一章,但更高级。

第 11 章真实场景–第 3 部分给出了另一个真实场景示例,但使用了更多技术。

第 12 章检测和预防讨论了检测和预防缓冲区溢出攻击所需的技术和算法。

充分利用这本书

读者应该对操作系统内部(Windows 和 Linux)有基本的了解。一定的 C 语言知识是必要的,熟悉 Python 会有所帮助。

本书中的所有地址都依赖于我的机器和操作系统。因此,您的计算机上的地址可能会有所不同。

下载示例代码文件

您可以从您的账户www.packtpub.com下载本书的示例代码文件。如果您在其他地方购买了本书,您可以访问www.packtpub.com/support并注册,将文件通过电子邮件直接发送给您。

您可以通过以下步骤下载代码文件:

  1. 登录或注册www.packtpub.com
  2. 选择“支持”选项卡。
  3. 点击代码下载和勘误表。
  4. 在搜索框中输入图书名称,然后按照屏幕上的说明进行操作。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Penetration-Testing-with-Shellcode 。我们的丰富书籍和视频目录中还有其他代码包,请访问**https://github.com/PacktPublishing/** 。看看他们!

下载彩色图像

我们还提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。您可以从下载 https://www.packtpub.com/sites/default/files/downloads/PenetrationTestingwithShellcode_ColorImages.pdf

使用的惯例

本书中使用了许多文本约定。

CodeInText:表示文本中的码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄。下面是一个示例:“现在堆栈恢复正常,0x1234已移动到rsi

代码块设置如下:

mov rdx,0x1234
push rdx
push 0x5678
pop rdi
pop rsi

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

mov rdx,0x1234
push rdx
push 0x5678
pop rdi
pop rsi

任何命令行输入或输出的编写方式如下:

$ nasm -felf64 stack.nasm -o stack.o

粗体:表示一个新术语、一个重要单词或您在屏幕上看到的单词。例如,菜单或对话框中的单词出现在文本中,如下所示。下面是一个示例:“选择 GNU GCC 编译器,单击设置为默认值,然后单击确定。”

警告或重要提示如下所示。

提示和技巧如下所示。

联系

我们欢迎读者的反馈。

一般反馈:发送电子邮件feedback@packtpub.com并在邮件主题中提及书名。如果您对本书的任何方面有疑问,请发送电子邮件至questions@packtpub.com

勘误表:尽管我们已尽一切努力确保内容的准确性,但还是会出现错误。如果您在本书中发现错误,如果您能向我们报告,我们将不胜感激。请访问www.packtpub.com/submit-errata,选择您的书籍,点击 errata 提交表单链接,然后输入详细信息。

盗版:如果您在互联网上发现我们作品的任何形式的非法复制品,请您提供我们的位置地址或网站名称,我们将不胜感激。请通过copyright@packtpub.com与我们联系,并提供该材料的链接。

如果您有兴趣成为一名作家:如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请访问authors.packtpub.com

评论

请留下评论。一旦你阅读并使用了这本书,为什么不在你购买它的网站上留下评论呢?然后,潜在读者可以看到并使用您的无偏见意见做出购买决定,我们 Packt 可以了解您对我们产品的看法,我们的作者可以看到您对他们书籍的反馈。非常感谢。

有关 Packt 的更多信息,请访问packtpub.com

免责声明

本书中的信息仅用于道德方面。如果没有设备所有者的书面许可,请勿使用本手册中的任何信息。如果你采取非法行动,你很可能会被逮捕,并在法律允许的范围内受到起诉。如果您滥用本书中包含的任何信息,Packt Publishing 将不承担任何责任。本文中的信息只能在测试环境时使用,并由相关负责人进行适当的书面授权。