← back
CYBER90S cyber90s
// field manual & command reference

A quick reference for the tools and ideas you'll use across the labs.

01 — The terminal

Each lab drops you into a UNIX shell. You type a command, press Enter, and it runs. The prompt (the $) is where you type. For reference, typical commands are shown below.

ls list files in the current directory cat file print a file's contents to the screen cd dir change directory pwd show where you are python3 f run a Python script Ctrl+C stop a running command

To write a script, use the nano editor. A starter file attack.py already exists in your home directory:

nano attack.py open the editor ... type or paste your code ... Ctrl+O, Enter save Ctrl+X exit python3 attack.py run it

To paste into the terminal, use Ctrl+Shift+V (not Ctrl+V). The terminal runs through ttyd in your browser, where Ctrl+C is reserved for stopping a command so paste is bound to Ctrl+Shift+V instead.

Inside a lab you also have these helper commands: mission (re-read the briefing), hint 1 / hint 2 / hint 3 (progressive nudges), and verify (submit your answer to complete the lab).

02 — tcpdump (packet capture)

tcpdump is a packet sniffer. It puts your network interface into a listening mode and prints every packet that passes through including source, destination, ports, and more. On an unencrypted protocol, that means you can read the actual data, including passwords.

common flags
-i any capture on all network interfaces -A print packet payloads as ASCII text (readable) -l line-buffered output (see it live as it arrives) port 23 only show traffic on port 23 -n don't resolve names/ports (show raw numbers) -X show hex + ASCII side by side -w file write raw packets to a file instead of the screen

Remember: Flags combine. You can pick the interface, choose whether to show payloads as text, filter to the port you care about, and decide whether to watch live or write to a file.

In labs that involve sniffing, you can pipe the output to $CAP (e.g. ... | tee $CAP) and then click VIEW CAPTURE in the top bar to read it in your browser, where copying is easy.

03 — netcat (nc)

nc ("netcat") is the swiss-army knife of TCP/IP. At its simplest it opens a raw connection to a host and port and lets you type directly at whatever service is listening. Because many classic protocols (Telnet, SMTP, HTTP) are just plain text, you can "speak" them by hand.

nc HOST PORT connect and start typing nc -z HOST PORT just check if the port is open (no data) nc -u HOST PORT use UDP instead of TCP nc -w 3 HOST PORT give up after 3 seconds of silence

Example — connecting to a mail server and it greets you:

$ nc 10.90.0.14 25 220 mail.cyber90s.net ESMTP ready HELO me.com 250 Hello me.com, pleased to meet you
04 — Telnet & plaintext

Telnet (RFC 854, 1970s) gave remote access to a machine's command line. Its fatal flaw: everything — usernames, passwords, keystrokes — travels as unencrypted plain text. Anyone sniffing the network sees it all. This is why SSH, which encrypts the session, replaced it. When a protocol is plaintext, a packet capture is all it takes to steal credentials.

05 — SMTP & email spoofing

SMTP (RFC 821, 1982) is how mail servers exchange messages — a plain-text, line based conversation. The server trusts whatever you type in MAIL FROM; there's no proof of identity. Combined with "open relays" that accept mail from anyone, this let attackers send email as literally anybody. The dialogue:

HELO you.com introduce yourself MAIL FROM:<anyone@anywhere> claim a sender (forged!) RCPT TO:<[email protected]> the recipient DATA begin the message Subject: ... (then a blank line, then the body) . a single dot ends the message

Modern defenses — SPF, DKIM, DMARC — exist precisely because SMTP itself verifies nothing.

06 — The TCP handshake & SYN floods

TCP is a reliable connection. It starts with a three-way handshake:

1. SYN client: "I'd like to connect" 2. SYN-ACK server: "OK, go ahead" (reserves memory, half-open) 3. ACK client: "connected"

Between steps 2 and 3 the server holds the connection half-open in a fixed-size queue. A SYN flood sends a torrent of SYNs and never completes the handshake, filling that queue so no real users can connect. Often the source IP is spoofed so the SYN-ACK goes nowhere. Tools like hping3 craft these raw packets:

hping3 -S -p 8080 --flood --rand-source TARGET -S set SYN flag --flood as fast as possible
07 — UDP & amplification (chargen)

Unlike TCP, UDP is connectionless. You send a packet and there's no handshake, no guarantee of delivery. That makes it faster, but also easier to abuse. The Character Generator protocol (chargen, RFC 864, port 19) replies to any UDP packet with a stream of characters. Send one small packet, get a much larger reply back: that ratio is called amplification. Forge the source address and the flood of replies gets aimed at a victim. One byte in, hundreds out from almost nothing.

08 — Encryption, keys & DES

Encryption scrambles data (plaintext) into unreadable ciphertext using a key; decryption reverses it with the same (or a related) key. In symmetric encryption the same secret key does both — so the whole scheme's strength depends on that key being hard to guess.

A key is just a number. Its size in bits sets how many possible keys exist. If that space is small enough, an attacker can simply try every key until one works — a brute-force attack. DES (Data Encryption Standard) used a 56-bit key, which was crackable by 1998 as hardware got faster. That's the whole vulnerability: too few bits.

Data at this level is often shown in hexadecimal (base-16, digits 0-9 and a-f) because it maps cleanly to raw bytes. You'll fetch a challenge with curl, an HTTP client:

curl http://10.90.0.11:3001/challenge fetch data over HTTP

Then a script brute-forces the remaining key space and recovers the plaintext.

// CYBER90S field manual — more entries added as modules grow