Reverse Engineering di una IP Cam (Parte 1): Estrarre il Firmware e i suoi Segreti
Tutto è iniziato con una misteriosa (e molto economica) telecamera IP di sorveglianza della Unotec. Senza documentazione e senza accesso all’interfaccia web, l’unica via per capire come funzionasse era “entrarci dentro”. In questa prima parte, vedremo come sono riuscito a scaricare la configurazione interna e a decodificare il file di backup per trovarne le credenziali nascoste.
Caccia alle API: Il comando Backup
Le telecamere basate su chipset HiSilicon spesso nascondono delle porte di servizio sotto forma di script CGI. Dopo alcuni tentativi mirati a indovinare i percorsi standard usati dai produttori, ho colpito il bersaglio grosso. Inserendo nel browser l’indirizzo:
http://192.168.5.123/cgi-bin/hi3510/backup.cgi
Il browser ha avviato il download di un file chiamato config_backup.bin. Ma non fatevi ingannare dall’estensione: nel mondo dell’IoT, spesso i file “.bin” sono solo archivi standard rinominati per scoraggiare i meno esperti.
Analisi del file: È davvero un binario?
Per capire con cosa avessi a che fare, ho interrogato il file tramite il comando file su Linux. Questo comando non si fida dell’estensione, ma legge i “Magic Bytes” nell’header del file.
$ file config_backup.bin
config_backup.bin: gzip compressed data, from Unix, original size 3276800
Ecco svelato l’arcano: il file è in realtà un archivio .tar.gz. Per aprirlo, è bastato rinominarlo o estrarlo direttamente:
mv config_backup.bin config_backup.tar.gz
tar -zxvf config_backup.tar.gz
Cosa c’è nella “Scatola Nera”?
Una volta scompattato, mi sono trovato davanti parte della struttura del file system della telecamera, la partizione /mnt/ dedicata alle configurazioni. La cartella /mnt/mtd/ipc/conf/ è risultata essere una miniera d’oro di file .ini:
- config_user.ini: Conteneva le credenziali di accesso… difficilissime da indovinare (admin/admin).
- config_md.ini: Le impostazioni del Motion Detection (risultato disattivato).
- wifi.conf: I parametri di rete.
- config_alarm.ini: I trigger per gli allarmi FTP ed Email.
Perché il re-upload fallisce?
Ho provato a modificare i file .ini (ad esempio attivando il movimento) e a ricreare l’archivio per caricarlo nuovamente sulla cam. Tuttavia, sospetto che il firmware esegua un controllo di integrità (checksum) all’avvio. Se il file è manomesso, la telecamera lo scarta e torna alle impostazioni di fabbrica.
Questa scoperta mi ha portato alla fase successiva: se non posso cambiare le regole “da dentro” flashando il file, userò i comandi CGI per istruirla “da fuori”. Ma di questo ne parleremo nella Parte 2.
Rimanete sintonizzati per scoprire come ho usato queste informazioni per intercettare il traffico della cam!




0 commenti