.d8888b. 888 d8b
d88P Y88b 888 Y8P
888 888 888
888 .d88b. 888888 .d88b. 88888b. 8888b. 888 888 888
888 d88""88b 888 d88""88b 888 "88b "88b 'Y8bd8P' 888
888 888 888 888 888 888 888 888 888 .d888888 X88K 888
Y88b d88P Y88..88P Y88b. Y88..88P 888 d88P 888 888 .d8""8b. 888
"Y8888P" "Y88P" "Y888 "Y88P" 88888P" "Y888888 888 888 888
888
888
888
用于物联网设备安全测试的工具集,支持的协议包括:AMQP, CoAP, DTLS, HTCPCP, HTTP, HTTP/2, gRPC, KNX, mDNS, MQTT, MQTT-SN, QUIC, RTSP, SSDP。
Cotopaxi 使用 GNU 通用公共许可证第 2 版: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html
Cotopaxi 工具包仅可用于授权的安全测试!
某些工具(尤其是漏洞测试器和协议模糊器)可能导致设备或服务器停止按预期方式运行——例如导致被测实体崩溃或挂起,或向其他实体泛滥网络流量。
在运行这些工具之前,请确保已获得被测设备或服务器所有者的许可!
在运行这些工具之前,请确保检查当地法律!
要安装 Cotopaxi 的最小版本(不含机器学习和开发工具):
pip install cotopaxi
几乎完整的安装(不含 DTLS 支持所需的 scapy-ssl_tls):
pip install cotopaxi[all]
关于安装的更详细文档,请参阅:安装指南
如果您想从 Metasploit 使用 Cotopaxi 工具,请参阅:Metasploit 集成
设备识别工具中使用的机器学习分类器基于以下论文作者提供的语料库“IMC 2019 payload dataset”进行训练:
标题:Information Exposure for Consumer IoT Devices: A Multidimensional, Network-Informed Measurement Approach 作者:Jingjing Ren, Daniel J. Dubois, David Choffnes, Anna Maria Mandalari, Roman Kolcun, Hamed Haddadi 会议:Internet Measurement Conference (IMC) 2019 URL:https://moniotrlab.ccis.neu.edu/imc19dataset/
我们感谢上述作者分享此语料库!
不同工具支持的协议(左侧方框描述 Python 2 中的工作实现,右侧为 Python 3):
关于每个工具的更详细文档,请参阅:工具
由 Cotopaxi 团队识别、可使用 Cotopaxi 测试的漏洞:
Cotopaxi 支持的其他漏洞:
新的漏洞可以轻松添加到数据库中的 vulnerabilities.yaml 以及 cotopaxi/vulnerabilities//<payload.raw> 中的载荷文件。
使用 scapy 作为网络库会导致一些已知问题或限制:
更多信息请参阅: https://scapy.readthedocs.io/en/latest/troubleshooting.html#
关于 Cotopaxi 开发的更详细信息,请参阅:开发指南
| 工具 | AMQP | CoAP | DTLS | HTCPCP | HTTP/2 | gRPC | KNX | mDNS | MQTT | MQTT-SN | QUIC | RTSP | SSDP |
|---|
| service_ping | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| server_fingerprinter | ☐☐ | ☑☑ | ☑☑ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ |
| device_identification | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☐ | ☐☐ | ☐☐ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ |
| traffic_analyzer | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ | ☐☑ |
| resource_listing | ☐☐ | ☑☑ | 不适用 | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☑☑ | ☐☐ | ☐☐ | 不适用 | ☑☑ | ☑☑ |
| protocol_fuzzer | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| client_proto_fuzzer | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| vulnerability_tester | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| client_vuln_tester | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ | ☑☑ |
| amplifier_detector | 不适用 | ☑☑ | ☑☑ | 不适用 | 不适用 | 不适用 | 不适用 | ☑☑ | 不适用 | ☑☑ | ☑☑ | 不适用 | ☑☑ |
| active_scanner | ☐☐ | ☐☐ | ☑☑ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ | ☐☐ |