Prawie sprytna tylna furtka w modemie kablowym Arrisa

dodał 30 września 2014 o 22:12 w kategorii Wpadki  z tagami:
Prawie sprytna tylna furtka w modemie kablowym Arrisa

Tylne furtki w domowym sprzęcie służącym do łączenia się z siecią nie przestają nas zaskakiwać. Czy twórcy oprogramowania naprawdę myślą, że nikt ich nigdy nie znajdzie? Tak się wydaje w przypadku modemu Arrisa.

Redaktor serwisu Console Cowboys znalazł bardzo ładną, łatwą do odkrycia tylną furtkę w modemie kablowym firmy Arris. Model TG862G był swojego czasu rozprowadzany w Polsce przez Vectrę, choć nie mamy pewności, czy furtka występuje również w polskiej wersji oprogramowania. Tak czy inaczej warto się jej przyjrzeć.

Chodź, dam Ci ciasteczko

Autor odkrycia zaczął od stwierdzenia, że wszystkie polecenia wydawane modemowi przez interfejs WWW muszą zawierać odpowiednie ciasteczko (co w całkiem niedawnej wersji oprogramowania nie było jeszcze regułą). Spójrzmy na rzeczone ciasteczko:

Cookie: credential=eyJ2YWxpZCI6dHJ1ZSwidGVjaG5pY2lhbiI6ZmFsc2UsImNyZWRlbnRpYWwiOiJZV1J0YVc0NmNHRnpjM2R2Y21RPSIsInByaW1hcnlPbmx5IjpmYWxzZSwiYWNjZXNzIjp7IkFMTCI6dHJ1ZX0sIm5hbWUiOiJhZG1pbiJ9

Wygląda jak base64, prawda? Odkodujmy zatem jego zawartość:

{"valid":true,"technician":false,"credential":"YWRtaW46cGFzc3dvcmQ=","primaryOnly":false,"access":{"ALL":true},"name":"admin"}

Zaczyna wyglądać ciekawie. Odkodujmy jeszcze zagnieżdżone base64:

{"valid":true,"technician":false,"credential":"admin:password","primaryOnly":false,"access":{"ALL":true},"name":"admin"}

No tak, login i hasło przesyłane w trywialnym kodowaniu przez HTTP, czego mieliśmy się spodziewać. Co jednak stanie się, jeśli zmienimy wartość „technician” z „false” na „true”? Niestety nic. Autor odkrycia jednak się nie poddawał i po kilku różnych próbach trafił na właściwe parametry. Tylna furtka kryje się pod następującym żądaniem:

Cookie: credential=eyJjcmVkZW50aWFsIjoiZEdWamFHNXBZMmxoYmpvPSJ9

czyli

{"credential":"technician:"}

Tak, login „technician” bez hasła. Niestety jednak okazuje się, że za pomocą takiego zestawu danych nie można zalogować się do interfejsu WWW rutera. Co zatem można zrobić? Należy pamiętać, że interfejs WWW to tylko przekaźnik poleceń dla skryptów CGI, które odczytują lub ustawiają wartości SNMP, przechowujące konfigurację urządzenia. Kiedyś skrypty można było wywoływać bezpośrednio bez autoryzacji, jednak ta „funkcja” została już poprawiona kilka lat temu. Czy jednak można je wywołać przy użyciu „magicznego ciasteczka”?

Ciasteczko działa

Ciasteczko działa

Jak widzicie, można bez problemu odczytać konfiguracje modemu. Próba zmiany hasła administratora przez interfejs WWW niestety wymaga znajomości starego hasła (którego poprawność jest sprawdzana!), jednak co się stanie, jeśli spróbujemy zapisać wartość hasła bezpośrednio przez SNMP?

Ustawianie hasła

Ustawianie hasła

Tak, bez problemu można ustawić nowe hasło administratora. Po wykonaniu tej operacji można już zalogować się do interfejsu WWW za pomocą nowego hasła.

Dla ułatwienia całego procesu oto polecenie, które automatycznie ustawi żądane hasło administratora w modemie Arrisa:

curl -isk -X 'GET' -b 'credential=eyJjcmVkZW50aWFsIjoiZEdWamFHNXBZMmxoYmpvPSJ9' 'http://192.168.100.1:8080/snmpSet?oid=1.3.6.1.4.1.4115.1.20.1.1.5.1.0=krad_password;4;'

Jeśli macie podobny lub identyczny sprzęt tego producenta, przetestujcie u siebie (nie u sąsiada!) i dajcie znać, jakie były efekty. A my idziemy płakać nad stanem bezpieczeństwa modemów i ruterów.