Difference between revisions of "Packets"

From Space Station 13 Wiki
Jump to navigation Jump to search
(→‎Authentication: more info on netpass_security and a proper format on netpass_medical)
(→‎Packet Formatting: Inserts Creating packets, Spoofing the login packet, and Sending packets using the mainframe's radio and one bit of info just hanging at the top uncategorized from Zamu's guide. Moves some relevant info)
Line 71: Line 71:
'''[sender] [02002872]'''<br>
'''[sender] [02002872]'''<br>
This is the network ID of the PDA sending the message.
This is the network ID of the PDA sending the message.
=== Creating packets ===
Packets can be created by using the following command:
:<code>echo field=value|nfield2=value2|nfield3=value3</code>
To store the packet as a file on the mainframe:
:<code>echo ... ^ /home/pjones/''filename''</code>
To send a file (like a packet!) to your terminal, so you can send it with <code>file_send</code> or print it with <code>file_print</code>, save the file to the <code>/mnt/term</code> directory:
:<code>cp /home/pjones/''filename'' /mnt/term/x</code>
If you just need to get the file right away, you can simply save the file in <code>/mnt/term</code> right away:
:<code>echo ... ^ /mnt/term/foo</code>


Any packet you send must have both a sender ID and an address. In mode net and on wired networks, the sender ID must correspond to your network module's number-- you can check that using the '''periph view''' command. Other data can be spoofed-- for instance, in sending a text message, you could change the sender name to whatever you want and make security think a [[Blob]] is somehow messaging them.
Any packet you send must have both a sender ID and an address. In mode net and on wired networks, the sender ID must correspond to your network module's number-- you can check that using the '''periph view''' command. Other data can be spoofed-- for instance, in sending a text message, you could change the sender name to whatever you want and make security think a [[Blob]] is somehow messaging them.
'''Any and all packets typed into a terminal are formatted as the following:''' code=output; - they must always be ended with a semi-colon. For example, command=open;address_1=1234
=== Spoofing the login packet ===
Faking a login involves a few specific steps. You'll generally always need a valid ID of any kind to do the initial login, though.
# Log into the mainframe (insert your card and <code>term_login</code>)
# Craft a login packet
# Send the crafted packet back to your terminal
# Either enter <code>su</code> for admin rights, or disconnect and reconnect to log in as a completely different user
# Instead of using <code>term_login</code>, use <code>file_send</code> to send the packet you saved earlier
# You are now logged in with your forged user
The login packet looks like this:
* <code>registered=Pubbie Jones</code>
* <code>assignment=Staff Assistant</code>
* <code>access=</code>, followed by a (semicolon? comma?)-separated list of rights &mdash; every access in the ID computer has a different one. The important one for <code>su</code> access is 34.
Applying all of the above to create the packet and register it for <code>file_send</code>:
:<code>echo registered=Pubbie Jones|nassignment=Staff Assistant|naccess=34 ^ /mnt/term/loginpacket</code>
Keep in mind that [[Rules#Don't grief|you shouldn't use this]] to set the [[GuardBuddy|Guardbuddies]] to purge or other destructive things unless you're a [[traitor]].
=== Sending packets using the mainframe's radio ===
You can use DWAINE to send out packets over the air. The mainframe's radio has a limited range, though, so it won't reach everything.
# Create a directory for the frequency you want to transmit on. Directories are the four numbers without the decimal point, e.g. <code>/mnt/radio/1149</code> for 114.9, by using the command <code>mkdir /mnt/radio/1149</code>
#* If the directory already exists for whatever reason, you can skip this step.
# Craft your packet.
#* Optional: Save it if you need to use it more than once. Otherwise, just use <code>echo</code> and pipe it directly.
# Copy or move your crafted packet to the folder you created, e.g. <code>copy packet /mnt/radio/1149</code> or <code>echo ... ^ /mnt/radio/1149/packet</code>
If it worked, the packet you crafted should automatically be sent out by the radio. You can use the Packet Sniffer program on your [[PDA]] to confirm.


=== Authentication ===
=== Authentication ===

Revision as of 03:56, 3 January 2021

Almost all network traffic is in the form of radio signals, more commonly referred to as packets. With the right tools, it is possible to intercept, craft, and forge your own signals for various purposes.

Rules

Hack responsibly!

Like mechanical hacking, the act of packet-hacking is not in of itself a violation of the rules or a crime Security could persecute you for. However, if you use packet-hacking to commit crime, e.g. using packets to break into Security, then crew are well within their right to try to stop you, and Security is allowed to punish you for it. In addition, there are some crimes that are technically within the rules but will get you yelled at by an Admin if you make a habit of doing it, e.g. breaking into sensitive places (e.g. AI Upload, Security in general, Armory specifically) or stealing vital job equipment (e.g. the Captain's spare ID).

Packet Tools

Software

SigCatcher

The best way to find signals to decipher is with the program SigCatcher, available on the Network Tools disk. SigCatcher will snag any packet that the computer can detect-- either wired packets sent directly to that computer, or wireless packets when the wireless card is in mode free. The program only has a buffer for one signal at a time though, so you may need to check it frequently. It can run as a program in the background while you mess with other things. SigCatcher has two modes:

  • on will display the last packet received.
  • auto will grab the first packet it receives, then stops monitoring traffic, ensuring the packet is not overwritten by subsequent network activity.
  • save will save the current signal as a file to your computer.
  • quit will get you out of the program, but keep it running in the background.
  • fquit will end the program entirely.

SigPal

Once you've started deciphering packets, you can begin to make your own using SigPal.

  • Add [Key] [Data] is the core to setting up your packets. You need to have the right keys for other machines to understand what you're sending them.
  • File lets you add a file to send.
  • Remove If you make a mistake, you can't simply overwrite a line, you need to delete it, then add it back.
  • New to clear the entire packet.
  • View to view your current packet in its entirety.
  • Save to save as a signal file.
  • Load to load a signal file.
  • Send to transmit the packet through the computer's network card.

FROG

Allows you to ping and connect to other terminals in a manner similar to DWAINE. Bear in mind that the Research Mainframe is on a physically separate network from the rest of the station. FROG will not recognize a wireless card.

Ping

Pings and records ping data. Also does not recognize a wireless card.

Hardware

Data Terminal

This is the physical link to the wired network. A computer must be built on top of it to access that network. The most obvious and accessible data terminal is in Tech Storage, but many more can be found around the station, and they are under all of the existing ThinkDOS computers. The mechanics can make more, but must be able to properly wire them to the network.

Packet Sniffer

PacketSniffer.png

Found in Tech Storage. Capable of detecting all packets sent on the wired network it is attached to. Looks and functions like a powersink-- just screw it onto a data terminal and it will begin scanning. There is not much data on the main network of the station besides that which comes from the communications dish, but other interesting data may be found by setting up the sniffer on the Engineer or Research networks.

Network Diagnostics Cart

NetworkDiagnosticsPDACartridge.png

This cart can accomplish many of the same tasks as the network tools disk, but from your PDA. It features a ping tool, a packet sniffing tool, a packet sender, and a packet crafting tool. The range on the packet sniffer can be adjusted from close to far. The packet crafting tool does not have the 26 character string limit that SigPal does, allowing more complicated messaging.

Packet Formatting

A typical signal might look like this:

[command] [text_message]
[message] [What is your favorite pony]
[sender_name] [Weedgoku420]
[address_1] [02001921]
[sender] [02002276]

Each line of the signal consists of two items, the first item identifying the type of data, the second item identifying the actual data. This packet can be broken down as such:

[command] [text_message]
This tells the PDA that this command is a text message. This is just one of many commands available.

[message] [What is your favorite pony]
This is the text of the message. Note that a computer can handle a maximum of 26 characters.

[sender_name] [Weedgoku420]
This is what the sender's name will appear as in the message. No verification of this is done whatsoever, so the PDA will happily display whatever is written in the signal file. The limitation is again 26 characters.

[address_1] [02001841]
This is the network ID of the PDA the message will be going to.

[sender] [02002872]
This is the network ID of the PDA sending the message.

Creating packets

Packets can be created by using the following command:

echo field=value|nfield2=value2|nfield3=value3

To store the packet as a file on the mainframe:

echo ... ^ /home/pjones/filename

To send a file (like a packet!) to your terminal, so you can send it with file_send or print it with file_print, save the file to the /mnt/term directory:

cp /home/pjones/filename /mnt/term/x

If you just need to get the file right away, you can simply save the file in /mnt/term right away:

echo ... ^ /mnt/term/foo

Any packet you send must have both a sender ID and an address. In mode net and on wired networks, the sender ID must correspond to your network module's number-- you can check that using the periph view command. Other data can be spoofed-- for instance, in sending a text message, you could change the sender name to whatever you want and make security think a Blob is somehow messaging them.

Any and all packets typed into a terminal are formatted as the following: code=output; - they must always be ended with a semi-colon. For example, command=open;address_1=1234

Spoofing the login packet

Faking a login involves a few specific steps. You'll generally always need a valid ID of any kind to do the initial login, though.

  1. Log into the mainframe (insert your card and term_login)
  2. Craft a login packet
  3. Send the crafted packet back to your terminal
  4. Either enter su for admin rights, or disconnect and reconnect to log in as a completely different user
  5. Instead of using term_login, use file_send to send the packet you saved earlier
  6. You are now logged in with your forged user

The login packet looks like this:

  • registered=Pubbie Jones
  • assignment=Staff Assistant
  • access=, followed by a (semicolon? comma?)-separated list of rights — every access in the ID computer has a different one. The important one for su access is 34.

Applying all of the above to create the packet and register it for file_send:

echo registered=Pubbie Jones|nassignment=Staff Assistant|naccess=34 ^ /mnt/term/loginpacket

Keep in mind that you shouldn't use this to set the Guardbuddies to purge or other destructive things unless you're a traitor.

Sending packets using the mainframe's radio

You can use DWAINE to send out packets over the air. The mainframe's radio has a limited range, though, so it won't reach everything.

  1. Create a directory for the frequency you want to transmit on. Directories are the four numbers without the decimal point, e.g. /mnt/radio/1149 for 114.9, by using the command mkdir /mnt/radio/1149
    • If the directory already exists for whatever reason, you can skip this step.
  2. Craft your packet.
    • Optional: Save it if you need to use it more than once. Otherwise, just use echo and pipe it directly.
  3. Copy or move your crafted packet to the folder you created, e.g. copy packet /mnt/radio/1149 or echo ... ^ /mnt/radio/1149/packet

If it worked, the packet you crafted should automatically be sent out by the radio. You can use the Packet Sniffer program on your PDA to confirm.

Authentication

There are a handful of authentication codes you may or may not need.

The first three are stored on the Authentication Disk, so if you ask nicely maybe the Captain will give it to you.

Supplementary Video