Undersöka firmware på Intenoprodukter

Följande är en guide för att komma igång med att undersöka firmware till Inteno-produkter, den är skriven utifrån ett Linux-perspektiv.
Intenos produkter använder processorer från Broadcom med arkitekturen MIPS32, det går med lite pillande att köra firmware under emulering med Quemu.

Ladda ner firmware

Du behöver installera binwalk och git

sudo apt-get install binwalk git
samt firmware mod kit. FMK laddas ned från github med
git clone https://github.com/mirror/firmware-mod-kit

Senaste firmware kan fås genom att kontakta Inteno direkt eller laddas ned från Netatonce på

wget http://voipprov.netatonce.net//firmware/FG500R1_4.12NVT02.51_CFE_20150130 -U "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)"

Observera att user agent måste vara
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)

Officiell firmware från Inteno för FG500 och XG6846

FG500R1_4.12ITT02.27_CFE_20131217

XG6846_4.12ITT01.69_20150430

Packa upp firmware

Börja med att packa upp filen

sudo binwalk -eM FG500R1_4.12NVT02.51_CFE_20150130
Använd sudo för att behålla filrättigheterna. Output ser ut liknande detta:

Gå in i den skapade mappen, där skall följande filer finnas

Filerna består av Broadcom's bootloader, Linux-kärna samt root-filsystemet. Det som är intressant är root-filsystemet i squashfs-root. Om inte binwalk lyckas packa upp det korrekt, får man använda firmware-mod-kit.

/usr/bin/fmk/unsquashfs_all.sh F420.squashfs

Undersöka filsystemet

Få fram default admin password, som gäller vid hårdvarureset:

  cat squashfs-root/etc/default.cfg | grep Admin | sed -n 's:.*<AdminPassword>\(.*\)</AdminPassword>.*:\1:p' | base64 -d ; echo
Ger för denna firmware svaret, det är avkodat från base64, är det blankt så gäller admin/admin:
  uKwu4ptq9vWbZtVp
Få fram default support password, på denna firmware är det samma som för admin, om det är blankt gäller support/support:
  cat squashfs-root/etc/default.cfg | grep Support | sed -n 's:.*<SupportPassword>\(.*\)</SupportPassword>.*:\1:p' | base64 -d ; echo
Motsvarande gäller för user password, normalt blankt så då gäller user/user:
  cat squashfs-root/etc/default.cfg | grep User | sed -n 's:.*<UserPassword>\(.*\)</UserPassword>.*:\1:p' | base64 -d ; echo
Kolla user-agent som används för att ladda ner uppdateringar och config-filer:
  strings squashfs-root/bin/xmlprov | grep User-Agent
Vilket bör ge svaret:
  User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
Få fram URL för configfiler:
  cat squashfs-root/etc/default.cfg | grep X_XAVI_COM_XmlprovTftpUrl | sed -n 's:.*<X_XAVI_COM_XmlprovTftpUrl>\(.*\)</X_XAVI_COM_XmlprovTftpUrl>.*:\1:p'
Bör ge svaret:
  voipprov.netatonce.net,/$MAC$.enc
Få fram ACL (vilka ip-nr som kan ansluta web-interface):
  cat squashfs-root/etc/default.cfg  | grep -e AccAddr -e AccNet | sed -e 's/<[^>]*>//g' | sed -e 's/[[:space:]]*$//' | sed -e 's/^[[:space:]]*//' | awk 'NR%2{printf "%s / ",$0;next;}1'
Bör ge svaret:
  10.1.0.0 / 255.255.0.0
  192.168.1.0 / 255.255.255.0
  85.195.63.0 / 255.255.255.0
  217.10.96.0 / 255.255.255.0

I katalogen webs ligger alla dokument för web-servern.


(cc) Daniel Vindevåg, daniel-at-vindevag-dot-com Creative CommonsLicense
This work is licensed under a Creative Commons Attribution 4.0 International License.