SNOM *760 Firmware Hack

Firnware Images von SNOM sind verschlüsselt und signiert. Wer seine eigenen Updates auf das Telefon bringen möchte, muss das öffentliche Zertifikat am Telefon durch sein eigenes tauschen.

Das ganze funktioniert nur für jene Modelle für welche das Update vorgesehen wurde. Ihr könnt aber auch gerne testen, was passiert wenn man das Update vom D765 auf 760 spielt…

Über die serielle Schnittstelle auf der Rückseite erhält man ein Terminal. uBoot mit einem Tastendruck anhalten und folgendes eintippen.


setenv norm_bootargs 'mem=192M console=ttyS0,115200n8 root=/dev/mtdblock7 rw rootfstype=jffs2 noinitrd init=/bin/sh'

ODER wir aktivieren den Test-Modus mit

setenv development 'yes'

dabei wird der SSH Server gestartet. Der Bootvorgang dauert etwas, da die Zertifikate erstellt werden müssen.

Wir möchten das Zertifikat (firmware1.pub), sucht einfach am Telefon danach..


find / -name firmware1.pub

Wenn wir das haben, können wir die Update-Files schon entpacken….


#!/bin/bash

imgFile="$1"
updateFile="$1"
sigFile="update.sig"
pubFile="firmware-1.pub"
keyFile="update.key"

 


dd if=$imgFile bs=128 count=1 > $sigFile

dd if=$imgFile bs=128 skip=1 2>/dev/null | openssl dgst -sha1 -verify "$pubFile" -signature $sigFile

Jetzt holen wir uns den Key zum entschlüsseln


dd if=$imgFile bs=128 skip=1 count=1 2>/dev/null | openssl rsautl -verify -out $keyFile -inkey "$pubFile" -pubin

und entschlüsseln das Image mit


dd if=$updateFile bs=128 skip=2 | openssl enc -aes128 -d -kfile $keyFile >> image.tar.gz

Nun einfach entpacken und mal schauen was drin ist…

Wenn ihr möchtet, erstellt euer eigenes Schlüssel-Paar, ersetzt den firmware1.pub durch euren eigenen Schlüssel und euer SNOM nimmt nur noch Updates von euch an!

 

Image verpacken:


tar -czvf $imgFolder image

Das vorliegende tar.gz wird nun verschlüsselt


openssl aes256 -kfile $keyFile -in $imgFolder -out firmware

Jetzt signieren wir es mit unserem Privaten Key


openssl dgst -sha1 -sign private.pem -out sign.sha1 firmware

und erstellen anschliessend unser neues SNOM Image


dd if=sign.sha1 of=firmware-s1 bs=1 count=128 seek=1

dd if=firmware of=firmware-s1 bs=1024 seek=128

Fertig.

 

Asterisk 13 hinter OpenSense Firewall

Kurz und Bündig..

Hardware:

  • OpenSense 18.1.4
  • Asterisk 13 auf NanoBSD 11

 

OpeneSense Firewall -> NAT -> PortForwarding

Port 5060, 5004-5020 UDP leiten wir an die IP des Asterisk weiter.

OpenSense Firewall -> NAT -> Outbound

Um einseitige Audioprobleme zu vermeiden nehmen wir folgenden Einstellungen vor

static = YES

Jetzt noch folgendes damit bei einem Modem Neustart die Firewall States gelöscht werden, sonst gibt es Probleme bei der Re-registrierung von SIP Accounts.

abhaken!

Asterisk sip.conf noch

  • canreinvite=no

setzen.

Jetzt können sich SIP Telefone von extern auf die Asterisk Box registrieren und telefonieren.

 

Im nächsten Artikel gibts ZRTP mit Tiptel UC924 und Kamailio oder Asterisk IAX2 Kanal mit 128Bit AES und zusätzlicher BlowFish Verschlüsselung über Zebedee..