cyberchallenge-modem/update
2020-09-23 11:32:09 +02:00
..
Readme.md Doc update 2020-07-22 15:02:04 +02:00
update.sh BusyBox tar does not support gz; use plain tar archives 2020-09-23 11:32:09 +02:00

Istruzioni

Intro

Questo script consiste nell'ultimo step della challenge. Questo script viene eseguito con sudo dall'interfaccia nella pagina di aggiornamento firmware.

Da inserire in /etc/sudoers:

www-data ALL=(root) NOPASSWD: /bin/bash /root/update.sh

Per generare la chiave per firmware le immagini:

openssl genrsa -out key.pem 2048
openssl rsa -in key.pem -outform PEM -pubout -out pub.pem

Per firmare un file:

openssl dgst -sha256 -sign private.pem -out update.tgz.sig update.tgz
cat update.tgz.sig > update.tgz.cc
cat update.tgz >> update.tgz.cc

Vulnerabilita'

La vulnerabilita' presente e' una race condition di tipo time-of-check to time-of-use, ovvero la firma del pacchetto di update viene controllata in un punto del codice e poi estratto successivamente.. C'e' quindi una brevissima finestra di tempo in cui un attaccante puo' sostituire il pacchetto con uno non firmato. Il bug si potrebbe prevenire ad esempio garantendo che una volta iniziata la procedura il file non possa essere modificato da utenti non privilegiati modificandone i permessi.

Exploit