Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
Zdobył roota na radiu w swoim Nissanie. Wystarczyło odpowiednio nazwać nośnik USB…
Ciekawa historia, która finalnie doprowadziła do w miarę prostego zdobycia roota na radiu (czy raczej systemie multimedia) w Nissanie Xterra, który należał do badacza.
Na początek badacz zastanawiał się czy zamiast pendrive z muzyką dałoby się do portu USB podłączyć jakieś inne urządzenie? Np. klawiaturę. W tym celu użył narzędzia umap2scan, odpalił skanowanie i po chwili:
[ALWAYS] Found 1 supported device(s) (out of 1098):
[ALWAYS] 0. vid:pid 077b:2226, vendor: Linksys, product: USB200M 100baseTX Adapter,
driver: drivers/net/usb/asix_devices.c, info: device not reached set configuration state
Czyli możemy podłączyć kartę sieciową na USB :) Np. taką:
Co dalej? DHCP nie działał w tej sieci, ale sniffowanie ruchu na karcie pokazało pakiety wysłane z adresu IP: 172.17.0.1
Dalej – skanowanie portów i okazało się… że na tej maszynie nic nie słucha, jednak port 22 nie jest filtrowany na firewallu (co oznaczało, że jeśli uda się odpalić w jakiś sposób sshd na maszynce – uda się tam dostać).
Ale jak to zrobić? Jakiego loginu i hasła użyć? Tutaj badacz postanowił zakupić drugie (powypadkowe) urządzenie:
A następnie podpiąć się do jego portu szeregowego:
W trakcie bootowania pokazał się U-Boot:
[ 0.009674]
[ 0.009698] U-Boot 2010.03-00391-gf3b3496 (May 15 2014 - 16:53:57) for NEC NEmid
[ 0.009754]
[ 0.009772] (C) 2009-2010 Robert Bosch Car Multimedia, CM-AI/PJ-CF32, Dirk Behme
[ 0.009830] CPU: MPCore at 400MHz
[ 0.009866] U-Boot #1 (env @ 0x40080000)
A cały proces można było przerwać naciśnięciem dowolnego klawisza oraz zmienić parametry bootowania. To w miarę standardowa technika dostawania się do shella tego typu urządzenia (zauważcie poniżej init=/bin/sh).
setenv bootargs console=${console},115200n8n mem=${linuxmem} maxcpus=${cores} root=/dev/${rootdev} rootwait lpj=1994752 panic=${panic} panic_on_oops=${panic_on_oops} usbcore.rh_oc_handler=1 4 init=/bin/sh
No więc badacz miał interaktywnego roota na żywym urządzeniu, w /etc/passwd konto roota zostało zdefiniowane bez hasła (hurrra!). Ale jak odpalić sshd?
Okazało się, że po podłączeniu pendrive do urządzenia, odpalał się pewien skrypt, w którym udało się namierzyć pewną podatność. Otóż zawartość nośnika montowała się do katalogu:
/dev/media/$mountdir
$mountdir ustawiany był z kolei tak (w przypadku kiedy pendrive nie miał zdefiniowanego UUID)
mountdir=${ID_FS_LABEL}
Po udanym (bądź nie) montowaniu odpalała się jeszcze binarka logger. Finalny atak wyglądał więc tak:
- Przygotowanie pendrive, który nie miał ustawionego UUID, ale miał ustawioną nazwę: ../../usr/bin
- Na pendrive przygotowanie skryptu o nazwie logger, który uruchamiał sshd z urządzenia (ew. dowolne inne polecenie ;)
- Wrzucenie pendrive do systemu multimedia
W tym momencie zawartość pendrive montuje się do /dev/media/../../usr/bin
Czyli w /usr/bin na urządzeniu znajduje się zawartość naszego pendrive.
Teraz odpalana miała być binarka logger. No i jest odpalana – ale w /usr/bin siedzi nasza wersja logger :) (jest to tak naprawdę skrypt shellowy odpalający sshd). Teraz już możemy naszą kartą sieciową logować się na roota (bez hasła). Co było do pokazania ;)
–ms
Ojojo… i jak tu żyć :D
Ludzka pomysłowość nie zna granic. Jeśli chodzi o sposób dojścia do tego jak i o sam umap2scan, nie wiedziałem nawet że coś takiego istnieje :).
Ciekawe, aczkolwiek co się da z tym zrobić? Czy nissan umożliwia sterowanie parametrami jazdy lub np. awaryjne hamowanie?
to jest tylko moduł multimedia
W czasach wszędobylskiego CAN, pewnie da się przeskoczyć na sterownik klimy, z niego zatelnetować do komputera świateł, z którego prostą drogą przez moduł komfortu, webasto i ABS, wbijemy się do silnika ;)
Mogę się mylić, ale z tego co się orientuję, magistrala „krytyczna” jest odseparowana od mediów
No to sobie Kodi zainstaluje…
Takie sobie … niby jakaś dziura jest ale mając takie auto i radio, ktoś mi się do niego włamie ?