Link Search Menu Expand Document

Deneb (Launched 2000)

  • Password: neveruseit
  • (20 points)
Table of contents
  1. Your task
  2. Debugging
  3. Deliverables
EvanBot’s message is alarming. Could the Caltopian Jupiter exploration project
have some secondary evil purpose? Following Bot’s advice, you decide to hack into
the Deneb satellite to investigate further.

The fear of the Y2K bug at the turn of the century drove Gobian engineers to
conduct a sweeping evaluation of its systems and correct any deficiencies. Deneb,
the first Gobian satellite launched in the 21st century, features a more secure version
of the original Spica file viewing utility.

Consider what security vulnerabilities occur during error checking. Which security principles are involved in correctly implementing error checking?


Your task

Like Question 3, this question uses an interact script instead of an egg script, and the interact script has already been created for you. As before, you have access to a SHELLCODE variable and the p.send(s) and p.recv(n) functions. Refer to the interact API section of Question 3 for more information.


Debugging

You might find it helpful to use two terminals to debug this question.

If you are using the online setup, you can use the following command in a second terminal to connect to the Hive machine:

$ ssh -t cs161-XXX@hiveYY.cs.berkeley.edu \~cs161/proj1/connect

Alternatively, on the local (VirtualBox) setup, you can simply open two terminals on your local computer and SSH into the VM on both terminals.

To start a debugging session:

  • In terminal 1: Start gdb (./debug-exploit)

  • In terminal 2: Start an interactive Python shell (python)

  • In terminal 2: >>> from scaffold import *

To run any p.send and p.recv calls in your interact script, use terminal 1 to type input or read output from gdb. For any other Python function calls in your interact script, type the lines of Python code into terminal 2 to execute them.


Deliverables

A script interact and a writeup. Make sure the script works by running ./exploit.