Skip to main content

Retrieve vulnerability sightings collected from Telegram and push them to a Vulnerability-Lookup instance.

Project description

TeleGramSight

A client that retrieves vulnerability observations from a Telegram collector and pushes them to a Vulnerability-Lookup instance.

Installation

pipx is an easy way to install and run Python applications in isolated environments. It's easy to install.

$ pipx install TeleGramSight
$ export TeleGramSight_CONFIG=~/conf.py

The configuration should be defined in a Python file (e.g., ~/.TeleGramSight/conf.py). You must then set an environment variable (TeleGramSight_CONFIG) with the full path to this file.

Usage

Once installed and configured, invoke the CLI:

$ telegramsight --since 2026-04-23T00:00:00 --until 2026-04-24T00:00:00
$ telegramsight --since 'yesterday' --until 'today' --no-push
$ telegramsight --since '2 days ago' --until 'today'
$ telegramsight --since 1775001600 --until 1776902399

Arguments:

  • --since / --until — time window bounds. Accept unix-epoch seconds, ISO 8601 timestamps, or natural-language expressions (e.g. 2 days ago, yesterday, today, 1 week ago). Defaults to the last 24 hours when omitted, which is the expected cron invocation.
  • --page-size — results per API call (default 100).
  • --no-push — dry run: fetch and build sightings and log them, but don't send anything to Vulnerability-Lookup.

Cron example (every hour):

0 * * * * TeleGramSight_CONFIG=/etc/telegramsight/conf.py /usr/local/bin/telegramsight

Decrypting a source fragment

Sightings coming from private channels carry an opaque Telegram/<ct> source instead of a public t.me/<user>/<id> link, and never include the message text (see Security). When investigating such a sighting, an operator who holds the source_encryption_key can recover the underlying <chat_id>/<msg_id> locally with the telegramsight-decrypt helper:

$ telegramsight-decrypt c3vSlSPcOR_UbD4dIs0S5bT1NWHke0QXkPNkd5-4SeE9
-1001234567890/42

$ telegramsight-decrypt 'Telegram/c3vSlSPcOR_UbD4dIs0S5bT1NWHke0QXkPNkd5-4SeE9'
-1001234567890/42

The command reads the same config file as telegramsight (via TeleGramSight_CONFIG) and uses the same source_encryption_key. Decryption happens entirely on the operator's machine — nothing is sent over the network — so the privacy guarantee around private channels is preserved: the original chat_id is only ever revealed to someone who already has the key.

Security

Sighting sources are encrypted with AES-SIV (RFC 5297) using the source_encryption_key set in your configuration file. AES-SIV is used deterministically (no nonce, no associated data) so that the same Telegram message always produces the same source string, which lets Vulnerability-Lookup deduplicate on the ciphertext without decrypting it. The key may be 32, 48, or 64 bytes (AES-128/192/256-SIV); 64 bytes is recommended for new deployments. AES-256 retains an estimated ~128-bit security margin against known quantum attacks (Grover's algorithm), but the tool itself has not been independently audited or certified.

License

TeleGramSight is licensed under GNU General Public License version 3

Copyright (c) 2026 Computer Incident Response Center Luxembourg (CIRCL)
Copyright (C) 2026 Cédric Bonhomme - https://github.com/cedricbonhomme

Project details


Download files

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

Source Distribution

telegramsight-0.6.0.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

telegramsight-0.6.0-py3-none-any.whl (21.7 kB view details)

Uploaded Python 3

File details

Details for the file telegramsight-0.6.0.tar.gz.

File metadata

  • Download URL: telegramsight-0.6.0.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for telegramsight-0.6.0.tar.gz
Algorithm Hash digest
SHA256 4db17a1301c69898e25452bf519b61c23159227fe1fc3c39c9910506b32ab193
MD5 0a898489e7add39076ed60c55e6a487e
BLAKE2b-256 99d1e4bcd1670f1dfa305b9858db39be44200a4bdf09c004d8dbc15a88e6d83e

See more details on using hashes here.

Provenance

The following attestation bundles were made for telegramsight-0.6.0.tar.gz:

Publisher: release.yml on vulnerability-lookup/TeleGramSight

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file telegramsight-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: telegramsight-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 21.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for telegramsight-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 adbba7072bf1e2b236323d27914345c73a75b85ec4fd662bc51508cc4e8edd7e
MD5 2b3aa4039dadab675bc100a9f838ef13
BLAKE2b-256 fb198d648b21cf60adc7185f9cc1ba6c2e753049bec07a034e9b586b90187f91

See more details on using hashes here.

Provenance

The following attestation bundles were made for telegramsight-0.6.0-py3-none-any.whl:

Publisher: release.yml on vulnerability-lookup/TeleGramSight

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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