2 puan yazan GN⁺ 2025-07-28 | 1 yorum | WhatsApp'ta paylaş
  • İki siber güvenlik öğrencisi, eğlence ve meydan okuma için çamaşır makinesi hackleme girişiminde bulundu
  • Çamaşır makinesinin mobil uygulamasını tersine mühendislikle analiz ederek API ve şifreleme yöntemini incelediler
  • XOR şifreleme anahtarını bularak çamaşır makinesi durum verilerini gerçek zamanlı olarak okuyup çözümleyen bir yöntem geliştirdiler
  • Discord webhook kullanarak, çamaşır makinesinin çalışma durumu ve tamamlanma bildirimlerini otomatikleştiren bir bildirim botu yaptılar
  • Gelecekte diğer "aptal" ev aletlerine de benzer şekilde akıllı ev otomasyonu uygulamayı planlıyorlar

Giriş

  • Yazar, yeni taşındığı evde bir arkadaşıyla birlikte çamaşır makinesi hackleme projesi yürüttü
  • Amaç saf kullanım kolaylığından çok eğlence ve teknik meydan okumaydı
  • Çamaşır makinesi ve diğer ev aletlerini akıllı ev sistemine bağlama merakı çıkış noktası oldu
  • Doğrudan hackleyerek kazanılan deneyim, gerçek dünya tersine mühendislik pratiğine de yardımcı oldu

Arka plan

  • Evde varsayılan olarak Wi-Fi destekli akıllı bir çamaşır makinesi bulunuyordu
  • Bu çamaşır makinesi, mobil uygulama üzerinden ilerleme bildirimleri gönderebiliyordu
  • Aynı anda yalnızca bir kişi uygulamayla eşleyebildiği için paylaşım kullanışsızdı
  • Bunu bir fırsat olarak görüp, uygulamanın kısıtları olmadan birden fazla kişinin durum bildirimi almasını sağlamaya karar verdiler

Kapı zili örneği

  • Evin kapı zili, 433MHz kablosuz sinyal ile bildirim gönderen bir sistemdi
  • Yazarın arkadaşı, kapı zili sinyalini algılayıp Discord sunucusuna bildirim gönderen bir sistem yaptı
  • Bu sistem, gerçek kapı zili sesinin yanında yedek bildirim olarak da kullanıldı
  • Bu başarılı örneği gördükten sonra çamaşır makinesi için de aynı şekilde otomatik bildirim entegrasyonunu denemeye karar verdiler

Plan ve hazırlık

  • Yazar, API'nin nasıl çalıştığını anlamak için mobil uygulamayı reverse engineering ile incelemeye karar verdi
  • Akıllı çamaşır makinesinden doğrudan ağ trafiği yakalamak için OpenWRT yönlendirici kullandı
  • Çamaşır makinesini geçici bir Wi-Fi ağına bağlayarak paket yakalama ile iletişim desenlerini analiz etmeyi denedi

Çamaşır makinesi trafiğinin analizi

  • Çamaşır makinesi; kendi IP'si, 255.255.255.255 (broadcast), harici sunucular (HTTP API, şifreli trafik) ve uygulamayla doğrudan HTTP iletişimi (port 80) gibi çeşitli yollar üzerinden trafik gönderip aldı
  • Özellikle mobil uygulamayla doğrudan iletişim kuran bölüme odaklanıp bunu ayrıntılı biçimde analiz ettiler

Çamaşır makinesi API'sinin tersine mühendisliği

  • Uygulama sürekli olarak iki endpoint kullanıyordu: /http-read.json?encrypted=1 (durum okuma) ve /http-write.json?encrypted=1 (komut gönderme)
  • Asıl ilgi okuma endpoint'indeydi ancak yanıt verisi şifreliydi (HEX, HTML tipi)
  • Query parametresi olarak encrypted=0 verilse bile yalnızca çözümleme başarısızlığı ya da 400 hatası alındı

Şifreleme analizi ve anahtarı bulma

  • Bunun XOR tabanlı basit bir şifreleme olduğu tahminiyle, CyberChef gibi çevrimiçi araçlarla brute force denemeleri yapıldı
  • Referans proje (CandySimplyFi-tool) içinde anahtar çıkarmayı başarmış bir kod bulundu ve bu sayede birkaç saniye içinde anahtar geri kazanılıp veri çözüldü
  • Veri şemasını daha iyi anlamak için ofalvai/home-assistant-candy açık kaynak koduna da başvuruldu

