| .. | ||
| README.md | ||
Observe The Wired -- Solution
Overview
CoAP node with observable stream. Recover fragments, decode the firmware blob, then POST the maintenance key.
Steps
- Discover resources
coap-client -m get coap://HOST/.well-known/core
- Get fragments A and B
coap-client -m get coap://HOST/status
coap-client -m get coap://HOST/telemetry/heart
- Observe the stream for fragment C
coap-client -m get -s 30 -o coap://HOST/wired/stream
Capture the JSON notification that includes fragment_c.
- Build XOR key Concatenate fragments in order A + B + C:
WIRED + LAIN + 23 = WIREDLAIN23
- Download firmware blob
coap-client -m get coap://HOST/archive/firmware
Save the base64 data between FIRMWARE_B64_BEGIN and FIRMWARE_B64_END into firmware.b64.
- Decode the blob
python3 decode.py firmware.b64
The JSON includes maintenance_key.
- Unlock and get the flag
coap-client -m post -e '0BS3RV3-L41N-23' coap://HOST/maintenance/unlock
Flag
ESPILON{c0ap_0bs3rv3_th3_w1r3d}
Author
Eun0us