tcpcat.
Groupe de travail réseau
N. — NycolazSec
Requête pour commentaires : 1337
tcpcat.io
Obsolète : nmap (de facto)
Août 2026
Catégorie : Informationnel — outillage offensif
ISSN : sans objet (document commercial)

tcpcat — reconnaissance réseau en espace noyau et évasion IDS/IPS adaptative

Spécification technique & référence produit — v1.0

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀   ⠀⠀⢤⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⡾⠿⢿⡀⠀⠀⠀⠀⣠⣶⣿⣷
⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣦⣴⣿⡋⠀⠀⠈⢳⡄⢠⣾⣿⠁⠈⣿⡆      tcpcat v1.0 by NycolazSec
⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⠿⠛⠉⠉⠁⠀⠀⠀⠹⡄⣿⣿⣿⠀⠀⢹⇇      Modular Security & Network Engine
⠀⠀⠀⠀⠀⣠⣾⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⣰⣏⢻⣿⣿⡆⠀⠸⣿
⠀⠀⠀⢀⣴⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣆⠹⣿⣷⠀⢘⣿
⠀⠀⢀⡾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⠋⠉⠛⠂⠹⠿⣲⣿⣿⣧⢠⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣿⣿⣿⣷⣾⣿⡇⢀⠀⣼⣿⣿⣿⣧
⠰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⡘⢿⣿⣿⣿
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣷⡈⠿⢿⣿⡆
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠁⢙⠛⣿⣿⣿⣿⡟⠀⡿⠀⠀⢀⣿⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣶⣤⣉⣛⠻⠇⢠⣿⣾⣿⡄⢻⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⦦⣤⣾⣿⣿⣿⣿⣆
Colophon

Statut de ce mémo

Ce document présente tcpcat, un moteur de reconnaissance réseau écrit en Go, ainsi que son pipeline d'évasion. Il ne définit pas de standard IETF ; sa distribution est libre sous licence Apache-2.0. L'usage de l'outil décrit ici est soumis aux conditions énoncées en §6 (Sécurité).

Résumé

tcpcat combine un moteur de scan multi-protocoles avec un chemin de paquets en espace noyau via eBPF/AF_XDP, contournant la pile socket standard de Linux. Un pipeline d'évasion modulaire (29 techniques, réparties sur les couches L3 à L7) permet d'ajuster la discrétion du scan face aux IDS/IPS. Un moteur de détection sandboxé en WebAssembly assure la corrélation avec des bases CVE.

1. Introduction et spécifications

§1

tcpcat expose l'intégralité de la pile TCP/IP au niveau du pilote réseau. Plutôt que de passer par les sockets BSD, chaque paquet est construit, envoyé et lu directement en espace noyau. Le tableau ci-dessous résume les valeurs mesurées en environnement de test.

Débit vs. outils classiques
23,8×
Vecteurs d'évasion (phase 4)
29 techniques
Débit crête / cœur
≈ 1 000 000 pps
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Source Port         |       Destination Port       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        Sequence Number                       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Acknowledgment Number                     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  Data |           |U|A|P|R|S|F|                               |
| Offset| Reserved  |R|C|S|S|Y|I|            Window             |
|       |           |G|K|H|T|N|N|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           Checksum           |         Urgent Pointer        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    Options                    |    Padding    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1 — En-tête TCP (RFC 793 §3.1). Champs manipulés par le pipeline d'évasion de tcpcat :
Flags (SYN/ACK/FIN/Xmas) Window Options / Padding Sequence Number (jitter)

2. Capacités système

§2

2.1 Reconnaissance L2–L7

Énumération multi-protocoles (TCP, UDP, ICMP), cartographie de topologie L3/L4 avec empreinte logicielle, et découverte asynchrone DNS / mDNS / NetBIOS.

SYN · ACK · Window · Xmas · FIN scans

2.2 Noyau Linux eBPF / AF_XDP

Accès direct aux paquets au niveau du pilote réseau — contournement complet de la couche socket. Débit filaire sans surcharge CPU notable.

≈1M pps/cœur · Zero-Copy Driver Mode

2.3 Intelligence programmable (WASM)

