Ca erori în routere admin pot da acces deplin la router

vânzătorii de software nu le pasă suficient de multe despre router și securitatea. Și este prin intermediul router-ul atacator poate penetra rețeaua internă și de a asculta tot traficul care trece. Acest articol va aborda bug-uri și vulnerabilități care au fost găsite de mine și prietenul @ 090h în pentest câștigat popularitate routere ZyXEL Keenetic.

router moderne

primul aspect

Noi trebuie să înțelegem că suntem în mod special în căutarea pentru vulnerabilități în router. Nu a fost nici o problema de a sparge cineva care ar trebui sa dorit punctul de acces. Primul lucru pe care am început - este Nmap scanare de porturi de la rețeaua internă (în afara panoului de administrare Web implicit este închis). Scanerul ne-a arătat trei porturi deschise, din care suntem interesați în doar două - 80 minute (interfață web) și al 23-lea (Telnet).

La portul 80 transformă o interfață bazată pe web obișnuite pentru gestionarea router. Acest lucru este în cazul în care vom începe.

Dacă luăm în considerare din punct de vedere al securității a interfeței web, atunci este un eșec. Clasice ale genului: ori de câte ori există o oportunitate de a introduce informațiile lor, nu există nici o filtrare! În forme, nu există token-uri, care deschide posibilitatea pentru CSRF-atacuri.

Mai precis, fiecare nu va lua în considerare XSS, dar merită atenție la o variantă interesantă de exploatare XSS (Life-hack). Probabil ai vrut să se ascundă din lista de clienti care sunt conectate la router (puteți vedea în zona de administrare a routerului). S-ar părea că aceasta trebuie să aibă acces la consola, scrie module de kernel, și așa mai departe. Dar răspunsul se află la suprafață. Doar schimba numele calculatorului nostru (câmpul „Descriere“) la 1 „>]»); alertă (1); și conectați la router. Ca rezultat, puteți vedea că suntem „stors“ în JS în așa fel încât să nu fie procesat și oferă o listă goală de clienți. Acest lucru va fi suficient pentru ei înșiși și alți utilizatori conectați la punctul de acces ascunde, de ochii administratorului neatent.

Ca erori în routere admin pot da acces deplin la router
Firmware sub bisturiu

  1. Admin trimite un link către o gazdă cu o pre-pregătită HTML-fișier:

Jailbreak din cmd

Conectează-te prin telnet și conectați-vă cu datele pe care le-am învățat de la dosar KEENETIC.cfg, pentru a primi în consola interactivă Keenetic. Aici putem efectua operații primitive sau comenzi de sistem prin Exec. exemplu:

Dar faptul că este salbatic incomod, și aș dori să aibă o consolă completă, mai degrabă decât un fel de curbe pentru înfășurare. Pentru consola completă și a fost găsit proekspluatirovat bug interesant cu parsare incorectă a argumentului la comanda ping. Datorită reușește să execute comenzi arbitrare, inclusiv „sari“ a carcasei propuse în cenușă coajă:

Și acum avem deja o consola cu drepturi depline. Acum putem face tot ce vrei, dar nu uitați că router-ul utilizează SquashFS sistem de fișiere în modul read-only.

Ca erori în routere admin pot da acces deplin la router
Schimbarea numelui de rețea pentru a XSS, și este executat

Acum, face lucrul pe care va facilita munca noastră cu consola. Desigur, acest bekkonnekt. El este foarte simplu:

Acum, deschide consola de pe calculatorul nostru:

După cum puteți vedea, putem face chiar bekkonnekt la server. În unele cazuri, acest lucru poate ajuta sustrage protecției, dacă este cazul.

S-au găsit bug-uri deschide posibilități pentru dezvoltarea în continuare a atacului. Luați în considerare unele dintre conceptele.

  1. Faceți modificări la software-ul a router-ului. Așa cum am spus mai devreme, avem de-a face cu sistemul de fișiere SquashFS, și pentru a face orice modificări, aveți nevoie pentru a lucra din greu. Pentru a începe, descărcați firmware-ul original și despachetați (pe Internet, puteți găsi cu ușurință o mulțime de instrucțiuni), apoi modificați fișierele necesare și „lipici“ în formă convenabilă a firmware-ului. După aceea trebuie să actualizați firmware-ul în router prin descărcarea fișierului firmware-ului este modificat. Astfel, vom putea modifica, adăuga sau șterge orice fișiere de firmware.
  2. Adăugarea funcționalității prin intermediul modulului de kernel. Dacă posedă programarea modul kernel abilități, nimic nu vă împiedică să scrie modulul de kernel, compilați-l și încărcați prin lspci. Dar, pentru a nu există actualizări de firmware au spațiu disponibil pentru crearea și modificarea de fișiere, avem nevoie pentru a conecta un dispozitiv de stocare extern, și să lucreze direct cu el (deși mulți utilizatori de mass-media externe este deja conectat).
  3. Obține informații suplimentare prin intermediul comenzii flash. Este demn de atenție la un instrument, cum ar fi comanda flash, disponibile în consola a router-ului. Ea ne poate da date interesante (de exemplu, parola program de NetFriend pentru a configura de la distanță router), care poate fi ulterior folosit împotriva victimei. exemplu:
  • Discutarea routere ZyXEL Keenetic;
  • interesant forum thread pe iXBT;
  • oportunități Keenetic router de firmware de pe al doilea pokoleniyahabrahabr.ru;
  • Aplicații suplimentare pentru Keenetic.

Ca erori în routere admin pot da acces deplin la router
Schimbarea numelui de gazdă în codul special și ascunde toți utilizatorii

Informații despre vulnerabilitatea companiei a fost predat specialiștilor ZyXEL.

bugfix rapid

Cei de la ZyXEL imediat au spus că vor face cu bug-uri

„Corecții buguri (acolo unde este necesar) va deveni în curând la dispoziția utilizatorilor într-un fel sau altul, în funcție de versiunea de firmware (V1 - în ansamblurile informale, V2 - cu ingrediente proaspete). Firmware 2.0, în general, este construit pe un principiu diferit - fără utilizarea de coajă și BusyBox. Toată logica este ascunsă în module și biblioteci, și afectează locul ei de muncă mult mai dificil. Obțineți acces de root, pur și simplu nicăieri. NDM coajă, deși și executat în numele rădăcină, dar este atât de limitată, care necesită un studiu separat, cum să-l folosească cu rea-credință. În ceea ce privește vulnerabilitățile de interfață web pentru a insera cod în pagina prin numele computerului în firmware-ul 2.0 nu este posibil (doar în cazul în care am verificat). Utilizarea CSRF nu va funcționa, pentru că noi folosim AJAX, mai degrabă decât GET / POST sau prin forma unei adrese URL, și cross-domain cereri AJAX au blocat mult timp de browsere. De asemenea, nu se poate fura parola, deoarece nu este stocat în clar ".

Arată acest articol unui prieten: