Exploitationsmart meterc1218c1219optical probebrute forceenumeration

Termineter

Termineter is a Python framework for security testing of smart meters using C1218 and C1219 protocols over an ANSI type-2 optical probe. It supports modules for tasks like brute forcing credentials, enumerating tables, and dumping data from C12.19 compliant devices.

Description

Termineter provides a platform for assessing the security of smart meters commonly found in North America, which use C1219-2007 with 7-bit character sets. The tool communicates via serial interface with an ANSI type-2 optical probe, enabling interaction with meter identification, user IDs, and C12.19 tables.

Use cases include brute forcing login credentials, enumerating valid user IDs, checking table differences, dumping tables to CSV, and parsing identification information. These capabilities help identify vulnerabilities in smart meter implementations during penetration testing or security audits.

The framework loads 17 modules by default and supports resource files for scripted testing. Logging levels allow control over output verbosity, making it suitable for both interactive and automated assessments.

How It Works

Termineter implements C1218 and C1219 protocols for communication over optical interfaces with smart meters. It connects via serial to an ANSI type-2 optical probe, supporting C1219-2007 7-bit character sets prevalent in North American meters. Modules interact with device tables using C12.19 standards, performing operations like enumeration, dumping, and brute forcing through structured protocol commands.

Installation

bash
sudo apt install termineter

Flags

-h, --helpshow this help message and exit
-v, --versionshow program's version number and exit
-L, --log {DEBUG,INFO,WARNING,ERROR,CRITICAL}set the logging level
-r, --rc-file RESOURCE_FILEexecute a resource file

Examples

Launch the termineter interactive shell, showing version v1.0.4, model info, and loaded modules count
termineter
Display the list of available modules including brute_force_login, diff_tables, dump_tables, enum_tables, enum_user_ids, get_identification
termineter > show modules
Show the usage help message with all command-line options
termineter -h
Display the program's version number
termineter -v
Start termineter with DEBUG logging level
termineter -L DEBUG
Execute commands from a specified resource file
termineter -r resource_file
Run the brute force credentials module
termineter > brute_force_login
Updated 2026-04-16kali.org ↗