基本知识
Metasploit的目录
在 kali linux 中 msf的主目录是 /usr/share/metasploit-framework
/usr/share/metasploit-framework
├── data
│ ├── exploits # 存放了许多的cve漏洞利用代码
│ ├── meterpreter # msf的攻击载荷,多用于连接shell
│ ├── wordlists # 字典文件存放位置
├── modules
│ ├── auxiliary # 主要包含渗透测试中一些辅助性脚本,这些脚本功能有扫描,嗅探,破解,注入,漏洞挖掘等
│ ├── encoders # 编码工具,避免"坏字符"的出现,以及免杀处理,使用show encoders能够查看
│ ├── exploits # 主要包括了 exp、0day、各种漏洞利用的脚本。主要的攻击代码全在这个目录下,这里边包括的 exp 的路径的命名规则是:系统/服务/模块,在使用的exp 是可以根据这个命名方法来找(也可以用 search 这条指令来找)。比如:use exploites/windows(系统)/vnc(服务)/realvnc_client(模块名)
│ ├── nops # 不影响程序运行的空指令或无关指令,用于填充。使用show nops能够查看
│ ├── payloads # 攻击载荷,是攻击者发送给系统执行的指令的。payload主要是在目标机执行的,exploits是在本地执行作用于目标机。命名规则:系统/类型/名称,比如:use payload/windows/shell/bind_tcp,使用show nops能够查看
│ └── post # 该目录存放exploits执行成功后,向目标机发送的一些功能性指令,如:提权、获取hash等。使用show post能够查看
├── plugins # 这个模块需要使用 load 加载,提供数据库连接插件,和各种要用到的插件。
├── scripts # 存放一些msf用到的脚本文件,有这几个meterpreter,ps,resource,shell
├── tools # 存放各类可以使用的工具
常用命令
# 常用命令
show exploits 查看所有可用的渗透攻击程序代码
show auxiliary 查看所有可用的辅助攻击工具
show options 查看该模块所有可用选项
show payloads 查看该模块适用的所有载荷代码
show targets 查看该模块适用的攻击目标类型
search 根据关键字搜索某模块
info 显示某模块的详细信息
use 进入使用某渗透攻击模块
back 回退
set/unset 设置/禁用模块中的某个参数
setg/unsetg 设置/禁用适用于所有模块的全局参数
save 将当前设置值保存下来,以便下次启动MSF终端时仍可使用
Cd 更改当前的工作目录
# 核心命令
Sessions 转储会话列表并显示有关会话的信息
Color 切换颜色 Set 将特定于上下文的变量设置为一个值
Connect 连接与主机通信 Setg 将全局变量设置为一个值
exit 退出控制台
sleep 在指定的秒数内不做任何事情
get 获取特定于上下文的变量的值
spool 将控制台输出写入文件以及屏幕
getg 获取全局变量的值
threads 线程查看和操作后台线程
grep grep 另一个命令的输出
unload 卸载框架插件
history 显示命令历史
unset 取消设置一个或多个特定于上下文的变量
irb 进入irb脚本模式
unsetg 取消设置一个或多个全局变量
load 加载一个框架插件
version 显示框架和控制台库版本号
quit 退出控制台
route 通过会话路由流量
save 保存活动的数据存储
# 数据库后端命令
analyze 分析有关特定地址或地址范围的数据库信息
db_connect 连接到现有数据服务
db_disconnect 断开与当前数据服务的连接
db_export 导出包含数据库内容的文件
db_import 导入扫描结果文件(将自动检测文件类型)
db_nmap 执行nmap并自动记录输出
db_rebuild_cache 重建数据库存储的模块高速缓存
db_remove 删除已保存的数据服务条目
db_save 将当前数据服务连接保存为启动时重新连接的默认值
db_status 显示当前数据服务状态
hosts 列出数据库中的所有主机
loot 列出数据库中的所有战利品
notes 列出数据库中的所有注释
services 列出数据库中的所有服务
vulns 列出数据库中的所有漏洞
workspace 在数据库工作区之间切换
# 凭据后端命令
creds 列出数据库中的所有凭据
# 模块命令
Advanced 显示一个或多个模块的高级选项
Back 从当前上下文返回
Edit 使用首选编辑器编辑当前模块
info 显示有关一个或多个模块的信息
loadpath 路径从路径搜索并加载模块
options 显示全局选项或一个或多个模块
popm 将最新的模块从堆栈中弹出并使其处于活动状态
previous 将之前加载的模块设置为当前模块
pushm 将活动或模块列表推入模块堆栈
reload_all 从所有定义的模块路径重新加载所有模块
search 搜索模块名称和描述
show 显示给定类型的模块或所有模块
use 按名称选择模块
enumdesktops 查看可用的桌面
getdesktop 获取当前
meterpreter 关联的桌面
setdesktop 设置meterpreter关联的桌面 -h查看帮助
screenshot 截屏 run vnc #使用vnc远程桌面连接
建立搜索缓存(数据库)
# 启动PostgreSQL数据库服务 ,监听5432端口:
sudo service postgresql start
# 初始化Metasploit数据库 :
sudo msfdb init
# 在msf中连接数据库 :
db_connect -y /usr/share/metasploit-framework/config/database.yml
# 查看数据库联接情况 :
msf> db_status
# 建立数据库缓存 (msf6好像会自动建立缓存,不用执行此命令)
Metasploit功能程序
生成可执行文件
msfvenom (攻击载荷生成和编码器)
主要参数