Skip to main content

Audio tunnel for secure chat, file transfer or reverse shell on Linux.

Project description

plot

audiocat

Audiocat is a command-line utility that reads and writes encrypted data across peer-to-peer audio connections, using minimodem and gpg.

It is a powerful tool that can be combined with any audio infrastructure (like PSTN, cellular network, internet, radio) to provide a secure audio tunnel.

The audio interfaces behave like data-diodes, each allowing unidirectional data transmission only, thus preventing data-leaks and malware-injection.

This enables an "enhanced"-end-to-end encryption (E-E2EE) which notably increases security and privacy, especially when the end devices are completely offline (air-gapped-system).

See also https://www.codeproject.com/Articles/5295970/Audio-Chat-for-Quite-Good-Privacy-AC4QGP

Installation

  git clone https://github.com/ClarkFieseln/audiocat.git
  (not yet supported: pip install audiocat)
  
  # dependencies:
  sudo apt update
  sudo apt install minimodem
  sudo apt install gpg

How to use it?

###Chat/Messenger:

  ./audiocat -c

a new terminal is opened for the transmitter, enter and confirm password, then enter and confirm the password also for the receiver (all passwords are the same). On the other device a chat or even a reverse shell can be started.

###Reverse Shell:

  ./audiocat -s

then enter and confirm password.

###File Transfer:

  ./audiocat -f

a new terminal is opened for the transmitter, enter and confirm password, then enter and confirm the password also for the receiver (all passwords are the same). On the other device a file transfer shall be started.

###Probe: (to check connectivity and adjust volumes if required)

  ./audiocat -p

a new terminal is opened for the transmitter.

Configuration settings can be adapted in folder cfg.

For a detailed documentation check the Article in Code Project (the link will be provided soon).

##Features: on top of the audio modem provided by minimodem and encryption provided by GPG, audiocat offers a reliable transport layer and many other features:

  • modes: chat, reverse-shell, file transfer (future: sniffer)

  • full-duplex communication

  • retransmit messages automatically after communication errors

  • split big messages into smaller data chunks in order to increase the probability of reception, thus reducing retransmissions

  • [keepalive] messages

    this feature was extremely important in my set up in order to prevent "binary data / noise" after pauses

    when minimodem is not used for longer than some seconds the amount of initial noise/problems in the transmission increases

  • redundant transmission of "data-messages" to increase probability of successfull reception

    all redundant messages received "after" a successfull reception are just ignored for processing but acknowledged,

    the total transmission time (including all redundant messages) shall be below the roundtrip-delay,

    an excessive number of redundant transmissions will increase delays and may block messages sent by the other side)

  • composition of piped commands hidden to the user

  • tmp folder located in a configurable path beneath $HOME, independent of the current path.

  • probe, to check volume on receiver and adjust manually if needed,

    very high and very low volumes may produce signal distortions

  • "braodcast" transmissions also possible, e.g. when ACKs are dactivated

    use-case: walkie-talkie, Radio station, ...

  • several configuration options, preamble, trailer, delays, cipher algorithm, confidence, log to file, verbose, etc.

##Possible Abuses: please don't do the following if you are not allowed (it might be illegal!):

  • exfiltrate data over the air to a nearby or remote computer

  • remote control over the air from a nearby or remote computer

  • exfiltrate data from a computer evading classical auditing

    (be aware that if you do this on your employer's computer you might be infringing the law!)

  • "side-channel" for covert communication (e.g. to spread or inject malware),

    even worse when combined with steganography (e.g. low volumes, data hidden in noise)

PyPi Project

https://pypi.org/project/audiocat/

Article in Code Project

(the link will be provided soon)

Article in GitHub

https://github.com/ClarkFieseln/audiocat

License

(c) 2024 Clark Fieseln

This repository is licensed under the MIT license. See LICENSE for details.

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

sun22-0.0.1.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

sun22-0.0.1-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file sun22-0.0.1.tar.gz.

File metadata

  • Download URL: sun22-0.0.1.tar.gz
  • Upload date:
  • Size: 16.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for sun22-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ffee1bb80d4f79990740830eee99a7c077332b4f9b3b62fa5230c52ade0fa769
MD5 a8a2009446087f6e37d7033da837fbcd
BLAKE2b-256 8aae16157bc6a9800f74f0b996950e7a6a399fb5c6eeaedb6761d14a21c65450

See more details on using hashes here.

File details

Details for the file sun22-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: sun22-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 14.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for sun22-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ef4a17c652a5076e4d553284dc5b0f9a2ef09702150c73a4854546a67c963fda
MD5 2344ccec05570483e5d6ab318f2c4cd3
BLAKE2b-256 8c966bf0ba6ff9c201fa216811a6995d27b3b6f68bd71cfb762e64a5c6279eb7

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