Installazione di Metasploit e comandi di base
“Questo tutorial spiega come installare e iniziare con i comandi Metasploit di base in Linux con un esempio di scenario reale.
Metasploit è una raccolta di vulnerabilità ed exploit per il controllo della sicurezza e lo sfruttamento delle vulnerabilità. Questo strumento aiuta gli amministratori di sistema a testare la sicurezza della rete e del dispositivo. Consente inoltre agli utenti inesperti di eseguire facilmente attacchi contro obiettivi.
Tutte le istruzioni descritte in questo documento includono schermate, che facilitano ai lettori la comprensione e l'applicazione. "
Che cos'è PostgreSQL, come è utile quando si utilizza Metasploit e come installarlo
Quando un obiettivo viene scansionato per trovare vulnerabilità o sfruttato attraverso una falla di sicurezza, le informazioni raccolte vengono salvate in un database per essere importate e utilizzate da altri strumenti di pentesting. Naturalmente, coloro che eseguono attività di pentesting possono salvare le informazioni manualmente, ma mantenere i risultati del pentesting correttamente ordinati in un database è utile per tenere traccia dell’attività, aumentare la produttività e facilitare le attività di pentesting.
Il sistema di gestione del database supportato da Metasploit è PostgreSQL e, sebbene non sia obbligatorio quando si utilizza Metasploit, è altamente consigliabile installarlo. Utilizzare Metasploit senza un sistema di gestione del database non è una decisione intelligente. Pertanto questo tutorial inizia con le istruzioni su come installare PostgreSQL prima di installare Metasploit.
Installazione di PostgreSQL su distribuzioni Linux basate su Debian (CentOS di seguito)
Su Debian e le sue distribuzioni Linux basate come Ubuntu, puoi facilmente installare PostgreSQL utilizzando il gestore pacchetti apt come mostrato nello screenshot seguente.
Nota: gli utenti CentOS possono trovare le istruzioni per installare PostgreSQL su CentOS di seguito.
Su Debian/Ubuntu esegui il seguente comando.
Istruzioni per installare PostgreSQL su CentOS
Per installare PostgreSQL su CentOS, esegui il comando mostrato di seguito.
Quindi inizializzare il database eseguendo il comando seguente.
Avvia il servizio utilizzando systemctl come mostrato di seguito.
Installazione di Metasploit in Linux
Per installare Metasploit in Linux, esegui il comando mostrato di seguito.
Dopo aver installato Metasploit, è necessario inizializzarlo; il processo di inizializzazione creerà il database per connettersi a PostgreSQL. Esegui il comando seguente per inizializzare Metasploit.
Nota: quando esegui il comando seguente, ti verrà chiesto se desideri inizializzare il servizio web Metasploit per interagire con Metasploit tramite l'API REST. Poiché non è richiesto e molti utenti lamentano problemi durante la gestione del servizio web, il che non è rilevante per l'utilizzo di Metasploit, ho digitato l'opzione "No".
Una volta inizializzato Metasploit, avviatelo eseguendo il comando mostrato nell'immagine sottostante.
Prima di iniziare con Metasploit, controlla se è stato connesso correttamente al database eseguendo il seguente comando.
Come puoi vedere, Metasploit si è connesso con successo al database; possiamo procedere con i comandi base di Metasploit. Se ricevi errori durante il tentativo di connessione, leggi i comandi per la risoluzione dei problemi del database Metasploit qui.
Iniziare con i comandi di base di Metasploit
Questa sezione spiega i comandi di base di Metasploit, incluso un esempio pratico di utilizzo di uno scenario reale.
La tabella seguente mostra i comandi più comunemente usati di Metasploit con una breve spiegazione. Dopo la tabella puoi vedere come vengono applicati i comandi in uno scenario reale.
- msfconsole
Questo comando esegue Metasploit
- search
Questo comando viene utilizzato per trovare moduli ed exploit in base al nome
- use
Il comando use viene utilizzato per selezionare moduli ed exploit
- show options
Mostra le opzioni del modulo o dell'exploit
- set RHOSTS <Target(s)>
Questo comando viene utilizzato per definire gli obiettivi
- set PORTS <Ports>
Questo comando viene utilizzato per definire le porte
- set THREADS <Threads>
-
Questo comando viene utilizzato per definire i thread
- run
Il comando run viene utilizzato per eseguire i moduli
- back
Il comando back ti riporta alla directory precedente
- db_nmap<Flags><Target(s)>
Il comando db_nmap ti consente di utilizzare Nmap integrato
- set RPORT <Target>
Questo comando viene utilizzato per definire le porte
- info
Il comando info stampa informazioni sul modulo o sull'exploit
- exploit
Il comando exploit esegue l'exploit selezionato
- exit
Il comando exit chiude la sessione dalla destinazione o esce da Metasploit
- load
Il comando load viene utilizzato per caricare i plugin
- unload
Il comando unload viene utilizzato per scaricare i plugin
- cd
Questo comando viene utilizzato per modificare la selezione corrente
- Help / ?
Sia il comando aiuto che il simbolo ? spiegano l'utilizzo dei comandi
Esempio pratico dei comandi base di Metasploit
In questa sezione viene mostrato un esempio pratico dei primi 14 comandi Metasploit elencati nella tabella precedente.
L'indirizzo IP assegnato alla destinazione in questo esempio è 192.168.0.101.
Per iniziare, esegui Metasploit con il seguente comando.
Per iniziare, eseguirò una scansione delle porte sulla destinazione per scoprire le porte aperte. Metasploit include diversi scanner di porte come moduli ausiliari che possiamo scegliere per scansionare i target.
Per trovare i moduli ausiliari dei port scanner disponibili su Metasploit, viene utilizzato il comando cerca, seguito dal tipo di modulo o dalla parola chiave. In questo caso stiamo cercando un portscan; pertanto, dobbiamo eseguire il comando mostrato nell'immagine seguente.
Come puoi vedere nello screenshot precedente, abbiamo diversi scanner di porte per scopi diversi. In questo caso, voglio eseguire una scansione TCP utilizzando il modulo auxiliary/scanner/portscan/tcp.
Per selezionare il modulo scelto, eseguirò il comando usa, seguito dal percorso del modulo come mostrato di seguito.
Una volta selezionato il modulo, dobbiamo conoscere le opzioni richieste o disponibili prima di utilizzarlo, per cui utilizzeremo il comando mostra opzioni come mostrato nello screenshot qui sotto.
Dalle opzioni del modulo elencate nell'immagine sopra, utilizzerò RHOSTS per definire l'indirizzo IP di destinazione, PORTS per definire un intervallo di porte e THREADS per definire il numero di attività simultanee. Quindi avvierò il processo di scansione eseguendo il comando Esegui.
Ad eccezione del comando run utilizzato in questo esempio, RHOSTS, PORTS, e THREADS devono essere precedute dal comando set illustrato nei comandi base di Metasploit tavolo.
La sintassi dell'opzione RHOSTS per definire un target è mostrata di seguito, dove <Target(s)> deve essere sostituito con uno o più host di destinazione o Indirizzi IP. Nel mio caso, come mostrato nella figura seguente, l'indirizzo IP di destinazione è 192.168.0.101.
Di seguito puoi vedere la sintassi dell'opzione PORTS, dove <Ports> deve essere sostituito dalla porta o dall'intervallo di porte che desideri scansionare. Per questo esempio, ho definito un intervallo di porte compreso tra 20 e 100.
L'opzione THREADS consente di definire il numero di thread; Ne ho selezionati 10.
Dopo aver definito le opzioni menzionate in precedenza, eseguo la scansione utilizzando il comando esegui. Puoi vedere l'intero processo nella figura seguente.
Come puoi vedere, le porte 23, 21, 22, 25, 53 e 80 sono aperte nel target. Ma voglio conoscere le versioni del servizio in ascolto su ciascuna porta aperta, per la quale utilizzerò Nmap all'interno di Metasploit.
Utilizzerò il comando back per tornare al contesto iniziale per una visualizzazione più comoda.
Come ho detto, l'output della scansione precedente riportava porte aperte. Ma voglio saperne di più sui servizi dietro queste porte aperte usando Nmap.
Il comando db_nmap esegue Nmap da Metasploit. Nell'esempio seguente, avvierò una scansione dell'impronta. In questo tutorial, non spiegherò i flag di Nmap, ma puoi imparare l'impronta con Nmap in questo articolo che abbiamo pubblicato su LinuxHint.
La sintassi è semplice, esegui db_nmap seguito dai flag desiderati e dall'indirizzo IP di destinazione come mostrato di seguito.
Come puoi vedere nella figura precedente, la versione del servizio FTP in esecuzione sulla porta 21 è vsftpd 2.3.4.
Dopo aver appreso che il nostro obiettivo sta eseguendo vsftpd, possiamo utilizzare il comando search per vedere le risorse disponibili per eseguire un attacco contro il software identificato.
Metasploit ha restituito un exploit disponibile (exploit/unix/ftp/vsftpd_234_backdoor) che possiamo utilizzare contro il server FTP vsftpd 2.3.4.
In precedenza ho eseguito il comando usa per selezionare un modulo. Ora eseguirò il comando use per selezionare l'exploit disponibile, come mostrato nella figura seguente. La sintassi è la stessa; esegui il comando use seguito dal percorso completo dell'exploit.
Dopo aver selezionato l'exploit, eseguirò il comando mostra opzioni per visualizzare le opzioni dell'exploit.
Come puoi vedere nella figura precedente, le opzioni sono RHOSTS per definire il target e RPORT per definire le porte . Sia la destinazione che la porta sono già selezionate. Il target viene recuperato dalla nostra attività precedente, mentre la porta è la porta FTP predefinita; se fosse diverso, eseguirei l'opzione set RPORT
Il comando info mostra informazioni aggiuntive sull'exploit o sul modulo selezionato. Di seguito puoi vedere un esempio dell'output del comando info.
Se volessi definire un target diverso, eseguiresti il comando seguente.
Una volta definiti target e porta, esegui il comando exploit per avviare l'exploit.
Come puoi vedere, ho una shell remota nel target. Il comando ls mostra le principali directory di destinazione. L'obiettivo è stato violato con successo.
Per disconnettermi dalla destinazione, eseguo il comando exit.
Per uscire da Metasploit utilizzare anche il comando exit.
È tutto per ora; l'esempio sopra riportato include i comandi più utilizzati per iniziare con Metasploit.
Comandi per la risoluzione dei problemi Metasploit e PostgreSQL
Molti utenti lamentano problemi durante la connessione al database. Di seguito elenco alcuni comandi che puoi utilizzare nel caso insorgessero problemi durante la connessione di Metasploit al database.
- service postgresql restart
Riavviare PostgreSQL
- msfdbreinit
Rimuovere e reinizializzare il database
- msfdb delete
Rimuovere la banca dati
- msfdbinit
Inizializza il database (esegui dopo l'eliminazione di msfdb)
- msfdb status
Mostra lo stato del database
- msfdb run
Avvia il database ed esegui Metasploit
In caso di problemi, provare a utilizzare i comandi nell'ordine della tabella. Innanzitutto, prova a riavviare PostgreSQL. Se il problema persiste, provare a reinizializzare il database. Se il problema persiste, rimuovere il database e reinizializzarlo. Utilizza il comando msfdb status per verificare lo stato dopo ciascun comando.
Conclusione
Metasploit è uno degli strumenti di pentesting più popolari per il controllo di sicurezza. Insieme a Nmap, porta a risorse di sicurezza multitasking. Metasploit può essere utilizzato sia per scopi difensivi che offensivi. Come puoi vedere, utilizzarlo non è difficile; gli utenti devono solo incorporare un po' di conoscenza pratica se hanno già familiarità con il networking e la programmazione. Metasploit è disponibile anche per Mac OS e Microsoft Windows.
Grazie per aver letto questo tutorial che spiega l'installazione di Metasploit e i comandi di base. Continua a seguirci per ulteriori suggerimenti ed esercitazioni professionali su Linux.