POC of Alice Gate VoIP 2 Plus WiFi and ADSL2+ WiFi-N AGPWI reconfiguration

Questo dimostratore fa parte della serie di articoli sulla vulnerabilità CSRF dei router Alice, leggi l'articolo introduttivo.

Aggiornamento 12/2012: La vulnerabilità CSRF è stata mitigata abilitando la richiesta di password per accedere al pannello di amministrazione. La tecnica per sbloccare le funzionalità nascoste del proprio router rimane comunque valida.

Attenzione: le modifiche alla configurazione interna del router Alice Gate VoIP 2 Plus Wifi potrebbero essere vietate dal contratto stipulato con il provider, e apportare danni al router rendendolo inutilizzabile. Prima di effettuare qualsiasi modifica assicurarsi di saper ripristinare le impostazioni iniziali. Esegui i test dimostrativi a tuo rischio e pericolo.

Lo studio sulla sicurezza dell'apparato è da intendersi a scopo didattico. Verificate la sicurezza del vostro router e proteggetelo utilizzando il dimostratore pubblicato. L'autore non è responsabile di danni agli apparati o violazioni a sistemi informatici derivanti dall'uso delle tecniche esposte. Ricordo che l'accesso abusivo ad un sistema informatico e perseguibile secondo l'articolo 615-ter del codice penale.

Verifica se il tuo router è vulnerabile

Controlla il modello

  1. Accedi al pannello di controllo sulla pagina http://192.168.1.1/
  2. Verifica che il modello del router sia AGPF oppure AGPWI nel campo Dati Identificativi Modem > Software

    Pannello

Simula attacco CSRF

  1. Segnati il Seriale modem che trovi nella sezione nella immagine soprastante (la disposizione potrebbe cambiare)
  2. Clicca qui per aprire una pagina di attacco che modifica la voce Seriale modem
  3. Se Seriale modem è modificato come nell'immagine sottostante, il tuo router è vulnerabile. Vai alla sezione mitiga vulnerabilità

    Pannello modificato

  4. Ripristina il precedente numero seriale del modem, o sostituiscilo con una stringa a tuo piacere

  5. Verifica che la voce alla pagina http://192.168.1.1/ sia stata modificata

Il dimostratore è stato provato ufficialmente sulle versioni firmware AGPWI_1.0.3, AGPF_4.3.5a, AGPF_4.5.0, AGPF_4.6.2. E' possibile che il metodo vari tra le versioni non ancore testate: se non funziona su un router con versione diversa contattami per adattare il POC. L'accesso alla interfaccia web deve essere senza login, come da default. In caso contrario, i test dimostrativi non hanno effetto se non autenticati all'interfaccia.

Mitiga la vulnerabilità

In attesa che il distributore rilasci una versione di firmware non vulnerabile, possiamo applicare alcune configurazioni che riducono la possibilità di subire un attacco.

Autenticazione utente

  1. Accedi al pannello di controllo sulla pagina http://192.168.1.1/
  2. Clicca sull'ultimo bottone Accesso sul menu sulla destra
  3. Attiva la gestione autenticazione utente, e inserisci la password quando richiesta

Da ora in poi verrà chiesta la password di autenticazione ad ogni accesso, rendendo l'utente vulnerabile al CSRF solo quando loggato all'interno della interfaccia web. Avendo l'accortezza di non navigare su altre pagine web nel mentre che si ha una sessione attiva sul pannello di controllo del proprio router, e di effettuare il logout a fine operazioni, si evita ogni possibile attacco CSRF.

Cambia porta del pannello di controllo

Cambiare la porta su cui è esposta l'interfaccia web a proprio piacimento, limita la vulnerabilità all'attacco CSRF.
  1. Cambia la porta su cui è esposta l'interfaccia web. Attenzione: successivamente la pagina sarà accessibile solo digitando l'URL http://192.168.1.1:nuovaporta. Data la limitazione, tutte le dimostrazioni e sblocchi spiegati nei paragrafi successivi non funzioneranno.
Se si desidera ripristinare l'accesso sulla porta 80, continuare con i punti successivi. Il router sarà di nuovo a rischio.
  1. Abilita la porta telnet come spiegato nel paragrafo
  2. Apri il client telnet e collegarsi alla porta 23 dell'host 192.168.1.1
  3. Accedi alla shell con username admin e password riattizzati
  4. Esegui il comando conf set admin/https/ports/0/port 80
  5. Esegui il comando conf reconf 4
  6. Verifica che il pannello di controllo alla pagina http://192.168.1.1/ sia stato ripristinato

Sblocca le funzionalità nascoste

Menu avanzato

Abilita e disabilita il menu avanzato del pannello di controllo accessibile da admin.html.
  1. Abilita e disabilita il menù avanzato

  2. Connettiti alla pagina di amministrazione admin.html.
  3. Al posto della pagina 404 page not found dovresti trovare un pannello di autenticazione dove inserire utente admin e password riattizzati
  4. Naviga le funzioni nascoste

Telnet

Abilita e disabilita il telnet sulla porta 23.
  1. Abilita e disabilita il menù avanzato

  2. Apri il client telnet e collegarsi alla porta 23 dell'host 192.168.1.1
  3. Accedi alla shell con username admin e password riattizzati

Telegestione

Abilita e disabilita la telegestione per l'aggiornamento automatico del software e la gestione remota da parte di telecom via CWMP. La funzione è abilitata di default, disabilitarla se si vuole evitare upgrade, fix e cancellazioni delle personalizzazioni dell'apparato.
  1. Abilita e disabilita la telegestione

Simula attacchi

DNS entry

Inserisci una nuova DNS entry nel router. Dopo, l'hostname scelto verrà risolto con l'IP di questo blog.
  1. Inserisci la entry DNS

Per ripristinare il comportamento corretto, continuare con i punti successivi.
  1. Abilita la porta telnet come spiegato nel paragrafo
  2. Apri il client telnet e collegarsi alla porta 23 dell'host 192.168.1.1
  3. Accedi alla shell con username admin e password riattizzati
  4. Esegui il comando conf print dns/entry
  5. Trova il record DNS inserito e cancellala con il comando conf del dns/entry/# con # numero della entry da cancellare
  6. Verifica che google venga risolto in maniera corretta

Telnet esposto su internet

Apri il telnet verso internet su una porta a scelta. Attenzione: ogni click inserisce una nuova entry telnet da cancellare a test completato.
  1. Abilita la porta telnet generica come spiegato nel paragrafo
  2. Esporre la porta desiderata verso l'esterno

Per richiudere il telnet, continuare con i punti successivi.
  1. Apri il client telnet e collegarsi alla porta 23 dell'host 192.168.1.1
  2. Accedi alla shell con username admin e password riattizzati
  3. Esegui il comando conf print admin/telnets/ports
  4. Trova la entry della porta appena inserita e cancellala con il comando conf del admin/telnets/ports/# con # numero della entry che desideramo cancellare.

Comments

comments powered by Disqus