Çamaşır makinesi durum değerleri deneyi

  • Program değiştirme, sıcaklık ve devir ayarı, çalıştırma/durdurma/bitirme gibi çeşitli fiziksel işlemler sırasında verideki değişimler gözlemlendi
  • Durum değerlerindeki başlıca alanlar:
    • Pr: program seçim düğmesinin durumu
    • PrPh: devam eden yıkama döngüsü
    • Temp: ayarlanan sıcaklık
    • SpinSp: ayarlanan sıkma devri
    • RemTime: kalan süre (dakika; bazen 10 dakikada sabit kalma durumu olabiliyor)
  • Dezavantaj: bazı değerler (ör. SpinSp) gerçek değerle farklı olabilir

Bildirim otomasyonu betiğinin geliştirilmesi

  • Çamaşır makinesi API şeması, şifreleme anahtarı, veri okuma ve çözümleme ile durum tespiti tamamlandı
  • Discord webhook kullanan bir bildirim botu betiği geliştirildi
  • Temel çalışma sırası:
    1. Çamaşır makinesini poll et
    2. Durum değişikliği yoksa uykuya geç ve tekrar et
    3. Değişiklik algılanırsa son mesajı güncelle veya yeni mesaj gönder
    4. Tekrar et

Kapanış ve gelecek planları

  • Kapı zili ve çamaşır makinesi bildirim otomasyonunda şimdiden başarı sağlandı
  • İleride bulaşık makinesi, kurutucu, TV gibi cihazlara da benzer otomasyonlar (akıllı priz, titreşim sensörü, IR blaster) uygulamayı düşünüyorlar
  • Webcam kullanarak basit bir güvenlik sistemi de denemeyi planlıyorlar

Sonuç

  • Bu proje deneyimi sayesinde gerçek dünya IoT tersine mühendisliği ve basit akıllı ev hackleme konularında temel bilgi kazanıldı
  • Hem pratiklik hem de eğlence sunan bir örnek oldu

