Metasploit2 下载安装
Metasploitable是一款基于Ubuntu Linux的操作系统,该系统是一个虚拟机文件。Metasploitable就是用来作为攻击用的靶机,所以它存在大量未打补丁漏洞,并且开放了无数高危端口。
Metasploitable现在已经发行到第3版了,但是第3版同前两版发生了很大的改变,Metasploitable 2更多的时候是配合Metasploit的模块进行使用,基本不用费很长时间。比如拿起一个ms08_67就开始找溢出漏洞,然后完结。而Metasploitable 3则加了很多安全机制,如防火墙、权限配置等。对新手练习Metasploit不太友好。
所以我使用Metasploitable 2来学习
下载地址:https://sourceforge.net/projects/metasploitable/files/Metasploitable2/
下载好后解压,VMWare导入即可。
占用资源很少。
账号密码均为:msfadmin
使用Nessus进行扫描
开启Nessus虚拟机,在浏览器输入https://IP:8834
进入web控制台。此时的IP需要同Metasploitable虚拟机在同一个网段(将两个虚拟机的网络适配器都选择NAT
模式即可)。
登录后,在界面顶端有如下内容:Scans
(扫描)选项卡,用于创建新的扫描或查看当前的扫描进度;Settings
(设置)选项卡,用于设置和查看Nessus的密码等相关信息。
在Scans
界面的左边,有很多选项My Scans
:查看当前用户的扫描任务;All Scans
:所有扫描任务;Policies
:用于设置或导入Nessus在扫描时所使用的策略;Plugin Rules
:扫描时定义的插件。
1. 创建Nessus 扫描策略
开始扫描之前,你需要创建一个Nessus扫描策略。在Scans
的左边选择Policies
,点击右上角蓝色的New Policies
按键
选择Advanced Scan
,填写此次扫描策略的名称和描述
白盒扫描,提供SSH登录凭证(msfadmin:msfadmin)
启用所有插件:(点击Enable All
即可)
其余暂时不配置,点击Save
。
2. 执行Nessus 扫描
新建一个扫描策略后,可以创建一个新的扫描任务。首先选择Scans
(扫描)选项卡,点击New Scan
按钮打开扫描配置窗口。大多数的Nessus配置已经包含在上面介绍的扫描策略中,所以你创建扫描时,只需要为扫描任务取一个名字,选择一个扫描策略,并填写扫描目标就可以了。
选择我们定义的扫描策略。
我们的例子是仅对一个主机进行扫描,但你同样可以输入使用CIDR表示的地址块或使用一个包含扫描目标地址的文本文件对多个目标进行扫描。当你对扫描参数感到满意时,点击Launch(启动扫描)按钮。
可以看到我们的扫描在运行
3. Nessus报告
等扫描完成后,点进去就可看到详细情况
提示:请注意由于这次扫描是使用了SSH登录凭据的授权扫描,Nessus在本次扫描中发现的漏洞数量会比非授权扫描多得多。
4. 将扫描结果导入Metasploit框架中
现在让我们把扫描结果导入Metasploit框架中。
(1)在扫描详情页点击Export
为Nessus格式,将它保存到硬盘中。Nessus默认的报告文件格式.nessus
可以被Metasploit解析。
(2)打开MSF终端,使用db_status
查看数据库msf的状态,然后使用db_import
,并在命令后面加上导出的报告文件名,将扫描结果导入到数据库中。
(3)为了验证扫描的主机和漏洞数据是否正确导入,可以如下所示输入hosts
命令。这里的hosts命令会输出一个简要列表,里面包含了目标的IP地址、探测到的服务数量以及Nessus在目标上发现的漏洞数量。
(4)如果想显示一个详细的漏洞列表,可以输入不包含任何参数的vulns命令,如下所示:
在渗透测试工作末期为你的客户撰写渗透测试报告时,这些参考数据非常有价值。
5. 在Metasploit内部使用Nessus 进行扫描
如果你不愿离开舒适的命令行环境,你可以使用Zate写的Nessus桥插件(Nessus Bridge plug-in: http:/blog.zate.org/nessus-plugin-devw ),在Metasploit 内部使用Nessus。Nessus桥插件允许你通过Metasploit框架对Nessus进行完全的控制,比如你可以使用它运行扫描、分析结果,甚至可以使用它通过Nessus扫描所发现的漏洞发起渗透攻击。
(1)先清空现有数据库,再重新连接。
(2)执行load nessus命令载入Nessus插件,如下所示:
(3)可以使用nessus_help
来查看Nessus桥插件支持的所有命令。Nessus桥插件经常会有一些改进和更新,所以定期检查nessus_help
的输出是个好主意,这样我们就能得知是否又添加了新的功能。
(4)使用Nessus桥插件开始一次扫描之前,必须使用nessus_connenct
命令登录到你的Nessus服务器上,如下所示:
(5)同使用图形界面一样,启动扫描时需要指定一个已经定义的扫描策略的ID号。可以使用nessus policy_list
列出服务器上所有已经定义的扫描策略。
(6)留意想在扫描中使用的扫描策略的ID号,然后输入nessus_scan_new
命令,并在后面加上扫描策略的ID号、扫描任务的名字、扫描任务的描述以及目标IP地址,然后输入nessus_scan_launch
命令手动启动扫描,如下所示:
报错了,具体原因可以查看这篇文章:https://github.com/rapid7/metasploit-framework/issues/11117
简单说就是版本不匹配,换下Nessus的版本就可以了。
专用漏洞扫描器
虽然市面上有很多商业的漏洞扫描产品,但你的选择并不仅限于它们。当你想要在一个网络上查找某个特定的漏洞时,Metasploit自带的许多辅助模块可以帮助你完成这样的任务。
下面例子中介绍的几个Metasploit 模块只是众多实用辅助模块中很小的一部分。
1. 验证SMB登录
可以使用SMB登录扫描器(SMB Login Check)对大量主机的用户名和口令进行猜解。正如你所料,这种扫描动静很大,容易被察觉,而且每一次登录尝试都会在被扫描的主机系统日志中留下痕迹。
使用use命令选择了smblogin
模块后,你可以运行show_options
命令查看参数列表,以及哪些参数是必需的。Metasploit允许你指定用户名和口令的组合、用户名列表和口令列表的组合、或是前两者中各要素的组合(用户名加口令列表,或用户名列表加口令)。在下面的例子中,我们将RHOSTS参数设置为一小段IP地址,然后使用一个固定的用户名和口令,让Metasploit对范围内所有主机进行登录尝试。
在①处你可以看到使用用户名Administrator和口令123456成功地登录到了一台主机上。在很多公司里,工作站计算机的操作系统通常都是由同一个镜像克隆安装的,在这些克隆的系统上,管理员口令很有可能是一样的,获取了一个口令后,你就有可能拥有所有工作站计算机的访问权限。
2. 扫描开放的VNC空口令
VNC(虚拟网络计算)提供了图形化的远程系统访问方式,它的实现类似于微软的远程桌面。在很多公司里VNC的安装很常见,因为它提供了远程访问服务器和工作站图形桌面的途径,使用非常方便。很多时候VNC是为了解决某些问题临时安装的,但使用完后管理员却经常忘记把它删除,从而留下未打补丁的VNC服务,这成为一个严重的潜在漏洞。Metasploit内置的VNC空口令扫描器可以对一段IP地址进行扫描,在其中搜索未设置口令的VNC服务器。
虽然通常情况下扫描会一无所获,但是一个优秀的渗透测试师对目标系统攻击时会千方百计使用一切手段。
像大多数Metasploit辅助模块一样,VNC扫描器的配置和运行很简单。vnc_none_auth
命令所需的唯一参数是待扫描的一个或一段IP地址。只需选择使用该模块,定义你的RHOSTS(远程主机)和THREADS(线程数,如果你希望修改默认值的话可以对它进行设置),然后执行模块,如下所示:
3. 扫描开放的X11服务器
Metasploit的内置open_x1l
扫描器与vnc_auth
扫描器类似,它同样能够在一堆主机中发现X11服务器,该服务器允许用户无须身份认证即可连接。尽管X11服务器在新的操作系统上已不再广泛使用了,但许多古老的主机仍在使用着旧版的、未打补丁的、已被历史遗忘的操作系统。正如你在前面的两个例子中看到的,老旧的系统往往是网络上最脆弱的地方。运行open_xll
扫描器的过程,和运行大多数其他辅助模块类似,你需要设置RHOSTS参数,也可以选择性地修改THREADS值。扫描开始后会显示一段会话过程。请注意,扫描器在IP地址192.168.1.23处找到了一个开放的X服务器。这是一个严重的漏洞,因为它允许攻击者可以对系统进行未授权的访问:X系统用来处理包括鼠标和键盘支持在内的图形用户界面。
总结:借助漏洞扫描器对目标系统进行扫描是一项很重要的工作。当我们的目标范围非常广时,手工探测往往会花费巨大的精力,所以漏洞扫描器就是不错的选择了。
熟悉一款漏扫工具,在渗透过程中非常有帮助。