Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Jak można było się dostać na roota do Twojego Kindla, posiadając tylko e-mail?
Tutaj ciekawa seria podatności, za którą Amazon wypłacił $18 000.
Procedura wyglądała następująco:
- Trzeba było poznać maila ofiary w domenie @kindle.com -> tam można wysyłać książki w formacie mobi
- 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)
- Dalej, badacz znalazł podatność buffer overflow w obsłudze (na Kindlu) formatu JPEG XR
- Mógł zatem przygotować ebooka, w którym po kliknięciu na link wykonywał się exploit.
- 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
–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
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! (…)”
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”.
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?
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.
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
O ile wiem, lepiej sie nie pakowac w Kindle Swindle.
https://www.stallman.org/amazon.html
i szukaj „kindle”.
https://boingboing.net/2012/10/22/kindle-user-claims-amazon-dele.html