Skip to content

SSH Device Switching

In real-world network administration, you don't haul a keyboard around to every device. You SSH (Secure Shell) into other devices from your own computer. SimNet works the same way — when you need to add a route on a router, or restart a service on a server, you ssh over to that device.

Why Switch Devices?

Inside SimNet, different devices see different "views" of the network and can do different things:

  • PC (your player device) — You can ping, curl, capture packets, launch attacks, and deploy defenses
  • Router — Owns the routing table and decides where packets go. You can only run ip route add on a router
  • Server — Runs services like HTTP and DNS. You can only manage services with systemctl on a server
  • Switch — Lets you inspect the MAC address table and VLAN configuration

It's like a company: accounting only sees the financial system, engineers only see the codebase. You have to be in the right "office" to do the right job.

How do I know which device to jump to?

Read the challenge brief and the topology. If the challenge says "the router is missing a route," that's your cue to SSH into the router.

Basic Operations

Connecting to Another Device

bash
simnet@pc1:~$ ssh router1
simnet@router1:~$

Just type ssh followed by the device name. You can find device names on the topology (either inside the box or labeled next to it).

Once connected, the prompt changes right away — from pc1 to router1 — so you always know where you "are."

Going Back

bash
simnet@router1:~$ exit
simnet@pc1:~$

exit closes the current SSH session and drops you back to where you came from.

Prompt Color Cues

SimNet color-codes the prompt so you can tell at a glance where you are — no need to re-read the device name every time:

ColorMeaningDescription
GreenLocal deviceYou're on your own player device
YellowSSH remote deviceYou're operating another device over SSH
simnet@pc1:~$           ← green: you're on your own PC
simnet@router1:~$       ← yellow: you SSH'd into a Router
simnet@dns-server:~$    ← yellow: you SSH'd into a DNS Server

It's as intuitive as a traffic light — green means "you're home," yellow means "you've stepped out."

Multi-Hop SSH

SimNet supports SSH sessions up to 3 levels deep. You can go from PC to Router, then from Router to Server:

bash
simnet@pc1:~$ ssh router1          # Level 1
simnet@router1:~$ ssh dns-server   # Level 2
simnet@dns-server:~$ ssh server1   # Level 3 (max)

To get out, run exit once per level, in reverse:

bash
simnet@server1:~$ exit             # back to dns-server
simnet@dns-server:~$ exit          # back to router1
simnet@router1:~$ exit             # back to pc1
simnet@pc1:~$                      # home again

Depth limit

You can only stack up to 3 SSH sessions. You usually won't need that — most challenges only require a single hop.

Think of multi-hop SSH like a set of nesting dolls — each level you open puts you inside a new environment, and each level you close pops you back to the previous one.

Commands Available per Device

The help output changes depending on which device you're SSH'd into. Quick reference:

PC (player device)

Common commands plus client tools and security tools: ping, ip addr, arp, curl, wget, nslookup, tcpdump, tshark, nmap, arpspoof, arp -s, tls enable, dns verify

Router

Common commands plus route management: ping, ip addr, ip route, show interfaces, show arp

Server

Common commands plus service management: ping, ip addr, systemctl, service, cat

Switch

Common commands plus switch inspection: show mac-address-table, show interfaces, show vlan

Common commands available on every device: help, clear, ssh, exit

Full list

For detailed command syntax and examples, see the Terminal Command Reference.

Worked Example: SSH into a Router to Add a Route

Take a classic "router missing a route" scenario: suppose the router lacks a route to the server's subnet. Your workflow looks like this:

Step 1: Confirm the problem from the PC

bash
simnet@pc1:~$ ping -c 1 10.0.1.3
PING 10.0.1.3 - no reply (destination unreachable)

The server isn't responding — the packet is getting dropped somewhere.

Step 2: SSH into the router and check the routing table

bash
simnet@pc1:~$ ssh router1
simnet@router1:~$ ip route
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1

Sure enough — the router only has a route for the 10.0.0.0/24 subnet, and no path to 10.0.1.0/24.

Step 3: Add the route on the router

bash
simnet@router1:~$ ip route add 10.0.1.0/24 dev eth1
Route added: 10.0.1.0/24 dev eth1

Step 4: Hop back to the PC and verify

bash
simnet@router1:~$ exit
simnet@pc1:~$ ping -c 1 10.0.1.3
64 bytes from 10.0.1.3: icmp_seq=1 ttl=63 time=40 ms

It's working. Now you can curl over to grab the Flag.

FAQ

Can I SSH into the Switch?

Yes. Once you're SSH'd into a switch, show mac-address-table lets you inspect the MAC address table — useful in some traffic-analysis challenges.

What if I lose track of which level I'm on?

Read the prompt. It always shows the name of the device you're currently on. Yellow prompt means you're on a remote device; green means you're on your own PC. When in doubt, just press exit a few times to drop back to the bottom layer.

Does the Traffic Log switch when I SSH?

The Traffic Log always shows the traffic that the current device sees. After SSH'ing into a router, you'll see the packets the router is forwarding, not the ones at the PC. That's especially handy when diagnosing routing issues — you can watch the router to confirm packets are being forwarded correctly.