Kamerka GUI 是一个基于 Django 的侦察仪表板,用于发现、审查和分类暴露在互联网上的工业控制系统、物联网和医疗设备。它在一个 Web 界面中结合了 Shodan 搜索数据、Google Maps 可视化、设备截图、被动情报增强以及选定的扫描/利用辅助工具。
该应用程序通过在设备表中提供 "过滤蜜罐" 开关来帮助减少审查时的噪音。这将排除那些暴露了蜜罐风格指标的设备,从而使分析师能够首先关注可能是真实资产的设备。Kamerka 还会显示设备 "指标" 字段,该字段由解析的横幅、协议响应、截图标签和其他设备元数据构建而成,用以解释设备被标记的原因或如何定位/分类设备。
请仅将其用于授权研究、资产盘点、防御性暴露管理以及向相应的所有者或 CERT/CSIRT 团队报告。






Dashboard:高级计数、Shodan积分、最近搜索、图表、世界覆盖范围和收藏夹。Database:所有发现设备的可搜索表格,带有可能蜜罐过滤功能。History:以前搜索的列表,包含国家名称、选定的设备类别以及结果链接。Map:发现设备的全局聚类Google Map。Gallery:所有收集的设备截图,带有国家过滤。Results:每次搜索的设备表格、地图、统计信息和类似导出的浏览。Device:单个设备的定位、情报和利用选项卡。GeoLite2-City.mmdb。Python 依赖项列在 requirements.txt 中。该项目现在针对 Django 5.2 LTS 系列、Celery 5.6 以及绑定的 Python 包,以便保持更新而不跳转到不兼容的主要版本。
克隆仓库并创建虚拟环境:
git clone https://github.com/woj-ciech/Kamerka-GUI.git
cd Kamerka-GUI
python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
如果 python3.12 不可用,请使用其他 Python 3.10-3.13 解释器。避免重用旧的 Python 3.8/3.9 虚拟环境,因为当前依赖集需要 Python 3.10+。
创建数据库模式:
python manage.py migrate
在仓库根目录中创建 keys.json:
{
"keys": {
"shodan": "YOUR_SHODAN_API_KEY",
"google_maps": "YOUR_GOOGLE_MAPS_API_KEY",
"whoisxmlapi": "YOUR_WHOIS_XML_API_KEY"
}
}
启动 Redis 在另一个终端:
redis-server
启动 Celery worker 在另一个终端:
source .venv/bin/activate
celery --app kamerka worker --loglevel=info
启动 Django 开发服务器:
source .venv/bin/activate
python manage.py runserver
打开应用:
http://localhost:8000/
keys.json 在运行时是必需的,因为应用程序从 keys['keys'] 读取 API 密钥。keys.json 排除在版本控制之外。它包含私有凭据。完整的受支持 Shodan 查询列表保存在 queries.md 中。
广泛的类别包括:
Kamerka 可以导入 Nmap XML 输出,并在 nmap_scripts 中包含 NSE 辅助脚本。
包含的脚本系列包括:
该项目包括针对特定设备系列的选定利用/辅助模块,包括:
这些辅助工具仅用于受控验证。不要对您不拥有或无权限测试的系统运行它们。
GeoLite2-City.mmdb 存在于项目根目录。Kamerka 可以识别暴露的关键基础设施、IoT 和医疗资产。请负责任地处理所有发现: