Tak jak początkującym wspinaczom rekomenduje się łatwe szczyty, tak początkującym hakerom lepiej wskazywać proste cele. Do takich należą domowe rutery, nad których bezpieczeństwem płakaliśmy nie raz. Jak się do sprawy zabrać pokazuje nasz Czytelnik.
Od jednego z naszych Czytelników, ukrywającego się pod pseudonimem mbr, otrzymaliśmy poniższy tekst pokazujący, co każdy początkujący badacz może zrobić ze swoim domowym sprzętem. polecamy i czekamy na więcej.
Analiza Sapido RB-1800
Sapido RB-1800 to proste, tanie domowe urządzenie z możliwością pracy jako router, access point i klient WiFi. Uwagę zwraca elegancki, nowoczesny design, niewielkie wymiary, wbudowany webshell na prawach roota i kilka nieudokumentowanych funkcji.
Przyjrzyjmy się bliżej.
# nmap 192.168.1.1 -p1-65535 Host is up (0.013s latency). Not shown: 65532 closed ports PORT STATE SERVICE 80/tcp open http 52869/tcp open unknown 52881/tcp open unknown MAC Address: 00:D0:41:xx:xx:xx (Amigo Technology CO.)
Urządzenie oprócz TCP 80 ma otwarte porty TCP 52869 i 52881. Więc czyżby faktycznie Sapido dodało coś „ekstra” od siebie? Zajrzyjmy do firmware’u.
# wget http://www.sapidotech.com/download/firmware/rb1800/en/RB-1800_EN_v1.0.24.bin # binwalk RB-1800_EN_v1.0.24.bin
DECIMAL HEXADECIMAL DESCRIPTION -------------------------------------------------------------------------------- 35945 0x8C69 LZMA compressed data, properties: 0x88, dictionary size: 1048576 bytes, uncompressed size: 65535 bytes 46724 0xB684 LZMA compressed data, properties: 0x5D, dictionary size: 8388608 bytes, uncompressed size: 2714444 bytes 833166 0xCB68E Squashfs filesystem, little endian, version 4.0, compression:lzma, size: 1162123 bytes, 445 inodes, blocksize: 262144 bytes, created: Tue May 6 08:00:48 1902
# dd if=RB-1800_EN_v1.0.24.bin of=sapido.squashfs ibs=1 skip=833166 # unsquashfs sapido.squashfs # ls squashfs-root/ bin/ dev/ etc/ home/ init@ lib/ mnt/ proc/ sys/ tmp@ usr/ var/ web@
Voila! Na początek zajrzyjmy do /web, czyli tak naprawdę /bin/web_root
To ciekawe. Po zażądaniu tego dokumentu przez przeglądarkę dostajemy webshella na prawach roota z możliwością uploadu i downloadu plików. Pół biedy, że wymaga zalogowania się.
Skoro już mamy takie narzędzie, to spróbujmy dowiedzieć się, co jest wewnątrz.
# cat /proc/cpuinfo system type : RTL8196B processor : 0 cpu model : 52481 BogoMIPS : 389.12 tlb_entries : 32 mips16 implemented : yes
#cat /proc/meminfo MemTotal: 10256 kB MemFree: 712 kB Buffers: 808 kB Cached: 1952 kB SwapCached: 0 kB Active: 1984 kB Inactive: 1500 kB Active(anon): 380 kB Inactive(anon): 496 kB Active(file): 1604 kB Inactive(file): 1004 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 884 kB Mapped: 884 kB Slab: 5076 kB SReclaimable: 236 kB SUnreclaim: 4840 kB PageTables: 196 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 5128 kB Committed_AS: 2564 kB VmallocTotal: 1048404 kB VmallocUsed: 520 kB VmallocChunk: 1047880 kB
W /etc/shadow zdefiniowane jest konto roota z ustawionym hasłem.
Może więc uda nam się to hasło poznać?
[hashkill] -= Cracked list =- Username: Hash: Preimage: ----------------------------------------------------------------------------------- root $1$e8BMZDTmyXquzTIkUFUfCTcOuDzhQ/ swetop [hashkill] Total: 1 passwords cracked [hashkill] Attack took 534 seconds. [hashkill] Bye bye :)
Urządzenie przestaje nasłuchiwać na porcie TCP 52869 po wyłączeniu uPnP, jednak 52881 pozostaje otwarty. Oba jednak wydają się być związane z uPnP. Po wysłaniu na każdy z nich z nich nieprawidłowego żądania uPnP dostajemy odpowiedź od demona uPnP:
port 52869: HTTP/1.1 500 Internal Server Error Content-Type: text/xml Connection: close Content-Length: 398 Server: miniupnpd/1.0 UPnP/1.0
port 52881:
HTTP/1.1 501 Not Implemented <u:actionName xmlns:u="">HTTP/1.1 500 Internal Server Error Connection: close Content-Type: text/xml Connection: close Content-Length: 398 Content-type: text/htmlServer: miniupnpd/1.0 UPnP/1.0
Niedostępne z poziomu panelu WWW funkcje (niektóre nieobsługiwane przez ten router) to:
- dos.asp: DoS Prevention
- obama.asp: WebShell z rootem
- multipleap.asp: Ustawienia MultiAP
- stats.asp: Wysłane/odebrane pakiety na interfejsach
To oczywiście tylko pobieżna analiza tego, co widać na pierwszy rzut oka i co potrafi zrobić przeciętny linux-user.
Komentarze
I bardzo dobrze, musze mieć jak odblokowac sąsiadowi sieć, a ta powinna być wszędzie i dla każdego
A można przykład na TP-LINK TL-WR740N bo nie wiem za bardzo jak się za to zabrać ;/
A której części nie rozumiesz?
Nie chodzi o to, żeby powtarzać krok po kroku punkty tutoriala dla konkretnego modelu – niczego ciekawego *sam* nie znajdziesz. Musisz zrozumieć co tu się dzieje. Poczytaj, co robią te komendy, rozgryź co się dzieje w poszczególnych krokach, poczytaj o hasłach kluczowych (np. sprawdź na Wikipedii co to jest squashfs). Nie bój się użyć wyszukiwarki ;) Początki bywają trudne, ale nic nie daje takiej satysfakcji, jak samodzielne rozgryzienie jakiegoś tematu :)
„Nie bój się użyć wyszukiwarki ;)”
Ooo. Przestali gromadzić dane i analizować ruch? System wyłączony czy padł?
Napisz coś więcej :)
Jak chcesz, to na tym routerze świetnie działa DD-WRT :)
A tak prostemu czlowiekowi wytlumaczcie, do czego ktos z zewnatrz moze to wykorzystac ?
Taki mały apel ze strony programistów Nmap – w przypadku, gdy rozgryzamy nieznane usługi, dobrze jest użyć przełącznika linii komend -sV, żeby skorzystać z service fingerprintingu. Jeżeli uzyliśmy najnowszego wydania Nmapa, fingerprint nie został rozpoznany i wiemy, jaka usługa działa na danym porcie, mile widziane będzie wysłanie tego fingerprinta do bazy danych programu, zgodnie z instrukcjami podanymi w standardowym wyjściu programu. Z góry dzięki!
Obama.asp? Barack Obama?
Taki jankeski root, może zatrzymywać lub uruchamiać usługi albo zmieniać parametry środowiska:
obama stop healthcare
obama increase taxes
itp.
Niestety nie. Chodzi zapewne o Mariana Obamę, polskiego chemika z końca XIX wieku.
Obama? Przypadek? Nie sONdzę!
@mbr
Rewelka!
Ale nazwę panelu to dobrą dali xD
To i tak nic w porównaniu do pewnego dostawcy internetu (ok 20K end user), który przy konfiguracji swoich routerów ustawił WPS 12345670. Całe miasto to jedno wielkie openWifi :-P
THIS IS SOOOOO 2011:
http://openrouter.info/forum/viewtopic.php?f=39&t=919&view=next
Łau, „hack” znany od co najmniej 2010 r. każdemu „dłubaczowi” w routerach. Problem z firmware od firmy Amigo…
Ale to nie jest poradnik dla dłubaczy, tylko dla ludzi, którzy nigdy wcześniej nie mieli z tym do czynienia. Bardzo dobry z resztą moim zdaniem.
Gratulacje dla badacza!
Ktos moze ma pomysl co zrobic w przypadku kiedy nie da sie pobrac firmeware do 'boxa’ np. do Irlandziego SKY’a ?