Moteur de détection sandboxé en WebAssembly. Les dissecteurs de protocoles peuvent être écrits en Rust, C, Go ou AssemblyScript.

Corrélation CVE dynamique · Vulners API · Google OSV

3. Pipeline d'évasion modulaire

§3

29 techniques réparties sur la pile OSI, sélectionnables via un profil unique (--evasion).

Profil Risque de détection IDS Contournement IPS Surcharge Usage recommandé
off60–80 %Aucun0 %Audits autorisés, cartographie rapide
light40–50 %Basique+5 %Scans de production (équilibré)
moderate20–30 %Stateful+15 %Environnements sous surveillance
aggressive5–15 %Comportemental+30 %Déploiements haute sécurité / SOC stricts
stealthy< 1 %Durci ML+50 %Évasion maximale sous DPI
Couche réseau (L3)
Fragmentation IPv4 et mutation adaptative de la stratégie TTL.
Couche transport (L4)
Ajustement de fenêtre TCP, ports éphémères randomisés, crafting de flags.
Couche session (L5)
Jitter temporel à coefficient de variance réglable (0.0–1.0).
Couche application (L7)
Orchestration distribuée de leurres (decoy swarm) en sockets brutes.

4. Benchmark comparatif

§4

Énumération des ports 1–1024, même charge réseau et même infrastructure cible.

tcpcat (eBPF natif)80 ms — 23,8× plus rapide
Nmap (SYN scan standard)1 900–2 300 ms

5. Référence en ligne de commande

§5
Figure 2 — Cartographie rapide (1000 ports les plus fréquents)
sudo tcpcat -sS --top-ports 1000 --rate 100000 target.lan
Figure 3 — Évasion agressive sous surveillance firewall/DPI
sudo tcpcat -Pn -sT -p 1-10000 --evasion aggressive --jitter 0.8 --frag --decoy 8.8.8.8,1.1.1.1 target.lan
Figure 4 — Mode eBPF ultra-rapide sur sous-réseau complet
sudo tcpcat --ebpf -p 1-1000 10.0.0.0/16 -w 128 -T 5
Figure 5 — Énumération de versions applicatives, rapport JSON
sudo tcpcat -sV -p 22,80,443,3306,5432,27017 192.168.0.0/24 -j report.json

Annexe A. Folklore réseau (informatif, non normatif)

Ann. A

« Il n'y a pas d'endroit comme le 127.0.0.1. » — dans la tradition des RFC humoristiques (cf. RFC 2549, RFC 1149).

A.1 — RFC 768, le dilemme du datagramme

« Je te raconterais bien une blague sur l'UDP... mais je ne suis pas certain que tu la reçoives, et honnêtement je me fiche de savoir si tu l'as comprise. »

A.2 — RFC 793, le barman TCP

Un paquet entre dans un bar : SYN — « Je voudrais une bière. » SYN-ACK — « Tu veux une bière ? » ACK — « Oui, une bière. » Le barman répond RST (port 80 fermé).

A.3 — Extension du modèle OSI

Layer 8 exception : erreur critique identifiée entre la chaise et le clavier. « Avez-vous essayé d'éteindre et de rallumer la table de routage BGP ? »

A.4 — Wireshark à 3h du matin

Filtre !(arp or dns or mdns or ssdp) → 0 paquet. « Qui diffuse du SSDP sur le VLAN de prod à 3h du matin ?! »

A.5 — ICMP Echo Request

64 bytes, icmp_seq=1, ttl=116 — la seule relation stable et sans engagement dans ta vie.

A.6 — MTU 1500 vs bit DF

ICMP type 3, code 4 : « Fragmentation Needed and DF bit set. » Le trou noir des paquets orphelins — tcpcat --frag le contourne nativement.

6. Considérations de sécurité

§6
Usage
autorisé
uniquement

tcpcat est strictement réservé aux audits de sécurité défensifs, tests d'intrusion autorisés et à l'administration d'infrastructures sous mandat explicite. Tout accès ou maintien non autorisé dans un système de traitement automatisé de données est passible de sanctions pénales (art. 323-1 et suivants du Code pénal, CFAA, RGPD). Les auteurs déclinent toute responsabilité en cas d'utilisation illicite.