Sonos Akıllı Hoparlör Güvenlik Açığı Saldırganların Uzaktan Kod Çalıştırmasına İzin Veriyor


Sonos Akıllı Hoparlör Güvenlik Açığı

Ağustos 2024’ün başında Sonos, Uzaktan Kod Yürütme ile ilişkili iki güvenlik açığını düzelttikleri bir güvenlik duyurusu yayınladı. Bu güvenlik açıklarına CVE-2023-50810 ve CVE-2023-50809 atandı.

Bu açıkların Sonos One ve Sonos Era-100 Bluetooth hoparlörlerde mevcut olması, tehdit aktörlerinin mikrofonu kaydedip gizli ses kaydı elde etmesine olanak tanıyordu.

DÖRT

Bunun yanı sıra, bu açıklar kablosuz ağ üzerinden çekirdeği tehlikeye atmak ve cihazı, cihazın menzili dahilindeki tüm sesleri yakalayan bir dinleme cihazına dönüştürmek için de kullanılabilir.

Ancak bu özel sömürü yöntemi Black Hat USA 2024 konferansında sunuldu.

Free Webinar on Detecting & Blocking Supply Chain Attack -> Book your Spot

Sonos Akıllı Hoparlör Güvenlik Açığı

Cyber ​​Security News ile paylaşılan raporlara göre, CVE-2023-50809, işlevde kullanılan KeyData parametresinin bir WPA2 Handshake ile ilişkili olduğu ortaya çıktı. gtk_uzunluğu 255 değeri verilen parametre.

Ancak, parametre için belirlenmiş bir maksimum sınır sınırı yoktu. Bu özel denetim eksikliği Overflow saldırıları için kullanıldı.

Hatanın tetiklenmesi için aşağıdaki gibi birkaç koşul vardı:

  • Anahtar verilerinin başarıyla şifresinin çözülmesi gerekir, bu da Snonce ve Anonce değiştirilene kadar WPA2’de yapılamaz
  • Güvenlik Açığı işlevi Mesaj 3’te (M3) tetiklenmelidir ve
  • The wpa_yalvaran AP modunda kullanılabilir.

Tüm bu koşulları başarıyla atlatıp doğruladıktan sonra Sonos cihazı, PC’nin kontrol altına alınmasına yol açan bir Çökme ile sonuçlandı. Downstream bozulması, erken çıkış işlevine ek IE’ler eklenerek hafifletildi.

Sonos One – Havadan Güvenlik Açığı

WPA anahtar materyalini işleyen ve ayrıştıran kod yolunda birden fazla savunmasız tasarım örüntüsü belirlendi.

Dikkat çeken tasarım deseni sorunlarından biri de şuydu: WpaAyrıştırEapolAnahtarVerileri WPA2 dörtlü el sıkışma sürecinde kullanılan fonksiyon.

Bu, yığın arabellek taşması elde etmek için bir araya getirilebilen birkaç güvenlik açığından oluşur. İki sorun bunu mümkün kıldı.

Bunlardan biri IE uzunluğunun uygunsuz bir giriş doğrulamasıydı ve diğeri de GTK IE Uzunluğunun kontrol edilmeyen maksimum uzunluğuydu.

Kısa bir genel bakış sağlamak için, KdenLen değişken tamsayı taşması açısından kontrol edilmedi, bu da bilgi öğesinin uzunluk alanının 6’dan küçük olması koşuluna yol açtı.

Bu durum ayrıca 32 baytlık GTK yığın arabelleğinden çok daha büyük bir kopyalamaya neden oldu ve yığın arabelleğinin taşmasına yol açtı.

İkinci sorun ise şu sebepten dolayı ortaya çıkıyor: anahtarVeri kopyalanan parametre gtk_buf değerin küçük veya eşit olup olmadığını kontrol etmek için doğrulanmayan yığın arabelleği gtk_buf‘nin maksimum boyutu (32 bayt).

Çökme dökümü (Kaynak: NCCGroup)

Bu iki sorunun zincirlenmesiyle, alt taşma ve uygunsuz doğrulama koşullarını kullanarak maksimum GTK arabellek uzunluğunu aşan bir değerin kopyasını tetikleyen hatalı biçimlendirilmiş bir bilgi öğesi oluşturuldu.

Bu Saldırının Arka Planı

