漏洞扫描
各种操作系统网络模块实现原理不同,因此他们对于接收到的探测数据往往会有不同的响应,漏洞扫描器可以将这些独特的响应看作是目标系统的”指纹”,用以确定操作系统版本,甚至确定出补丁安装的等级
1. 基本的漏洞扫描
通过netcat
获取目标的旗标(链接到一个远程网络服务,并读取服务独特的标识),根据响应可以得到一些信息,获取到信息之后可以尝试利用漏洞扫描器进行扫描
2. 使用Nexpose进行扫描
Nexpose
中的站点(Site)
是指一系列相关设备的集合,使用方式:
2.1 配置
创建站点向导:
- 创建新站点的时候,在Nexpose主界面中点击
Create Site
(创建站点)按钮,输入站点名称和简短描述,之后点击Next(下一步)进入添加站点页面 - 添加站点时可以添加单独的IP地址,某个IP范围,以及某个主机名等(不建议添加打印机设备,可能会出现误下指令的情况)
- 选择扫描引擎,例如:发现扫描(discover scan)和渗透测试(Penetration test),还能设置一些自动进行扫描任务调度等等,也可以保持默认设置不变,点击Next继续
- 如果拥有登陆凭据(用户名和口令,通常在白盒测试的时候有提供),可以将它们添加都任务当中,使用登陆凭据能让扫描器获取目标系统上安装的阮姐列表和系统策略,这样有助于获得更为准确和详细的扫描结果
- 在Credentials(登陆凭据)页面上,点击
New Login
(新的登陆)按钮,输入用户名和口令之后,点击Test Login
对输入的登陆凭据进行验证并将其保存 - 最后点击save结束创建站点向导并返回,
手动扫描向导:
- 点击scan(扫描)按钮,这时出现的对话框,这里可以指定想要将哪些资产包含在扫描中,或将哪些资产排除扫描之外
- 仔细检查目标的IP地址,无误后点击
Start Now
按钮,开始扫描 - 等待Scan Progress(扫描进度)和Discovered Assets(资产识别)的状态均显示
Completed
(完成),在界面上Scan Progress
可以看见在扫描设备上发现的漏洞,在Completed Assets
区域中为你提供关于目标更加详细的信息,如设备名字和操作系统类型,点击Reports
(报告)
生成报告向导:
- 点击
Create a report
(创建报告)打开生成报告向导 - 输入名称,之后再Template(报告模版)选择
Nexpose Simple XMLExport
(Nexpose简单XMl输出),点击Next继续 - 在出现的额窗口中点击
Select Report Scope
(选择报告包含的范围),将你需要在报告描述的站点添加进来,然后点击save
- 在Select Sites(选择站点)栏中,选择先要包含在报告中的站点然后点击DONE。
- 回到报告设置向导,点击save接受其他尚未配置的选项的默认值,现在Report选项卡中显示出最近创建的报告
2.2将扫描报告导入到Metasploit中
db_connect
创建数据库,db_import
导入数据库,db_host
查看数据库内容
db_connect postgres:toor@127.0.0.1/msf3
db_import /tmp/host_195.xml
db_hosts -c address,svcs,vulns
db_vulns
查看漏洞详情
在MSF控制台中运行Nexpose
- 开始前使用
db_disconnect
删除现有数据库,并使用db_connect
创建新的数据库,然后使用load Nexpose
命令载入Nexpose
插件
连接安装的Nexpose实例nexpose_connect
。需要提供登录到Nexpose所需的用户名和口令,以及IP地址,在最后面需要加上ok参数表示自动接受SSL证书的警告
可以输入nexpose_scan
在其后面附上扫描的IP地址后启动扫描,
扫描结束之后,数据库会包含扫描结果,输入db_hosts
可以查看这些结果
db_hosts -c address
3. 使用Nessus进行扫描
下载安装好Nessus后,打开网页浏览器,并转到https://<你的IP地址>:8834,接受证书警告,并使用你在安装时设置的用户名和口令登录到Nessus
- Report(报告):这里会出现所有曾运行过的漏洞的扫描任务
- Scan(扫描):用于创建新的扫描,或者查看当前扫描进度
- Users(用户):用于添加能够访问
Nusses
的账户
开始扫描之前,你需要创建一个Nessus扫描测略,在Policies(策略)上,点击绿色的add(添加)按钮,打开配置窗口
- 为策略起名字,我们使用
The_Works
作为扫描策略的名字,勾选全部插件,之后点击Next - 为此扫描设置windows登陆依据从而更加全面了解系统上存在的漏洞,
- 在Plugin(插件)页面,可以看到对应的系统插件,我们点击
Enable ALL
(全部启用)按钮,然后点击Next - 最后一个Preferences(首选项)页面,这里可以让
Nessus
不要对网络打印机等敏感设备进行扫描,让她将扫描结果存储在外部的数据库中,或是提供扫描是所需的登陆凭据,选择完毕之后,点击Submit
提交
3. 执行Nessus扫描
新建策略之后可以创建扫描任务,
- 选择Scan,点击ADD(添加按钮)打开扫描配置窗口,大多数配置已经包含在策略当中,我们只需要填写扫描目标就可以
- 点击
Launch Scan
开始扫描
4. Nessus报告
选择刚刚扫描的到的结果并点击Browse
(浏览)打开页面,该页面包含了扫描发现的额漏洞及其严重性等级摘要
5. 将扫描结果导入到Metasploit框架中
- 在Reports页面中点击
Download Report
(下载报告)按钮 - 打开MSF终端,使用
db_status
查看数据库连接状态,然后使用db_import
,并在命令后面加上导出的报告文件名,将扫描结果导入到数据库中。
db_import 文件名
- 验证扫描的主机和漏洞数据是否正确导入:使用hosts命令。这里的hosts命令会输出一个简要的列表,包含了IP,探测的服务器数量以及Nessus在目标上发现的漏洞数量
hosts -c address,svcs,vulns
- 如果想要详细的漏洞列表,不交任何参数的vluns命令,如下所示:
msf
6. 在metasploit内部使用Nessus进行扫描
- 首先使用
db_remove
命令删除现有的数据库,并使用db_connect
- 执行
load Nessus
命令载入插件,如下图所示:
- 使用
nessus_help
查看nessus支持的所有命令 - 使用插件扫描之前,必须使用
nessus_connect
登录到Nessus
的服务器上
msf>nessus_connect metaspoit:metasploit@localhost:8834 ok
- 指定扫描策略ID,用
nessus_policy_list
列出服务器上所有已经定义的扫描策略 nessus_scan_new
命令,在后面加上扫描策略ID,扫描任务名字,扫描任务的描述以及目标IP地址,输入nessus_scan_Launch
命令手动启动扫描
msf>nessus_scan_new
Scan ID Scanner ID Policy ID Targets Owner
------- ---------- --------- -------- --------
8 1 7 192.168.1.239 metasploit
msf>nessus_scan_launch 8
nessus_scan_list
查看扫描任务的运行状态扫描结束之后,可以使用
nessus_db_list
命令将制定的扫描任务的报告导入到Metasploit
msf>nessus_db_import 8
- 使用hosts命令确认是否已被导入到数据库
msf>hosts -c address,svcs,vulns
4. 专用漏洞扫描器
4.1 验证SMB登陆
msf>use auxiliary/scanner/smb/smb_login
show options
set RHOSTS 10.1.1.0-225
set SMBUser adminnistrator
set SMBPass 123456
set VERBOSE false
run
4.2 扫描开放的VNC空口令
use auxiliaryscanner/vnc/vnc_none_auth
auxiliary(vnc_none_auth)>show options
set RHOSTS 10.1.1.2
run
4.3 扫描开放的X11服务器
use auxiliary/scanner/x11/open_x11
msf>show options
set RHOSTS 192.168.220.20
set THREADS 50
run
若是存在x11漏洞可以使用xspy工具对目标的键盘输入进行记录:
root@bt:/#cd /pentest/sniffers/xspy
root@bt:/pentest/sniffers/xspy# ./xspy -display 192.168.1.23:0 -delay 100
ssh root@192.168.1.11(+BackSpace)37
sup3rs3cr
ifconfig
exit