DEV Community

CTFDojo
CTFDojo

Posted on Originally published at ctfdojo.com

PicoCTF Nice Netcat Writeup — Talk to a Remote Service with netcat

This challenge teaches the absolute basics of netcat (nc): connecting to a remote host and port, reading what the service sends back, and responding correctly to get the flag — the very first building block of any network/pwn-oriented CTF.

  • Platform: picoGym
  • Category: Misc
  • Points: 50 pts
  • Difficulty: Beginner
  • Tools: netcatnc

Challenge description

The challenge simply provides a connection command to a remote service:

"Can you connect to this service and figure out what it wants?"
nc saturn.picoctf.net 54321

No binary to download, no file to analyze — everything happens live over the network, via a raw TCP connection. It's the perfect opportunity to learn the single most fundamental tool of any network-oriented CTF: netcat.

Step 1 — Connect with netcat

netcat (often shortened to nc) opens a raw TCP or UDP connection to any host and port, and lets you interact directly with the service by typing text on the keyboard. We simply run:

$ nc saturn.picoctf.net 54321
Enter fullscreen mode Exit fullscreen mode

As soon as the connection is established, the remote service usually sends a welcome message (the "banner") that appears immediately in the terminal.

Step 2 — Read the service's instructions

Once connected, the service explains what it expects in return. On this challenge, the banner looks like this:

Welcome to netcat101!
If you can read this, you already know how to connect.
Type FLAG_PLEASE and press enter to get your flag.
>
Enter fullscreen mode Exit fullscreen mode

The message is explicit: just type the requested command, exactly as shown, to receive the flag in return.

Step 3 — Respond correctly

We type the exact string requested by the service, then confirm with Enter:

> FLAG_PLEASE
Enter fullscreen mode Exit fullscreen mode

Netcat directly forwards every line typed on the keyboard to the remote service over the open TCP connection — no need to format anything, whatever is typed (followed by Enter) is sent as-is over the network.

Step 4 — Grab the flag

The service immediately responds with the flag in plaintext:

picoCTF{***}
Enter fullscreen mode Exit fullscreen mode

Here's the complete session, from start to finish:

$ nc saturn.picoctf.net 54321
Welcome to netcat101!
If you can read this, you already know how to connect.
Type FLAG_PLEASE and press enter to get your flag.
> FLAG_PLEASE
picoCTF{***}
Enter fullscreen mode Exit fullscreen mode

🚩 picoCTF{ flag intentionally hidden }

The flag is deliberately hidden — follow the method, you've earned it. 💪

Key takeaways

A short challenge, but one that lays an absolutely essential foundation:

  • netcat is often nicknamed the "Swiss Army knife of networking" — it lets you manually connect to any TCP/UDP service
  • Knowing how to read a banner and respond to it by hand is essential before scripting anything with tools like pwntools
  • The vast majority of pwn and network CTF challenges start with a simple nc host port command — mastering this basic step saves precious time on everything that follows

Originally published on CTFdojo — join the CTFdojo Discord to discuss writeups and get notified about new ones.

Top comments (0)