10
2
Fork 0
This commit is contained in:
xenia 2020-06-07 22:04:16 -04:00
parent e9555e363e
commit 0bfad78612
3 changed files with 28 additions and 12 deletions

View File

@ -1,21 +1,21 @@
# BLAHAJ Hack-a-Sat 2020 Writeups
- [aaaa/my-0x20](aaaa/my-0x20)
- [aaaa/digital-filters-meh](aaaa/digital-filters-meh)
- [aaaa/spacebook](aaaa/spacebook)
- [aaaa/like-to-watch](aaaa/like-to-watch)
- [aaaa/attitude-adjustment](aaaa/attitude-adjustment)
- [aaaa/digital-filters-meh](aaaa/digital-filters-meh)
- [aaaa/like-to-watch](aaaa/like-to-watch)
- [aaaa/my-0x20](aaaa/my-0x20)
- [aaaa/seeing-stars](aaaa/seeing-stars)
- [aaaa/spacebook](aaaa/spacebook)
- [comms/56k](comms/56k)
- [comms/phasors-to-stun](comms/phasors-to-stun)
- [ground-segment/can-you-hear-me-now](ground-segment/can-you-hear-me-now)
- [ground-segment/talk-to-me-goose](ground-segment/talk-to-me-goose)
- [ground-segment/i-see-what-you-did-there](ground-segment/i-see-what-you-did-there)
- [ground-segment/talk-to-me-goose](ground-segment/talk-to-me-goose)
- [payload/calendar](payload/calendar)
- [payload/leakycrypto](payload/leakycrypto)
- [payload/spacedb](payload/spacedb)
- [payload/calendar](payload/calendar)
- [satellite-bus/bytes-away](satellite-bus/bytes-away)
- [satellite-bus/magic-bus](satellite-bus/magic-bus)
- [space/wheres-the-sat](space/wheres-the-sat)
- [space/1201-alarm](space/1201-alarm)
- [space/good-plan-great-plan](space/good-plan-great-plan)
- [space/wheres-the-sat](space/wheres-the-sat)

View File

@ -1,2 +1,2 @@
\usepackage{amsmath}
\newcommand{\norm}[1]{\left\lVert#1\right\rVert}
\newcommand{\norm}[1]{\left\lVert#1\right\rVert}

View File

@ -251,7 +251,8 @@ The correct value for `VIDIODE` was determined through trial and error. The rese
After successfully spoofing the telemetry data, we notice in the console output from our session that the scheduler has been activated:
```
critical-tel-check info: Scheduler service comms started successfully at: 3.19.61.44:14764/sch/graphiql
critical-tel-check info: Scheduler service comms started successfully at: 3.19.61.44:14764/sch
/graphiql
```
We visit the provided URL and find another graphiql interface. According to the [KubOS documentation](https://docs.kubos.com/1.19.0/ecosystem/services/scheduler.html), we may issue the following query to enter safe mode and stop any subsequent checks which might kill the scheduler and bring us back to where we started:
```
@ -262,7 +263,8 @@ mutation safe {
We also see that we can dump the task lists for all available modes with the following query:
```
query dump {
availableModes{name, path, lastRevised, schedule{tasks{description, delay, time, period, app{name, args, config}}, path, filename, timeImported}, active},
availableModes{name, path, lastRevised, schedule{tasks{description, delay, time, period,
app{name, args, config}}, path, filename, timeImported}, active},
activeMode{name}
}
```
@ -270,14 +272,28 @@ From the information from the dumped task lists, we can see that there are sever
```
mutation patch {
createMode(name: "patch"){success, errors}
importRawTaskList(name: "patch", mode: "patch", json: "{\"tasks\":[{\"description\":\"Orient solar panels at sun.\",\"delay\":\"0s\",\"time\":null,\"period\":null,\"app\":{\"name\":\"sunpoint\",\"args\":null,\"config\":null}},{\"description\":\"Update system telemetry\",\"delay\":\"1s\",\"time\":null,\"period\":null,\"app\":{\"name\":\"update_tel\",\"args\":null,\"config\":null}}]}"){success, errors}
importRawTaskList(name: "patch", mode: "patch", json: "{\"tasks\":[{\"description\":\"Orien
t solar panels at sun.\",\"delay\":\"0s\",\"time\":null,\"period\":null,\"app\":{\"name\":\"sun
point\",\"args\":null,\"config\":null}},{\"description\":\"Update system telemetry\",\"delay\":
\"1s\",\"time\":null,\"period\":null,\"app\":{\"name\":\"update_tel\",\"args\":null,\"config\":
null}}]}"){success, errors}
activateMode(name: "patch"){success, errors}
}
```
Subsequently, we need to create a mode which will aim the transmission antenna at the ground, activate the antenna, print the flag to the log, transmit the comms buffer, power down the antenna, and reorient the solar panels. We may do this via the following mutation:
```
mutation {
importRawTaskList(json:"{\"tasks\":[{\"description\":\"Orient antenna to ground.\",\"delay\":null,\"time\":\"2020-05-23 16:40:49\",\"period\":null,\"app\":{\"name\":\"groundpoint\",\"args\":null,\"config\":null}},{\"description\":\"Power-up downlink antenna.\",\"delay\":null,\"time\":\"2020-05-23 16:41:09\",\"period\":null,\"app\":{\"name\":\"enable_downlink\",\"args\":null,\"config\":null}},{\"description\":\"Prints flag to log\",\"delay\":null,\"time\":\"2020-05-23 16:41:19\",\"period\":null,\"app\":{\"name\":\"request_flag_telemetry\",\"args\":null,\"config\":null}},{\"description\":\"Power-down downlink antenna.\",\"delay\":null,\"time\":\"2020-05-23 16:41:34\",\"period\":null,\"app\":{\"name\":\"disable_downlink\",\"args\":null,\"config\":null}},{\"description\":\"Orient solar panels at sun.\",\"delay\":null,\"time\":\"2020-05-23 16:41:39\",\"period\":null,\"app\":{\"name\":\"sunpoint\",\"args\":null,\"config\":null}}]}",name:"nominal-op",mode:"transmission"){success,errors}
importRawTaskList(json:"{\"tasks\":[{\"description\":\"Orient antenna to ground.\",\"delay\
":null,\"time\":\"2020-05-23 16:40:49\",\"period\":null,\"app\":{\"name\":\"groundpoint\",\"arg
s\":null,\"config\":null}},{\"description\":\"Power-up downlink antenna.\",\"delay\":null,\"tim
e\":\"2020-05-23 16:41:09\",\"period\":null,\"app\":{\"name\":\"enable_downlink\",\"args\":null
,\"config\":null}},{\"description\":\"Prints flag to log\",\"delay\":null,\"time\":\"2020-05-23
16:41:19\",\"period\":null,\"app\":{\"name\":\"request_flag_telemetry\",\"args\":null,\"config
\":null}},{\"description\":\"Power-down downlink antenna.\",\"delay\":null,\"time\":\"2020-05-2
3 16:41:34\",\"period\":null,\"app\":{\"name\":\"disable_downlink\",\"args\":null,\"config\":nu
ll}},{\"description\":\"Orient solar panels at sun.\",\"delay\":null,\"time\":\"2020-05-23 16:4
1:39\",\"period\":null,\"app\":{\"name\":\"sunpoint\",\"args\":null,\"config\":null}}]}",name:"
nominal-op",mode:"transmission"){success,errors}
}
```
Finally, per the challenge directive, we must have the satellite enter low-power mode: