Żądny wiedzy? Wbijaj na Mega Sekurak Hacking Party w maju! -30% z kodem: majearly

Jak można było się dostać na roota do Twojego Kindla, posiadając tylko e-mail?

23 stycznia 2021, 14:52 | W biegu | komentarzy 6

Tutaj ciekawa seria podatności, za którą Amazon wypłacił $18 000.

Procedura wyglądała następująco:

  1. Trzeba było poznać maila ofiary w domenie @kindle.com -> tam można wysyłać książki w formacie mobi
  2. Amazon umożliwia zdefiniowanie tzw. zaufanych maili (z których mogą być wysyłane książki), ale maile te można było sfałszować (jeśli dana domena nie posiadała np. zdefiniowanego SPF-a)
  3. Dalej, badacz znalazł podatność buffer overflow w obsłudze (na Kindlu) formatu JPEG XR
  4. Mógł zatem przygotować ebooka, w którym po kliknięciu na link wykonywał się exploit.
  5. Wykonanie kodu realizowane było z uprawnieniami użytkownika framework, więc do pełnego „szczęścia” jeszcze potrzebna była eskalacja do roota. To ostatnie udało się dzięki możliwości kontrolowania jednego parametru, który pewien proces przekazywał do gdb:
${GDB} –quiet \
–se „${PROCESS_EXE}” \
–pid ${CURRENT_TID} \
–batch \
-ex „bt” \
-ex detach

Jak widzicie ${CURRENT_TID} nie jest w cudzysłowach. I niby były tutaj sprawdzenia (tj. czy ${CURRENT_TID} jest liczbą), ale można je było łatwo ominąć. Po pierwsze odpalana była funkcja atoi() na naszym ID i sprawdzane czy wynik nie jest 0.

Ale wystarczy odpalić atoi(„222abc”), tj. zacząć od liczby i wynik będzie już 222.

Kolejne sprawdzenie też nie było zbyt fortunne:

“$(echo “$CURRENT_TID” | grep ‘^[0–9]*$’)” != “”

Do ominięcia wystarczy bowiem użyć znaku końca linii. Czyli np. taki ciąg: 1\nsome string omija oba sprawdzenia.

Cała procedura na filmiku poniżej:

–ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. M

    Z tego co ja zrozumialem, problemem nie jest brak SPF, tylko fakt ze Kindle nie weryfikuje SPF i calej reszty:

    „(…) Wait, a predefined list of approved addresses? So what is the issue? Well, email authentication is still not as widespread as you may think. Since many email servers still don’t support authentication, *it is not unreasonable to assume that Amazon will not verify the authenticity of the sender.*

    To test this, I used an email spoofing service to spoof an email message and send an e-book to my device. To my pleasant surprise, the e-book appeared on the device! (…)”

    Odpowiedz
    • Ciężko powiedzieć (bo w sumie nie piszą jak definiują owo „authentication”), więc przyjąłem bardziej konserwatywne założenia. Plus piszą jeszcze (przy fixie):

      „In cases where Amazon cannot authenticate the sending email address, they now send a verification link to the approved address”.

      Odpowiedz
    • Peter

      Aaaa, to dlatego od kilku miesięcy trzeba ręczne potwierdzić dostarczanie książek, mimo zaufanego maila.
      Swoją droga, kto klika w linki na kindlu?

      Odpowiedz
      • bb

        Trzeba potwierdzac jak identyfikator mejla Kindle’owego oraz identyfikator mejla z ktorego ksiazki przychodza sa takie same. Randomowy adres @kindle albo jakis prefix poprawia problem.

        Odpowiedz
  2. hmm

    amazon to by mogl sie zajac dostawa czesci do swojego fire phone.
    musialem kupic zamiennik baterie i zestaw ifixit do otwarcia a teraz okazuje sie, ze chyba padl rowniez port ładowania, oczywiscie dostepny tylko zamiennik z chin

    Odpowiedz
  3. Szwindel Kindel
    Odpowiedz

Odpowiedz na hmm