使用msfvenom生成shellcode

问题描述 投票:0回答:2

根据这个视频

他使用 msfpayload 和 msfencode 为 cmd 命令生成 shellcode。

msfpayload windows/exec cmd=calc.exe R | msfencode -e x86/alpha_mixed -t c -v

但是现在,metasploit 团队将 msfpayload 和 msfencode 更改为 msfvenom,所以我将上面的代码转换为 msfvenom:

msfvenom -a x86 --platform windows -p windows/exec cmd=calc.exe -e x86/alpha_mixed -f c

shellcode 已生成,但在 cmd 上执行命令后计算器未启动。我的 msfvenom 代码有什么问题吗? 感谢您的阅读。

更新: 在视频中,他使用了一段简短的 shellcode。他在描述中公开了 shellcode,但没有展示如何生成它。我按照他的指示得到了一个很长的shellcode。 当我使用他的短 shellcode 时,它可以工作,但同样的情况不会发生在我的长 shellcode 上。

cmd exploit shellcode calc metasploit
2个回答
0
投票

问题是在 msfvenom 中使用

-f c
会导致 shellcode 作为输出,无法直接在命令行中执行。 shellcode 将需要一个包装程序,将 shellcode 放入内存并执行它。然后需要将该程序编译为可执行文件。

用 c: 编写的示例包装函数

#include <stdio.h>

unsigned char code[] = "\xYourShellCode";

int main(int argc, char **argv) {
  int foo_value = 0;

  int (*foo)() = (int(*)())code;
  foo_value = foo();

  printf("%d\n", foo_value);
}

如果您只想将可执行文件作为输出,您可以尝试以下操作:

(弹出 x64 窗口的计算)

msfvenom --platform windows --arch x64  -p windows/x64/exec CMD=calc.exe -b '\x00\x0A\x0D' -f exe -o a.exe

0
投票

这对我有用:

msfvenom -p windows/exec cmd=notepad.exe -f c -e x86/alpha_mixed
© www.soinside.com 2019 - 2024. All rights reserved.