Linee guida per l'hacking di un router (e come difendersi)

Tempo di lettura: 9 minuti
Data pubblicazione: August 22, 2016

I nostri computer, cellulari, stampanti e sempre più spesso televisori o altri dispositivi sono connessi simultaneamente ai router domestici, i quali ci permettono di connetterci alla rete esterna e navigare in internet. Purtroppo (o per fortuna) anche questi sono vulnerabili ad attacchi esterni o interni e devono essere protetti sempre al massimo, in modo che nessuno possa prendere il controllo dei nostri dispositivi passando da essi.

I passi da effettuare per entrare in un router sono:

  1. Identificare lo stesso (indirizzo IP, marca, modello);
  2. Scansionare le porte attive;
  3. Entrare nel router;
  4. Craccare la password;
  5. Analizzarlo dall’interno, ossia:
    1. controllare gli utenti;
    2. analizzare le informazioni;
    3. monitorare il traffico;
    4. inserire una backdoor;
    5. e molto altro.

Nel seguente articolo eseguirò ogni passo in modo da poter analizzare il proprio router (ricordo che l’accesso abusivo a dispositivi elettronici senza avere il permesso è perseguibile penalmente) e renderlo sicuro da possibili attacchi.

Identificare il router

Il primo passo è il più semplice, bisogna scoprire l’indirizzo IP interno del router a cui siamo connessi. La maggior parte delle reti permette di effettuare un traceroute ed osservare i passi che compiono i pacchetti inviati dal nostro dispositivo ad un sito visitato. Su Linux basta digitare (per chi avesse Windows il comando è tracert):

root@kali:~# traceroute google.it  //*ho scelto un sito casuale*//
traceroute to google.it (216.58.198.35), 30 hops max, 60 byte packets
 1  gateway (192.168.1.1)  1.619 ms  4.508 ms  4.452 ms
 2  * * *
 . . . .
 9  108.170.233.97 (108.170.233.97)  58.401 ms  71.136 ms  60.370 ms
10  mil04s04-in-f35.1e100.net (216.58.198.35)  62.630 ms  76.799 ms  45.007 ms

Come potete vedere il primo passaggio che compie è quello di passare per il router, e ora conosco l’indirizzo IP locale. Nel caso (potrebbe succedere) la rete non permetta un traceroute è possibile scoprirlo anche digitando ifconfig e deducendo l’indirizzo dall’output ricevuto (nel mio caso, dopo inet).

routerhackifconfig
routerhackifconfig

Scansione delle porte

Ormai è una tecnica su cui ci siamo esercitati in motli articoli, per chi fosse nuovo consiglio Scan di una rete. Tramite Nmap scansiono in maniera molto semplice tutte le porte del router per veder quale possibilità abbiamo per entrare e quali modi sono più semplici.