Saldırı Metodolojisi (Kaynak: NCCGroup)

WPA2 dört yönlü el sıkışması, istemci ile erişim noktası arasında değiştirilen toplam 4 paketten oluşur.

Bu cihazların el sıkışmasında yer alan önemli bilgilerden bazıları Anonce ve Snonce (her iki cihaz tarafından üretilen rastgele değerler), SSID ve önceden paylaşılan Anahtar’dır (PSA).

Bunlar arasında PSA kablosuz olarak paylaşılmaz, ancak istemci ve erişim noktası tarafından PBKDF2 kullanılarak Çift Yönlü Anahtar (PMK) hesaplamak için dolaylı olarak kullanılır.

Aslında, istemci ile yönlendirici arasında gerekli olan asgari bilgi alışverişi sağlandıktan sonra (Anonce, Snonce), sonraki el sıkışma, hesaplanan anahtar materyali ile şifrelenen ek bilgi öğelerini içeriyordu.

İzni Döndürme

Uzaktan kod yürütme işlemi gerçekleştirildikten sonra araştırmacılar, tehlikeye atılan cihaz üzerinde ek izinler ve yetenekler elde etmek için erişimlerini nasıl değiştireceklerini test ettiler.

Bu, Pointer EAPOL’u (LAN Üzerinden Genişletilebilir Kimlik Doğrulama Protokolü) edinerek, yığın işaretçisini ve EAPOL işaretçisini ayarlayarak ve değiştirilmiş yığın işaretçisiyle pivot yaparak yapıldı.

İçeri girdikten sonra araştırmacılar, yürütülebilir olarak işaretlenebilen keyfi bir sanal adres alanı olan set_memory_x’i kullandılar. Bu set_memory_x fonksiyonu, Heap’i yürütecek EAPOL işaretçisiyle sağlandı.

Kod yürütme ve kabuk kodu, çekirdekte run_cmd ile call_usermodehelper kullanılarak elde edildi.

Ancak, istismar sonrası teknikler devreye girerek, yükün BussinessBox’a telnet yoluyla bağlanmasıyla, cihazın yakınından gizlice ses kaydı alınabilmesi sağlandı.

Exploitin ve Rust implantının demosuna buradan ulaşabilirsiniz.

Mikrofonu Yakalamak ve İndirmek için Kullanıcı Arayüzüne Sahip Sonos Aygıtı Kullanıldı (Kaynak: NCCGroup)

Sonos Era-100 – Güvenli Önyükleme Baypası

Bu güvenlik açığı Sonos Era-100 U-Boot’taki üç sorundan dolayı mevcuttur. Sorun, parola ile kilitlenmiş ve kısıtlanmış komutlar kullanan değiştirilmiş U-boot uygulamasının kullanımıyla ilgiliydi.

Ayrıca Era-100 U-Boot, henüz eMMC’de (gömülü MultiMediaCard) R/W yeteneği olmayan EL3’teki anahtarlar kullanılarak şifreleniyor.

  • İlk sorun, 0x500000 ofsetinde flaştan ortam yüklemeye çalışmaktı. CONFIG_ENV_IS_NOWHERE ayarlanmamıştır ve “bootcmd” ayarlanmasına izin verir.
  • İkinci konu ise şu şekildeydi: sonosboot çekirdeği yüklemek ve doğrulamaktan ve ardından “”e geçirmekten sorumluyduönyükleme“. Dahası, önyükleme u-boot ortamını kullanır ve linux çekirdeğine geçirir.
  • Üçüncü sorun, her zaman 0x100000 adresine yüklenen Özel Sonos resim başlığının kötüye kullanılmasıyla bağlantılıydı. Ek olarak, çekirdek_ofseti normalde 0x40’tır ancak u-boot tarafından zorunlu kılınmaz ve ayrıca imza denetiminin geçmesine izin verir ve bu da bağlamda bir kabukla sonuçlanır /başlat (kök).

Ayrıca, Black Hat USA 2024’te sunulan sunumun tamamı burada bulunabilir. NCCGroup araştırmacıları tarafından yayınlanan teknik dokümana bu bağlantıdan ulaşılabilir.

Are you from SOC and DFIR Teams? Analyse Malware Incidents & get live Access with ANY.RUN -> Get 14 Days Free Access



Source link