DEV Community

Cover image for Introducing Wirecat: a native C networking and relay utility
blue0x1
blue0x1

Posted on

Introducing Wirecat: a native C networking and relay utility

What is Wirecat?

Wirecat (wcat) is a native C stream and session utility for connecting, listening, relaying, proxying, transferring files, and handling interactive sessions across Linux/POSIX
transports.

It is built as one small command-line binary with predictable behavior, clear errors, and automation-friendly output.

GitHub:

https://github.com/blue0x1/wirecat

Why I built it

I wanted a modern networking tool that keeps the direct CLI feeling of classic socket utilities, but with features I need in real operator and research workflows:

  • TCP and UDP
  • SCTP
  • Unix domain sockets
  • Linux VSOCK
  • TLS and mTLS
  • QUIC
  • SOCKS5 and HTTP CONNECT proxy support
  • HTTP CONNECT proxy server mode
  • PTY-backed process sessions
  • File send and receive
  • Relay mode
  • Broker/chat mode
  • JSON logs
  • Hex inspection
  • CIDR allow/deny controls

The goal is not to build a framework. The goal is a practical native tool for debugging, administration, controlled lab work, and repeatable network testing.

Installation

Download the latest release from GitHub:

https://github.com/blue0x1/wirecat/releases/latest

On Debian/Kali/Ubuntu amd64:

sudo apt install ./wirecat_0.1.0-1_amd64.deb
wcat --version
Enter fullscreen mode Exit fullscreen mode

Or build from source:

sudo apt install build-essential pkg-config libssl-dev
make
make test
Enter fullscreen mode Exit fullscreen mode

Basic usage

wcat connect example.com 80
wcat listen 0.0.0.0 4444
wcat listen --keep-open 0.0.0.0 4444
Enter fullscreen mode Exit fullscreen mode

TLS:

wcat connect --tls example.com 443
Enter fullscreen mode Exit fullscreen mode

QUIC:

wcat connect --quic --alpn h3 example.com 443
Enter fullscreen mode Exit fullscreen mode

Proxying:

wcat connect --proxy socks5://127.0.0.1:9050 example.com 80
wcat connect --proxy http://proxy.local:8080 example.com 443
wcat proxy 127.0.0.1 3128
Enter fullscreen mode Exit fullscreen mode

Relay mode:

wcat relay - tcp:example.com:80
wcat relay listen:127.0.0.1:9000 tcp:10.0.0.5:22
wcat relay tcp:127.0.0.1:9000 file:./capture.bin
Enter fullscreen mode Exit fullscreen mode

Broker/chat mode:

wcat broker 0.0.0.0 5555
wcat broker --chat 0.0.0.0 5555
Enter fullscreen mode Exit fullscreen mode

File transfer:

wcat recv ./archive.tar 0.0.0.0 9000
wcat send ./archive.tar 192.0.2.10 9000
Enter fullscreen mode Exit fullscreen mode

Security model

Wirecat is a general-purpose network utility.

It intentionally avoids:

  • persistence
  • stealth
  • autonomous operation
  • embedded scripting
  • C2 framework behavior

Use Wirecat only on systems and networks that you own, administer, or have explicit permission to test.

Current release

The first release is 0.1.0.

It includes:

  • Linux amd64 binary archive
  • Debian package
  • source archive
  • SHA256 checksums
  • fuzzing documentation
  • reproducible build notes
  • GitHub Wiki documentation

Links

Repository:

https://github.com/blue0x1/wirecat

Wiki:

https://github.com/blue0x1/wirecat/wiki

Release:

https://github.com/blue0x1/wirecat/releases/latest

Final note

Wirecat is still new, but the foundation is already there: native C, Linux/POSIX focus, clear CLI structure, real tests, fuzzing, release packaging, and documentation.

Top comments (0)