root@kali:~# nmap -sT 192.168.1.1
Starting Nmap 7.25BETA1 ( https://nmap.org ) at 2016-08-19 22:57 CEST
Nmap scan report for 192.168.1.1
Host is up (0.017s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
21/tcp open ftp
23/tcp open telnet
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
1900/tcp open upnp
20005/tcp open btx
MAC Address: E8:[..]:F9 (Tp-link Technologies)

Nmap done: 1 IP address (1 host up) scanned in 13.45 seconds

Entrare nel router

Per prima cosa noto la porta 80 aperta, per cui provo, digitando l’indirizzo IP nel browser, a vedere se ha qualche tipo di protezione

routerhackhttp
routerhackhttp

Purtroppo, anche provando diverse combinazioni non riesco a trovare il nome utente e la password (ma si potrebbe utilizzare Burpsuite per un attacco di forza bruta o cercare la password di default tramite uno di questi tre siti). Sono comunque riuscito a trovare il modello, e questo potrebbe servire a trovare una password di default. È un bene che l’interfaccia di accesso sia protetta con credenziali forti e non con quelle di default. Se andate su un sito come questo, copiate il vostro indirizzo pubblico e lo incollate nella barra degli indirizzi del browser, scoprirete che la stessa interfaccia è disponibile al pubblico! Quindi visto chiunque incappi nel vostro indirizzo IP, potrebbe provare ad entrare nel vostro router, è meglio difendersi al meglio.

Cambio porta e provo ad utilizzare il servizio ftp attivo sulla 21

root@kali:~# ftp 192.168.1.1
Connected to 192.168.1.1.
220 Welcome to TP-LINK FTP server
Name (192.168.1.1:root): admin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Ho inserito come nome utente admin e lo stesso per la password e sono dentro al router. Non le ho cambiate io, ma sono quelle di default. Solitamente tengo chiuso l’accesso FTP perchè non mi serve, ma quando l’ho installato era attivo e chiunque sarebbe potuto entrare molto facilmente (per chiudere la porta basta andare in impostazioni e disattivare l’accesso FTP).

Visto che sono dentro, provo a vedere cosa c’è dentro

ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
drwxrwxrwx    1 0        0            8192 Aug 01 09:43 volume
drwxrwxrwx    1 0        0            8192 Aug 01 09:43 volume(SuperUser)
226 Directory send OK.
ftp> cd volume
250 Directory successfully changed.

Cerco nel volume files che potrebbero interessarmi e trovandoli, effettuo i seguenti passi per trasferirlo sul mio dispositivo:

ftp> binary
200 Switching to Binary mode.
ftp> get eserciziario1.pdf
local: eserciziario1.pdf remote: eserciziario1.pdf
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for eserciziario1.pdf (863758 bytes).
226 Transfer complete.
863758 bytes received in 0.13 secs (6.2773 MB/s)

Ora il file eserciziario.pdf è stato copiato nel mio computer e posso con tutta calma sfogliarlo. Per chi volesse altri comandi utili, li può consultare qui. Purtroppo questo modello di router non permette un accesso FTP a più alto livello (quindi all’interno del sistema) e con questo servizio mi fermo a questo punto. Se utilizzate questa funzione e avete un hard disk collegato al router, vi consiglio di modificare la password, in modo da evitare queste spiacevoli conseguenze. Dal terminale è possibile cancellare tutto ciò che è presente sul disco collegato, quindi meglio proteggerlo adeguatamente!

Analizzarlo dall’interno

Visto che FTP non mi permette di accedere ad altri file provo a connettermi con telnet.

root@kali:~# telnet 192.168.1.1
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.

username:admin
password:

Come prima, provo un pò di credenziali e bingo, sono dentro! (in questo caso le password del mio modello di router erano numeri casuali e difficilmente con un attacco a forza bruta si sarebbero trovate. Le ho modificate appositamente per l’esempio pratico; ciò non toglie che si possano trovare con altri modelli, specie quelli più vecchi).

routerhacktplink
routerhacktplink

Dopo aver girovagato un pò per le varie configurazioni (potrei modificare praticamente tutto da questa interfaccia), riesco a trovare la password del Wi-Fi che è in chiaro e in bella vista.

routerhackpwd
routerhackpwd

Conclusioni

Purtroppo questo modello di router non permette (da quanto ho visto) di visualizzare gli utenti connessi o informazioni in merito al traffico dalla connessione via telnet, ma solo di impostare e configurare il router e le diverse modalità di connessione. C’è da dire che:

  • nel caso di una chiavetta USB collegata ad esso, abbiamo potuto copiare e visualizzare tutti i file al suo interno sul nostro dispositivo;
  • ci siamo collegati via telnet e abbiamo trovato la password del Wi-Fi;
  • avremmo potuto modificare i DNS e dirigere tutto il traffico verso siti prescelti da noi.

Sono convinto che se i produttori di router impostassero password di default diverse o non aprissero porte che all’utente comune non servono minimamente, ci sarebbero molti meno problemi nell’ambito della sicurezza informatica. Se qualcuno volesse leggere articoli di approfondimento, consiglio vivamente TestRouter (un sito che permette di testare in maniere diverse il proprio router) e Reverse Engineer router firmware.