Skip to main content

Set of tools for security testing of Internet of Things devices using specific network protocols.

Project description

 .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

License: GPL v2 GitHub top language PyPI - Python Version LGTM Grade Lines of code Code style: black GitHub search hit counter GitHub release (latest by date) GitHub issues PyPI - Downloads

Black Hat Arsenal Black Hat Arsenal DEF CON 27 Black Hat Arsenal DEF CON 28 Black Hat Arsenal Black Hat Arsenal

Set of tools for security testing of Internet of Things devices using protocols: AMQP, CoAP, DTLS, HTCPCP, HTTP, HTTP/2, gRPC, KNX, mDNS, MQTT, MQTT-SN, QUIC, RTSP, SSDP.

License:

Cotopaxi uses GNU General Public License, version 2: https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html

Disclaimer

Cotopaxi toolkit is intended to be used only for authorized security testing!

Some tools (especially vulnerability tester and protocol fuzzer) can cause some devices or servers to stop acting in the intended way -- for example leading to crash or hang of tested entities or flooding with network traffic another entities.

Make sure you have permission from the owners of tested devices or servers before running these tools!

Make sure you check with your local laws before running these tools!

Installation

To install minimal Cotopaxi version (without Machine Learning and development tools):

pip install cotopaxi

Almost complete installation (without scapy-ssl_tls required for DTLS support):

pip install cotopaxi[all]

For more detailed documentation about installation see: Installation Guide

Integration with Metasploit

If you want to use Cotopaxi tools from Metasploit see: Metasploit integration

Acknowlegments

Machine learning classificator used in the device_identification tool was trained using corpus "IMC 2019 payload dataset" provided by authors of the following paper:

Title: Information Exposure for Consumer IoT Devices: A Multidimensional, Network-Informed Measurement Approach Authors: Jingjing Ren, Daniel J. Dubois, David Choffnes, Anna Maria Mandalari, Roman Kolcun, Hamed Haddadi Venue: Internet Measurement Conference (IMC) 2019 URL: https://moniotrlab.ccis.neu.edu/imc19dataset/

We would like to thank above listed authors for sharing this corpus!

Tools in this package:

  • service_ping
  • server_fingerprinter
  • device_identification
  • traffic_analyzer
  • resource_listing
  • protocol_fuzzer (for fuzzing servers)
  • client_proto_fuzzer (for fuzzing clients)
  • vulnerability_tester (for testing servers)
  • client_vuln_tester (for testing clients)
  • amplifier_detector
  • active_scanner

Protocols supported by different tools (left box describes working implementation in Python 2 and right one for Python 3):

Tool 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 ☐☐ ☑☑ N/A ☐☐ ☐☐ ☐☐ ☐☐ ☑☑ ☐☐ ☐☐ N/A ☑☑ ☑☑
protocol_fuzzer ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑
client_proto_fuzzer ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑
vulnerability_tester ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑
client_vuln_tester ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑ ☑☑
amplifier_detector N/A ☑☑ ☑☑ N/A N/A N/A N/A ☑☑ N/A ☑☑ ☑☑ N/A ☑☑
active_scanner ☐☐ ☐☐ ☑☑ ☐☐ ☐☐ ☐☐ ☐☐ ☐☐ ☐☐ ☐☐ ☐☐ ☐☐ ☐☐

For more detailed documentation of each tool see: Tools

Supported vulnerabilites

Vulnerabilities identified by Cotopaxi team, that can be tested using Cotopaxi:

Other vulnerabilities supported by Cotopaxi:

New vulnerabilities can be easily added to the database in vulnerabilities.yaml and payloads in cotopaxi/vulnerabilities//<payload.raw>.

Known issues / limitations

There are some known issues or limitations caused by using scapy as network library:

  • testing services running on the same machine can result in issues occurred by not delivering some packets,
  • multiple tools running against the same target can result in interference between them (packets may be indicated as a response to another request).

See more at: https://scapy.readthedocs.io/en/latest/troubleshooting.html#

Development

For more detailed information about development of Cotopaxi see: Development guide

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

cotopaxi-1.6.0-py2.py3-none-any.whl (12.3 MB view details)

Uploaded Python 2 Python 3

File details

Details for the file cotopaxi-1.6.0-py2.py3-none-any.whl.

File metadata

  • Download URL: cotopaxi-1.6.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 12.3 MB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.9

File hashes

Hashes for cotopaxi-1.6.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5eab8434e4a2d9e80324c935460e0471b506d71e013dd0c629bfc09e603f434d
MD5 a0d8cfb13b5a2d5686ced4d4078e21ad
BLAKE2b-256 b23581a79a1881c3bc498d5e280ec4a04343d4ec94dcb2ea4ef6fc084efd5b30

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page