1 yorum

 
GN⁺ 2025-07-28
Hacker News görüşleri
  • Öncelikle bunun asıl yazıya bir eleştiri olmadığını belirteyim; bence gerçekten ilginç bir cihaz analiz sürecini harika şekilde anlatmış
    Cihaz Android uygulamasıyla iletişim kuruyorsa, apk-mitm öneririm
    Bu araç, APK içindeki bilinen sertifika pinning yöntemlerinin neredeyse tamamını kaldırıyor ve manifest dosyasını yeniden yazarak root olmadan yerel sertifikaların kullanılmasını sağlıyor
    Orijinal uygulamayı kaldırıp apk-mitm çıktısını sideload ederseniz, normal stok cihazlarda mitmproxy kullanabilirsiniz
    Bir diğer önemli nokta da şu: uygulamaya şifreli veri gönderiliyorsa ve uygulama bunu çözüp gösteriyorsa, anahtar ya uygulamanın bir yerindedir ya da bir yerden alınıyordur
    APK’yi jadx ile incelerseniz neredeyse Java kodu biçiminde görebilirsiniz; bazen anahtarı da bulabilirsiniz
    Ama bazı üreticiler şifreleme işlemini native koda taşıyor; o durumda Ghidra gibi araçlarla tersine mühendislik yapmak gerekiyor
    Bu süreç bazen inanılmaz sıkıcı, bazen de aşırı eğlenceli olabiliyor
    Yazarın mevcut başka insanların araştırmalarından yararlandığını biliyorum ama kimsenin daha önce yapmadığı bir iş olsa bile vazgeçmeden denemeye kesinlikle değer diye düşünüyorum
    Sonuçta size ait bir cihazın nasıl çalıştığını ortaya çıkarırken çok şey öğreniyorsunuz

    • Cihaza özel değil ama ben de bir uygulamadaki sorun yüzünden otomatik güncellemeleri kapatıp eski bir sürüme dönmüştüm
      Sonunda bir noktada sunucu erişimi engellendi ve sertifika pinning konusunu tesadüfen öğrenince bu repo’yu denedim; gerçekten tertemiz çözdü
      Eski reklam URL’si de gitmiş olmalı ki reklamlar da görünmez oldu
      Geliştirici şirket zaten uygulamayı giderek daha kötü hale getirmeye odaklanmış gibiydi, o yüzden hiç üzülmedim
  • Ben Bosch çamaşır makinesini farklı bir amaçla kullanıyorum (asıl yazıdakinden farklı olarak): evin öbür ucundayken makinenin durumunu izlemek için
    Bosch API sayesinde yıkama döngüsünün bitip bitmediğini ve kapağın açılıp açılmadığını anlayabiliyorum
    Şu anda temel API sürümünü kullanıyorum ama PoC tamamlandı; ileride yerel barındırma seçeneğine geçmeyi planlıyorum
    Home Assistant ile döngü bittiyse ama kapak açılmadıysa, bu hâlâ içeride ıslak çamaşır olduğu anlamına geliyor
    Bu yüzden her 15 dakikada bir telefonuma ve yalnızca eşim evdeyse onun telefonuna da çamaşır bildirimi gidecek şekilde ayarladım
    Çok basit ve kusursuz çalışıyor

    • Benim çamaşır makinem 90’lardan kalma eski bir model, bu yüzden zamanlayıcı düğmesine göre çalışıyor
      Bilgisayar ya da sensör yok; sadece su alma aşamasını ayrıca algılıyor
      Her zaman 40 dakikalık zamanlayıcıyı ayarlıyorum ve iş bitiyor; alarm kapatma özelliği de var, bundan daha basit olamaz

    • Ben de benzer bir şeyi küçük bir fırına uygulamayı planlıyorum
      API ya da bağlantı özelliği yok ama akıllı prize takıp güç tüketimini ölçerek bekleme/çalışma durumunu izleyip bildirim verme fikri var

    • Yatmadan önce çamaşır çalıştırıp ertesi güne bıraktığım sık oluyor ama benim makinemde çamaşırları gece boyunca taze tutan “extended tumble” benzeri bir özellik var
      Biraz daha fazla su harcıyor ama akşam rutinimi kurtarıyor ve gece saatlerinde elektriği kullanmaya da yardımcı oluyor
      Electrolux’ümü gerçekten seviyorum; muhtemelen diğer markalarda da benzer bir özellik vardır

    • Ben 15 yılı aşkın süredir G-Shock 5600 saatimi çamaşır zamanlayıcı uyarısı için kullanıyorum
      Yıkamayı başlatırken toplam süreyi saatin zamanlayıcısına ayarlıyorum; bitince bip sesiyle haber veriyor
      API olsun olmasın, marka fark etmeksizin kullanılabiliyor

    • Gerçekten zarif bir çözüm
      Basit bir mantık ama günlük hayatta somut fayda sağlıyor

  • Ben de bu sıralar bir buzdolabının donanımını hack’liyorum
    Yazılım değil; kamp aracı için pahalı bir buzdolabı ve gaz/12v/220v desteği var
    Elektronik kontrol bölümünde yangın çıktı; kablolar ve iç kısımlar zarar gördü ama buzdolabının kendisi sağlam
    Madem bütün parçaları değiştirmem gerekiyor, 250 dolar verip yeni bir kontrol kartı almak yerine eski gaz kazanı parçalarını bir araya getirip yeni bir sistem kurmayı düşünüyorum
    Kazan anakartında ateşleme sistemi zaten mevcut; mantığı ve güvenlik kısımlarını doğru kurarsam gaz modunda çalıştırabilirim gibi görünüyor
    Böylece yeni bir buzdolabı almam gerekmeyecek ve 9 yaşındaki oğluma elektronik öğretmek için de güzel bir proje olacak
    Elbette gaz olduğu için tehlikeli olabilir ama sonuçta hep eğlenceli oluyor ve hack bitince eleştiriler de kayboluyor
    İlgilenirseniz tüm süreci ayrı bir gönderi olarak da paylaşabilirim

  • Ben çamaşır makinesi/kurutucuya Zigbee titreşim sensörleri bağlayıp Home Assistant ile kullanıyorum
    Akıllı priz üzerinden akım/voltaj izleme yöntemini hiç düşünmemiştim; iyi fikir gibi geldi

    • Bizim evde çamaşır makinesi ve kurutucu akıllı prize bağlı, güç tüketimi MQTT üzerinden Node-RED’e gönderiliyor
      Basit tetikleyici koşullarıyla makinenin başlama/bitiş anında panel güncellemesi ve e-posta bildirimi otomatik çalışıyor
      Uygulama ve Bluetooth özellikleri de var ama uygulama telefonumun kamerasına, sesine ve rehberine erişim istediği için kullanmayı düşünmüyorum
      HA entegrasyonu için aşağıdaki bağlantıda da bir şeyler yapılmış gibi görünüyor
      https://github.com/home-assistant-HomeWhiz/home-assistant-HomeWhiz/blob/main/README.md
  • Bence tam da bu tür yazılar Hacker News’in özünü oluşturuyor

    • Keşke gerçek hacking’e, yani hobi amaçlı modifiye işlerine dair daha fazla yazı olsa; son zamanlarda her yer AI/LLM konuşması gibi geliyor

    • Bu tür donanım hack’lerini seviyorsanız https://hackaday.com/ sitesini de şiddetle tavsiye ederim

  • Root edilmemiş Android’de kişisel sertifika kurmak biraz zahmetli
    Yalnızca sistem sertifika deposuna eklenebiliyor ve genelde Magisk modülü gerekiyor
    Daha kolay yöntem, PC’de eski bir Android emülatörü çalıştırıp sertifikayı oraya eklemek ve trafiği Burpsuite ya da mitmproxy’ye yönlendirmek
    Cihaz değiştirmenize de gerek kalmıyor
    APKLab ya da Jadx ile uygulama kodunu inceleyerek anahtar türetme algoritmasını bulabilirsiniz gibi geliyor
    Uygulama ile çamaşır makinesi yalnızca aynı ağdayken mi çalışıyor, merak ettim; o kısmı sevdim

  • “3 saatlik” (gerçekte 4-5 saat) bir yıkama döngüsü lafı beni şaşırttı
    Benim makinemde normal eco modu 30 dakikadan bile kısa sürüyor ve bittiğinde çok yüksek sesli bir uyarı veriyor
    Kısa döngü ile bildirim birleşince ayrıca karmaşık bir teknik çözüme ihtiyaç kalmıyor

    • Muhtemelen yorum yapan kişi ABD’dedir
      Avrupa’daki çamaşır makineleri daha düşük su/elektrik tüketimi gereksinimleri yüzünden daha uzun sürüyor
      Yazıdaki cihaz da yıkama+kurutma kombinesi olduğu için daha da uzun sürüyor gibi
      Bizim evde normal mod bile 104 dakika sürüyor; fazla doldurulursa 3 saate kadar çıkabiliyor

    • Uzun döngüler, enzimli deterjan ve aktif oksijenli ağartıcı bileşenleri kullanıldığında mikropları gidermede daha etkili oluyor
      30 dakikalık program çamaşırı adeta sadece “durulamak” gibi
      https://pubmed.ncbi.nlm.nih.gov/25207988/

    • Benim kurutucum kanalsız bir model (açıkçası tam bir dert), bu yüzden 3 saat sürüyor
      Yıkamadan kurutmanın sonuna kadar toplam 4,5 saat gidiyor
      Kullandığım cihazlar arasında beni en çok hayal kırıklığına uğratan bu oldu
      Bazen doğru düzgün kurutmuyor bile

  • Ortada bir şifreleme görünmediğini belirtmiş
    İlk ekran görüntüsündeki (cyberchef.avif) input penceresindeki verinin basit, şifrelenmemiş hex ASCII olduğunu söylüyor
    Örnek olarak 7D’nin {, 0D0A’nın CRLF, 09’un TAB, 22’nin " anlamına geldiğini göstermiş
    Yani bunun zaten çözümlenmiş düz metin olduğunu, XOR şifreleme açıklamasının buna uymadığını düşünüyor
    Ayrıca ekran görüntüsündeki anahtar değerinin de bayt sınırları ve hizalama açısından tutarlı görünmediğini, gerçek girişteki boşluklarla da örtüşmediğini söylüyor
    Bu yüzden ekran görüntüsünün sonradan oynanmış ya da düzenlenmiş olup olmadığını sorguluyor
    Neden böyle olduğunu, orada tam olarak ne yaşandığını merak ettiğini söylüyor

  • “For now, I plugged this key into CyberChef, and was able to decrypt the data.” ifadesiyle işaretlenen görsel bağlantısının bozuk olduğunu bildiriyor
    Belirli HTML öğesini ve ilgili bağlantıyı da ayrıntılı biçimde paylaşıyor

  • “Çamaşır makinesi kendi kendisiyle aşırı derecede iletişim kuruyordu” kısmı için, bunun ağ yığını tasarımcısının loopback arayüzü kavramını bilmemesinden kaynaklanmış olabileceğini söylüyor
    Kendi IP’sine çok sayıda paket göndermiş, ayrıca 255.255.255.255 adresine de saniyede paket yolluyormuş; ama yazar bununla pek ilgilenmemiş

    • Bu gereksiz görünebilir ama ARP ile ilgili trafik olabilir
      IoT cihazlarda buna sık rastladım; bazen IP çakışması ya da değişimini tespit etmek için kullanılıyor
      Ben de benzer düşünüyorum