
Metasploit进阶知识之数据库支持
如果上述任何命令打印堆栈跟踪或错误,你的第一步应该是运行./msfdb reinit(再次确保对询问你是否要删除数据库内容的提示选择“否”)并重新尝试导致错误的命令。但是,Metasploit 的许多功能都需要数据库,而 msfdb 是设置 Metasploit 兼容数据库的最简单方法。msfdb 是 Metasploit 所有安装中包含的脚本,可让你轻松设置和控制数据库以及能够将此数据库与 Me
数据库支持
一、msfdb 是什么?
msfdb 是 Metasploit 所有安装中包含的脚本,可让你轻松设置和控制数据库以及能够将此数据库与 Metasploit 连接起来的 Web 服务。
虽然 msfdb 是设置数据库最简单的方法,但你也可以手动设置。手动设置的说明可在此处找到。
二、为什么我应该使用 msfdb?
Metasploit 不强制要求使用数据库,即使没有数据库,它也能完美运行。但是,Metasploit 的许多功能都需要数据库,而 msfdb 是设置 Metasploit 兼容数据库的最简单方法。
需要连接数据库的 Metasploit 功能包括:
- db_nmap将通过命令nmap扫描发现的网络上的其他机器记录为“主机”。
- hosts可以使用命令查看主机
- 将漏洞成功提取的凭证存储为“creds”。
- 使用命令来查看凭证creds。
- 跟踪成功的利用尝试被记录为“漏洞”。
- 可以使用命令查看成功的利用情况vulns。
- vulns命令还跟踪未成功的利用尝试
- 存储在远程主机上检测到的服务db_nmap被记录为“服务”
- services使用命令查看远程服务
- 跟踪漏洞利用负载打开的多个远程会话
- 可以使用命令来管理和跟踪这些会话sessions。
- 将成功利用漏洞返回的任何难以定义的信息存储为“Loot”
- 可以使用loot命令查看
- 跟踪“Ping back payloads”,这是一种非交互式payload类型,为用户提供在目标上远程执行的确认
- 通过由活跃会话组成的“路线”网络进行枢转
- 可以使用routes命令查看
- 构建包含上述所有信息的报告(仅限专业用户)
所有上述功能也可以在工作区内进行逻辑分离。通过使用该workspace命令,你可以将某些操作的结果放在不同的工作区中。这有助于在你使用 Metasploit 期间生成或记录的任何数据保持井然有序且易于跟踪。
三、使用 msfdb
使用 msfdb 很简单。如果你是第一次启动数据库,请导航到 Metasploit 保存的文件夹,然后运行./msfdb init
Creating database at /Users/your_current_account_name/.msf4/db
Starting database at /Users/your_current_account_name/.msf4/db...success
Creating database users
Writing client authentication configuration file /Users/your_current_account_name/.msf4/db/pg_hba.conf
Starting database at /Users/your_current_account_name/.msf4/db...success
Creating initial database schema
这看起来有很多信息,但它只是说它正在创建 Metasploit 将用来存储信息的数据库。如果你现在启动 msfconsole,它应该会自动连接到数据库,如果你运行,db_status您应该会看到类似以下内容:
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.
你还可以设置一个 Web 服务,Metasploit 可以使用它来连接到你刚刚创建的数据库。Msfdb 需要建立 Web 服务中使用的凭据。如果你运行,msfdb --component webservice init第一个提示会询问你要使用什么用户名来连接到数据库:
[?] Initial MSF web service account username? [your_current_account_name]:
然后是用于向 Web 服务进行身份验证的密码:
[?] Initial MSF web service account password? (Leave blank for random password):
点击enter
这两个提示将正确设置 Web 服务。你可以根据需要更改这些默认值并使用特定的用户名和密码,但这不是必需的。
处理完这两个提示后,你的 Web 服务将启动!
Generating SSL key and certificate for MSF web service
Attempting to start MSF web service...success
MSF web service started and online
Creating MSF web service user your_current_account_name
############################################################
## MSF Web Service Credentials ##
## ##
## Please store these credentials securely. ##
## You will need them to connect to the webservice. ##
############################################################
MSF web service username: your_current_account_name
MSF web service password: super_secret_password
MSF web service user API token: super_secret_api_token
MSF web service configuration complete
The web service has been configured as your default data service in msfconsole with the name "local-https-data-service"
If needed, manually reconnect to the data service in msfconsole using the command:
db_connect --token super_secret_api_token --cert /Users/your_current_account_name/.msf4/msf-ws-cert.pem --skip-verify https://localhost:5443
The username and password are credentials for the API account:
https://localhost:5443/api/v1/auth/account
同样,这需要处理很多信息,但并不像看起来那么复杂。显示用于连接 Web 服务的用户名、密码和 API 令牌:
MSF web service username: your_current_account_name
MSF web service password: super_secret_password
MSF web service user API token: super_secret_api_token
接下来是有关如何通过 Web 服务使用 Metasploit 连接到数据库的说明:
If needed, manually reconnect to the data service in msfconsole using the command:
db_connect --token super_secret_api_token --cert /Users/your_current_account_name/.msf4/msf-ws-cert.pem --skip-verify https://localhost:5443
你可以使用浏览器访问 URL 来连接到 Web 服务,这对于检查 Web 服务是否正在运行很有用:
The username and password are credentials for the API account:
https://localhost:5443/api/v1/auth/account
Metasploit 在启动时会自动从 ~/.msf4 文件夹加载所有这些信息。你应该将凭据复制到文件中,以后或许会需要。如果你忘记或丢失了凭据,你可以随时运行./msfdb reinit并重置 Web 服务身份验证详细信息。只需在询问你是否要删除数据库内容的提示选择“否”即可。
四、msfdb 命令
msfdb的命令如下:
- ./msfdb init创建并开始执行数据库和 Web 服务。执行此命令后显示的附加提示允许可选配置用于通过 Web 服务连接到数据库的用户名和密码。Web 服务用户名和密码可以设置为默认值,也可以设置为用户选择的值。
- ./msfdb delete删除 Web 服务和数据库配置文件。系统还会提示您删除数据库的内容,但这不是强制性的。
- ./msfdb reinit./msfdb delete与跑步后立即进行相同./msfdb init。
- ./msfdb status显示数据库和 Web 服务当前是否处于活动状态。如果数据库处于活动状态,则显示其位置的路径。如果 Web 服务处于活动状态,则将显示已为其分配的进程 ID。
- ./msfdb start启动数据库和 Web 服务。
- ./msfdb stop停止数据库和 Web 服务。
- ./msfdb restart./msfdb stop与跑步后立即进行相同./msfdb start。
五、msfdb 错误
如果上述任何命令打印堆栈跟踪或错误,你的第一步应该是运行./msfdb reinit(再次确保对询问你是否要删除数据库内容的提示选择“否”)并重新尝试导致错误的命令。如果错误仍然存在,请复制你执行的命令和生成的输出,并将其粘贴到错误单中。
这就是关于如何为 metasploit 设置数据库的简单高级解释。如果这些内容对你来说还不够详细,你可以在后续文章找到更深入的解释。
更多推荐
所有评论(0)