有效载荷和 shellcode 有什么区别?

信息安全 开发 术语 外壳代码
2021-09-04 17:04:55

我是渗透测试的新手,我想知道这两件事之间的区别:

  1. 有效负载(反向 TCP 与绑定 shell)

  2. Shell 与 Shellcode

有什么帮助吗?

3个回答

在利用应用程序时,有效负载是攻击者实际想要执行的代码。它不仅用于利用漏洞本身的目的,而且可以执行攻击者认为有用的任何事情。

在选择有效负载时,攻击者通常想要启动它们的代码为shellshell 是您在命令行上与之交互以控制操作系统的程序(在 Linux 上,您可能熟悉Bourne shellBash)。

启动 shell 的有效负载称为shellcode但请注意,您最终会发现不会草率启动 shell 的有效负载,也称为 shellcode。

绑定壳是一个程序,它本身结合到一个端口和用于传入连接侦听。由于打开端口会引起注意,并且攻击者可能经常无法从网络外部访问该端口,因此有一个相反的概念:反向 shell不等待传入连接,而是连接到指定的地址和端口本身。也就是说,攻击者等待受感染服务器的传入连接,而不是自己发起连接。

漏洞利用- 漏洞利用是攻击者或渗透测试人员利用系统、应用程序或服务中的漏洞的手段。攻击者利用漏洞攻击系统,从而导致开发人员从未预料到的特定期望结果。常见的漏洞利用包括缓冲区溢出、Web 应用程序漏洞(如 SQL 注入)和配置错误。

有效负载- 有效负载是攻击者希望系统执行并由框架选择和交付的自定义代码。例如,反向 shell 是一个有效负载,它作为 Windows 命令提示符创建从目标计算机返回到攻击者的连接,而绑定 shell 是将命令提示符“绑定”到目标计算机上的侦听端口的有效负载,然后攻击者可以连接。有效负载也可以是在目标操作系统上执行的一些简单命令。

Shellcode - Shellcode 基本上是精心设计的命令列表,一旦将代码注入正在运行的应用程序中就可以执行这些命令。它是利用漏洞时用作有效负载的一系列指令。Shellcode 通常是用汇编语言编写的。在大多数情况下,在目标机器执行完一组指令后,将提供命令 shell 或 Meterpreter shell,因此得名。

来源:https ://latesthackingnews.com/2017/07/12/difference-exploit-payload-shellcode/

Shellcode 与有效负载一起注入,有时甚至通常称为有效负载。另一方面,有效负载不一定必须是 shellcode(生成 shell 的代码),但可以是执行您选择的任何操作的代码,即生成计算器、重新启动系统……有效负载通常不仅包括要执行的代码注入和执行,但还包括返回地址、NOP sled、新的 SEH、修复堆栈的存根数据、解码器、egghunter...