Hack-a-Sat 2020: After-Action Report

We’d like to report our story of participating  in this amazing event, organized by US Air Force Research Laboratory and DoD Defence Digital Service. It was our first CTF and most of our team members met each other a few days beforehand. We didn’t score very high, but had great fun nevertheless. Congrats to the  top 10 teams on the leaderboard – they will advance to finals of this competition:

More than 1300 teams participated and here is the total points distribution for all teams (you can see the difficulty curve!):

The event focus was definitely more on space and less so on cybersecurity. Most of the challenges required knowledge of technologies and subjects familiar to people in aerospace industry. Here is a list of selected challenges we found most interesting, in various categories :  

Astronomy, Astrophysics, Astrometry, Astrodynamics

  • Attitude adjustment” and “Space Book” – A number of boresight reference vectors collected by star tracker and catalog reference vectors are provided. Use this information to determine attitude quaternion in order to claim those challenges.
  • Digital filters, Meh”  – Using provided MatLab/Octave code, identify the bug in the attitude control algorithm and trip error condition to capture the flag. Requires understanding of quaternion operations and control theory.

Satellite Bus 

  • Magic Bus” – extract information from device memory, accessible through I2C bus (commonly used on cubesats). We can tantalizingly close to solving this challenge, but ran out of time.
  • Bytes Away!” – restore the communications with a satellite using NASA cFS (https://cfs.gsfc.nasa.gov ) and Ball Aerospace Cosmos (https://cosmosrb.com) software.

Ground Segment

  • Can you hear me now?” – Implement XTCE decoder for a telemetry stream from TCP socket. XTCE is a format for spacecraft data telemetry specified in XML and in use by NASA and ESA (https://www.omg.org/xtce/index.htm).
  • Talk to me, Goose” – using the design document of the satellite and Cosmos software, trigger the satellite into revealing  the flag. Previous challenge of creating XTCE decoder will come handy here.
  • “Vax the Sat” – login into a virtual VAX system and figure out what to do next 🙂

Communication Systems

  • Most of the challenges in this category revolved about decoding information from analog data, figuring out demodulation schemes, frequency spectrum and then finding out weaknesses in communication protocols. We came very close to solve one of these challenges, but got stuck at the final step. Minimodem (http://www.whence.com/minimodem/) and multimon-ng (https://github.com/EliasOenal/multimon-ng ) were very useful here.

Payload Modules

  • “That’s not on my calendar” ­­– another cFS/Cosmos challenge.
  • “SpaceDB” – rescue the satellite in distress using kubOS API (https://www.kubos.com).

Space and Things

  • “Where is the sat”  – requires knowledge of transformation between inertial reference frames, understanding of TLE data to predict location of the satellite for given time.
  • Good Plan? Great Plan! – Create a mission plan for satellite to take a picture of a specific location on the ground. Very much about space operations skills.
  • 1201 Alarm – A recreation of historical Apollo mission, using VirtualAGC simulator, putting you in the shoes of Buzz Aldrin and Neil Armstrong.

Organizers promised to make all challenges and solutions to be available for the public on the  https://www.hackasat.com website by June 19th. We are looking forward to that!

P.S. We (Exodus Orbitals) are also working on a project similar in spirit to Hack-a-Sat, a crowd-flyable cubesat. You can learn more about it (and subscribe to our mailing list) here: