Prima di sferrare un qualunque attacco informatico o di effettuare attività di pentesting, il malintenzionato deve condurre una fase di information gathering (dall’inglese “raccolta di informazioni") nei riguardi della vittima: se vuoi colpire efficacemente un nemico, allora prima devi conoscerlo!
Due degli step fondamentali della suddetta fase sono sicuramente il port e il web scanning che consistono nello scansionare le porte della macchina/server vittima al fine di individuarne le vulnerabilità, compresi i servizi attivi e altre informazioni sensibili.
Come annunciato nello scorso articolo, effettueremo i test di scanning sulla Metasploitable,che sarà la nostra vittima, quindi, se non l’avete già fatto scaricate l’immagine virtuale da qui.
Il procedimento per installare questa macchina su VirtualBox è ancora più semplice ed immediato di quello della BackBox: riassumiamo velocemente i passaggi da fare.
STEP 1
Da VirtualBox clicchiamo su “Nuova” e impostiamo i seguenti settaggi:
Nome: è indifferente, noi la chiameremo “Metasploitable”.
Tipo: Linux.
Dimensione della memoria: è la quantità di memoria RAM che volete assegnare alla macchina; per Linux è sufficiente anche solo 1GB.
Disco fisso: selezioniamo “Usa un file di disco fisso virtuale esistente” e scegliamo il file <Metasploitable.vmdk> precedentemente scaricato.
Poi diamo “Crea”.
STEP 2
Resta un ultimo, veloce passo da fare: selezionate la macchina appena creata e poi andate su “Impostazioni”. Dalla scheda RETE spuntiamo “Abilita scheda di rete” e poi “Scheda con bridge”
Essendo pensata semplicemente per operazioni di testing, la Metasploitable non ha un DE (Desktop Environment), ma funziona semplicemente da riga di comando. Le credenziali di accesso, richieste di default all’avvio, sono <msfadmin>, sia user che password.
A questo punto possiamo avviare anche la nostra BackBox (trovate la guida all’installazione nel primo articolo della serie). La prima cosa da fare è testare che le due macchine comunichino tra loro: dal terminale digitiamo “ifconfig” per visualizzare le informazioni sulla “Scheda di rete”, in particolare a noi interessa l’indirizzo IP della BackBox.
Una volta prelevato l’indirizzo, passiamo sulla Metasploitable e diamo “ping <IP_BackBox>”. Riceveremo dei pacchetti di risposta, segno che la comunicazione è in atto.
Adesso possiamo passare all’argomento principale di questo episodio.
Come funziona il port scanning?
La macchina attaccante manda una richiesta di connessione alla macchina vittima su una determinata porta e a seconda della risposta che ottiene si riesce a capire se la porta è aperta e se su quella macchina è attivo un determinato servizio; combinando le informazioni inoltre si può anche individuare qual è il suo sistema operativo.
Nello specifico si hanno tre casi:
- Se la porta è aperta, la macchina vittima restituisce il servizio aperto su di essa.
- Se la porta è chiusa, la macchina vittima non restituisce alcun servizio.
- Se la porta è filtrata, la macchina vittima non dà nessuna risposta: ciò significa che essa è protetta un firewall.
Per mettere in pratica questo meccanismo utilizzeremo Nmap nella sua versione grafica Zenmap, che è già preinstallata su Backbox: per avviarla basta cercarne il nome dal menu oppure, sempre dal menu, raggiungere il percorso Auditing/Information Gathering/Network/Zenmap.
Descriviamo brevemente l’interfaccia.
Nel campo “Obiettivo” va inserito l’indirizzo IP da scansionare (è anche possibile inserire il semplice indirizzo internet, Zenmap ricaverà in automatico l’IP).
Nel campo “Profilo” va inserito il tipo di scansione da effettuare.
Una volta selezionati i parametri desiderati per la scansione, automaticamente nel campo “Comando” apparirà il comando da lanciare su “Nmap” per effettuare la medesima scansione: questa feature è ottima per chi vuole imparare ad operare esclusivamente da riga di comando.
Per fare una prova, possiamo scansionare l’IP della Metasploitable:
Chiaramente ci saranno molte porte aperte (STATE: open, in figura) poiché Metasploitable è totalmente priva di Firewall e colma di vulnerabilità.
Per approfondire l’analisi dell’output potete switchare tra le varie tabs che Zenmap mette a disposizione.
Notate in particolare che la scheda “Topologia” fornirà la mappa di tutti i nodi in cui transita la richiesta prima di arrivare alla vittima: questa feature è utile per individuare la presenza di un eventuale firewall.
Il Web Scanning
Il Web Scanning è una tecnica molto simile al Port Scanning, ma come suggerisce il nome, è orientata alla scansione delle vulnerabilità di pagine web: inaspettatamente molte di queste contengono informazioni sensibili sulla macchina vittima, che in qualche modo rimangono accessibili.
Come funziona il web scanning?
Anche in questo caso la macchina attaccante manda una richiesta di alla macchina vittima richiedendo una certa risorsa e a seconda della risposta si può capire se questa è presente o meno e a quali servizi è collegata. Ad esempio se dalla web scan di un server si individuano le pagine di amministrazione proprie di Joomla, allora si capisce che il sito lavora su tale CMS.
Per effettuare attività di web scanning utilizzeremo “Nikto”, anch’esso preinstallato in BackBox, ma privo di un’interfaccia grafica: per avere una breve documentazione sul suo funzionamento, da terminale basta digitare nikto.
Adesso lo utilizziamo contro la nostra Metasploitable.
Basta digitare <nikto -host 192.168.1.104 -output prova.htm>.
- Il parametro <-output prova.htm> indica a nikto che dovrà salvare i risultati della scansione nel file <prova.htm>: di default lo troverete nella cartella Home.
- Se volete approfondire il focus su una porta in particolare, basta usare il parametro <-port numero_porta> dopo -host. Di deafult è impostata la porta 80.
Aprendo il file vi meraviglierete della mole di informazioni che Nikto sarà riuscito a trovare durante la scansione!