Come eseguire una semplice scansione Nmap. Scanner di rete: connessione, configurazione, utilizzo Scansione tutte le porte

Come eseguire una semplice scansione Nmap.  Scanner di rete: connessione, configurazione, utilizzo Scansione tutte le porte
Come eseguire una semplice scansione Nmap. Scanner di rete: connessione, configurazione, utilizzo Scansione tutte le porte

L'amministratore di sistema immaginava di essere il dio della rete,
ma l'elettricista ha sfatato bruscamente questo mito.

Umorismo informatico

introduzione

La scansione della rete è uno dei primi passi nel processo di hacking o di prevenzione, poiché consente di determinare le porte aperte più vulnerabili e potenzialmente pericolose su un computer. Poiché ogni computer ha una serie di funzionalità specifiche, utilizzando uno scanner di porte è possibile determinare quali servizi (FTP, web, server di posta, ecc.) sono in esecuzione sul computer, nonché quale sistema operativo lo controlla. Quanti più servizi sono in esecuzione su un computer, maggiore è la probabilità che venga violato: dopo tutto, ogni software presenta delle vulnerabilità.

Gli scanner di rete sono progettati per scansionare uno o più indirizzi di rete specifici (indirizzo IP) e identificare le porte aperte e possibilmente non sicure sul computer sotto indagine. Tuttavia, tali programmi vengono solitamente utilizzati dagli hacker per identificare possibili vulnerabilità e successivamente hackerare un computer, e per niente allo scopo di garantirne la sicurezza. Si scopre che la sicurezza e l'hacking, sebbene nella loro essenza agli antipodi, consentono l'uso degli stessi mezzi.

Nozioni di base sul protocollo TCP

Per comprendere come avviene la scansione, è necessario comprendere quale algoritmo viene utilizzato per stabilire una connessione TCP tra computer. Per stabilire una connessione TCP tra un client e un server, il client invia una richiesta (pacchetto TCP) con il flag SYN impostato per avviare la connessione. Se il server è in ascolto su questa porta, invia un pacchetto al client con i flag SYN e ACK impostati, riconoscendo così contemporaneamente la richiesta del client e chiedendogli di stabilire una connessione inversa. Il client invia quindi un pacchetto con il flag ACK impostato, riconoscendo la richiesta del server SYN. Successivamente vengono trasmessi i dati, per confermare la loro ricezione viene inviato ogni volta un pacchetto con il flag ACK. Quando il server o il client ha terminato completamente la trasmissione dei dati, invia un pacchetto con il flag FIN impostato, informando così l'altra parte di terminare la connessione. L'altra parte, dopo aver ricevuto un pacchetto con il flag FIN, invia un pacchetto di ritorno con il flag FIN impostato, confermando la fine della connessione. Per terminare la connessione, entrambe le parti possono inviare un pacchetto con il flag RST. Il processo di scambio dei pacchetti è mostrato più chiaramente nella Tabella. 1.

Tabella 1. Creazione della connessione e processo di scambio di pacchetti

La maggior parte degli scanner riceve informazioni sulle porte aperte disponibili e sulla presenza di un computer nella rete in base a questa sequenza.

Scanner di rete Nmap e sue capacità

Poiché i sistemi basati su Linux e BSD OS sono diventati sempre più popolari ultimamente, in questa pubblicazione esamineremo lo scanner di rete più avanzato per i sistemi operativi Linux: Nmap. Questo programma è uno dei più comuni tra gli utenti Linux e si distingue per strumenti potenti e alta velocità.

Lo scanner di rete Nmap è apparso nel 1997 per i sistemi operativi basati su UNIX e continua a migliorare fino ad oggi. Si differenzia da programmi simili per sistemi operativi basati su Windows per i suoi potenti strumenti integrati, l'alta velocità, varie utilità correlate, vari metodi di scansione e popolarità, poiché quasi tutte le distribuzioni Linux sono dotate di questo scanner di sicurezza di rete. Tuttavia, come la maggior parte dei programmi altamente specializzati per Linux, non dispone di una shell accessibile all'utente finale e viene avviato dalla riga di comando. Naturalmente, ci sono interfacce aggiuntive per la gestione di questa utility, ad esempio, come Umit, Nmapfe, che utilizzano il motore Nmap e visualizzano le informazioni in modalità finestra anziché sulla riga di comando. Tuttavia, questa utilità è stata originariamente sviluppata per funzionare sulla riga di comando e le utilità "allegate" aumentano il tempo di funzionamento e presentano molti svantaggi rispetto all'originale, incluso lo stile di progettazione. Inoltre, esiste una versione di questo programma per i sistemi operativi basati su Windows. Poiché i metodi di lavoro e molti comandi per entrambe le piattaforme sono identici, questo articolo discuterà la versione di Nmap 4.1 per sistemi Linux. Poiché Nmap è incluso in quasi tutte le distribuzioni Linux, è possibile utilizzare i cosiddetti LiveCD per scansionare la rete senza reinstallare il sistema operativo. I dischi di avvio di questo tipo non richiedono installazione e vengono caricati da un'unità CD/DVD, inoltre non è necessario partizionare il disco rigido e creare partizioni aggiuntive: in questo caso, parte della RAM del computer funge da disco rigido.

Attualmente, gli scanner di rete consentono di determinare molti parametri aggiuntivi del computer da scansionare. Nmap è in grado di determinare la maggior parte dei parametri di base di un adattatore di rete: indirizzo MAC, nome del computer nel dominio, porte aperte, porte chiuse da un firewall, produttore del chipset dell'adattatore di rete del computer esaminato, versione del sistema operativo e servizi . Tieni presente che le informazioni sugli indirizzi MAC e sul produttore del chipset possono essere ottenute solo per i computer che si trovano sulla stessa sottorete del PC sottoposto a scansione. Per apprezzare tutti i vantaggi di questo programma, diamo un'occhiata ai tasti più comunemente utilizzati nel suo funzionamento.

Come già accennato, Nmap viene lanciato dalla riga di comando. Quando si avvia il programma senza alcun interruttore o con o senza l'interruttore Nmap -h (--help), sullo schermo verrà visualizzato un elenco dei tasti disponibili e dei parametri impostati (Fig. 1).

Riso. 1. Elenco degli interruttori quando si immette il comando Nmap

La sintassi per eseguire il programma è la seguente: Nmap (specifica di destinazione), dove al posto di Scan type è indicato il tipo di scansione (di default, se questo spazio viene lasciato vuoto, Nmap scansionerà apertamente le porte disponibili). Come opzioni, vengono inseriti tutti i tipi di chiavi e parametri di scansione e invece della specificazione della destinazione, l'indirizzo IP del computer o un intervallo di indirizzi IP (che è determinato dalla maschera di sottorete) o il nome host.

Maschere di sottorete

Molto probabilmente, gli utenti che si occupavano delle impostazioni degli adattatori di rete dovevano occuparsi di un parametro come la maschera di sottorete (Netmask). Non tutti però capiscono di cosa si tratta.

Come sapete, un indirizzo IP è composto da quattro valori interi (ottetto) ed è rappresentato nella forma xxx.xxx.xxx.xxx, dove xxx può assumere valori da 0 a 254. Ma l'indirizzo IP di per sé è non è sufficiente e, affinché un dispositivo di rete possa determinare a quale sottorete appartiene un computer, ha anche bisogno di una maschera di sottorete per indicare quale parte dell'indirizzo IP è l'ID di rete e quale parte è l'ID host. L'ID di rete è essenzialmente l'indirizzo della rete stessa e l'ID host è l'indirizzo del nodo stesso sulla rete. Considera un host con un indirizzo IP 10.242.10.242 e una maschera di sottorete 255.0.0.0: in questo caso il computer appartiene alla rete 10.0.0.0. Qui l'ID di rete è 10.0.0.0 e l'ID host è 242.10.242. Per ottenere un indirizzo di rete, conoscendo l'indirizzo IP e la maschera di sottorete, è necessario applicare ad essi l'operazione di congiunzione bit a bit. Il risultato è un AND bit per bit tra l'indirizzo IP e la maschera di sottorete:

Ad esempio, nel caso di una maschera più complessa:

Indirizzo IP: 00001100 00100010 00111000 1001110 (34.12.56.78)

Maschera di sottorete: 11111111 11111111 11100000 0000000 (255.255.224.0)

Indirizzo di rete: 00001100 00100010 00100000 0000000 (12.34.32.0)

Tuttavia, per scansionare la rete scrivendo meno testo, è possibile utilizzare una voce alternativa per la maschera di sottorete utilizzando i prefissi. Nella maggior parte dei casi, per le reti semplici puoi farla franca con semplici maschere di sottorete come 255.0.0.0, 255.255.0.0 e 255.255.255.0. La maschera di sottorete viene spesso scritta insieme all'indirizzo IP nel formato "Indirizzo IP/numero di un bit nella maschera". Ad esempio, l'indirizzo IP 12.34.56.78 con una maschera 255.255.224.0 (ovvero composta da 19 uno e 13 zeri) può essere scritto come 12.34.56.78/19. Per le tre tipologie considerate, esiste un input alternativo della forma ip/8, ip/16 e ip/24, che permette di ridurre il numero di cifre digitate durante l'immissione sulla riga di comando. Per l'esempio sopra, la maschera di sottorete potrebbe essere scritta in questo modo: 10.242.10.242/8, che è significativamente più corta di 10.242.10.242 maschera 255.0.0.0. Pertanto, l'intervallo di indirizzi IP per la rete 10.0.0.0 può essere scritto come 10.0.0.0/8.

Primi tentativi di scansione

Torniamo allo scanner di rete Nmap. Come già accennato, come specifica di destinazione è possibile specificare un indirizzo IP, un intervallo di indirizzi e un nome host. Se è necessario scansionare molti indirizzi IP e host diversi, inserire tutto manualmente nella riga di comando non è molto conveniente (soprattutto se il numero di indirizzi supera 20): per questo Nmap supporta il caricamento di un file con indirizzi. Nella tabella 2 elenca i possibili tasti associati all'immissione degli indirizzi scansionati.

Tabella 2. Tasti responsabili dell'immissione degli indirizzi

Vale la pena notare che il file contenente l'elenco degli indirizzi deve essere formattato in formato testo. Il nuovo indirizzo o intervallo di indirizzi deve iniziare su una nuova riga. Esempi di immissione di indirizzi scansionati sono mostrati in Fig. 2 e 3.

Riso. 2. Utilizzando l'immissione degli indirizzi dalla riga di comando

Sapendo come impostare gli indirizzi dei computer oggetto di studio, vediamo cosa viene infine visualizzato sullo schermo. Reclutare una squadra Nmap 10.0.0.62 10.0.0.53 per scansionare le porte aperte sui computer con questi indirizzi.

Riso. 3. Specificare gli indirizzi scansionati da un file

Risultati della scansione e loro analisi

Nella fig. La Figura 4 mostra l'output dei risultati della scansione. Innanzitutto, utilizzando il server DNS, Nmap tenta di determinare se il nome corrisponde all'indirizzo IP da scansionare. Se l'operazione ha avuto successo, all'inizio Nmap indica il vero nome del computer. Come si può vedere dalla figura, l'indirizzo IP 10.0.0.62 corrisponde al nome pakhomov.computerpresspublishing.ru. Ma per il successivo indirizzo esaminato - 10.0.0.53 - non esiste tale corrispondenza. Successivamente, Nmap visualizza le informazioni sulle porte chiuse o bloccate (porte chiuse 1674 non mostrate), quindi visualizza (in tre colonne) le porte che hanno uno stato diverso. La prima colonna indica il numero della porta corrente, la seconda può assumere diversi valori che indicheranno lo stato della porta determinato da Nmap:

  • aperto (porta aperta): la porta è aperta e il servizio accetta connessioni TCP o UDP su questa porta (questa porta è più vulnerabile agli hacker);
  • filtrato: la porta è chiusa da un firewall, altro programma o servizio di blocco (regole del router, firewall hardware, ecc.);
  • chiuso: la porta è chiusa perché non sono presenti servizi o altri programmi in ascolto su questa porta del computer.

Riso. 4. Risultato della scansione

Se una porta è impostata su non filtrata, suggerisce che Nmap non è stato in grado di determinare con precisione se la porta è aperta o chiusa, cosa che viene tipicamente assegnata da una scansione ACK (discussa più avanti). Ci sono anche due valori validi: open|filtered e closed|filtered - in entrambi i casi Nmap non è stato in grado di determinare lo stato della porta. Per determinare con maggiore precisione il valore nel primo caso, è necessario utilizzare il metodo di scansione FIN, Null, Xmas o UDP. Molto probabilmente, questi metodi di scansione forniranno informazioni più dettagliate. Per quanto riguarda il valore chiuso|filtrato, appare solo se viene utilizzato il metodo di scansione Idlescan.

L'ultima colonna fornisce alcune informazioni sul servizio previsto utilizzando questa porta. Diciamo che se la porta numero 80 è aperta, Nmap ti informa che questa porta è solitamente utilizzata dai server web (http). Va notato che per maggiore sicurezza alcuni servizi non vengono avviati sulla loro porta standard, ma su un'altra, quindi è impossibile dire che il server web sia in esecuzione sulla porta 80 (per una determinazione più accurata del servizio in esecuzione, è previsto il metodo di scansione della versione). Dopo aver visualizzato l'elenco delle porte aperte, Nmap visualizza l'indirizzo fisico (MAC) del dispositivo di rete e, se possibile, determina anche il produttore del chipset dell'adattatore di rete del PC esaminato e, in alcuni casi, anche il suo nome.

Metodi di scansione per la presenza di un computer su una rete

Gli esempi sopra discussi sono abbastanza semplici e non richiedono l'inserimento di chiavi aggiuntive, ma sono generalmente adatti alla maggior parte dei computer della rete. Tuttavia, per una scansione aggressiva, al fine di ottenere la massima informazione possibile sul computer esaminato, è necessario impostare correttamente i parametri di scansione. Per determinare quali computer sono in esecuzione su una rete, Nmap ti consente di utilizzare diversi metodi di scansione della rete, che rientrano tutti nella sezione Rilevamento host.

Rilevamento di un computer utilizzando il metodo Ping

Il metodo più semplice è rilevare i computer in esecuzione utilizzando Ping. Per fare ciò, è necessario utilizzare l'opzione -sP sulla riga di comando. Lo scanner di rete di Nmap invia richieste echo ICMP a un determinato indirizzo o indirizzi IP e attende una risposta. Se viene ricevuta una risposta, significa che il computer sottoposto a scansione funziona, il che viene visualizzato come risultato della scansione. Nella fig. La Figura 5 mostra il risultato dell'utilizzo di questo metodo.

Riso. 5. Risultato della scansione utilizzando -sP

Tuttavia, oggi molti computer dotati di qualche tipo di firewall tendono a bloccare le richieste ICMP, quindi anche se il computer è acceso, Nmap segnalerà che il computer non esiste sulla rete. In questo caso, Nmap utilizza un metodo diverso per determinare se un computer è sulla rete. L'esempio di scansione Ping discusso si basa sulla tabella della sequenza di creazione della connessione fornita.

Rilevamento tramite pacchetti SYN/ACK e UDP

Se un servizio è in ascolto su una porta e Nmap tenta di stabilire una connessione con essa (invia un pacchetto con il flag SYN), il servizio può rispondere con un pacchetto con i flag SYN/ACK, che indicherà che il computer esiste sulla porta rete. Ma se su questa porta non c'è servizio, il server risponde con un pacchetto con il flag RST, che indica anche che all'indirizzo IP indicato c'è un computer. Se non è stato ricevuto nulla dal server in risposta al pacchetto SYN inviato, ciò significa che il computer è spento o il traffico è bloccato da un firewall. Per aggirare il blocco del firewall, è stato sviluppato un altro metodo di scansione. Lo scanner Nmap invia solitamente pacchetti con flag SYN/ACK e un pacchetto UDP sulla porta standard 80, che viene utilizzata più spesso per il traffico web e quindi molto raramente viene bloccata da un firewall. Utilizzando gli switch -PS, -PA e -PU è possibile specificare quale pacchetto verrà inviato al server e su quale porta. Un esempio di questi comandi è mostrato in Fig. 6. A proposito, il nome della porta è scritto insieme al tipo di pacchetto: -PS80,81.

Riso. 6. Risultato della scansione utilizzando -PA, -PS e -PU

Rilevamento di un computer utilizzando vari pacchetti ICMP

Il metodo sopra descritto non consente di determinare con precisione la presenza di un computer sulla rete. Lo scanner di rete Nmap ha un'altra capacità di determinare la presenza di un computer sulla rete. Per utilizzare questa funzionalità, è necessario specificare le opzioni aggiuntive -PE, -PP o -PM. Il primo metodo utilizza le richieste echo ICMP, tuttavia, come accennato, il traffico ICMP è spesso bloccato, quindi questo metodo non è sempre applicabile, ma seguendo le specifiche ICMP ci sono anche richieste di timestamp e richieste di maschera di indirizzo). Utilizzando questi metodi è possibile ottenere una risposta anche da un computer remoto, ma spesso non danno il risultato desiderato. Per utilizzare il metodo echo ICMP, è necessario specificare la chiave -PE; per gli altri due metodi descritti, è necessario specificare rispettivamente le chiavi -PP e -PM. Nella fig. La Figura 7 mostra i tentativi di scansione utilizzando tre metodi.

Riso. 7. Risultato della scansione utilizzando i tasti -PE, -PP e -PM

Disattiva il rilevamento del computer durante la scansione

Di norma, è impossibile determinare con precisione se un computer è nella rete o, se presente, la scansione potrebbe essere bloccata da un firewall. A questo proposito è stata introdotta l'opzione -P0, in cui il computer in esame non viene scansionato per la sua presenza in rete (cioè non viene affatto sottoposto a ping), ma vengono scansionate solo le porte del computer. Quando si utilizza questa opzione, Nmap presuppone automaticamente che gli indirizzi IP da scansionare siano sulla rete e non invia richieste per determinare la presenza del computer sulla rete, il che aumenta significativamente la velocità di scansione. Questa opzione viene solitamente utilizzata per la scansione nascosta utilizzando i metodi che verranno descritti di seguito, poiché in questo caso sul computer in esame non rimane alcuna informazione sulle richieste di eco ICMP.

Per impostazione predefinita, durante la scansione di un indirizzo IP, Nmap ottiene le informazioni sul nome del computer dal DNS del sistema. Per aumentare la velocità di scansione, puoi disabilitare questa opzione aggiungendo l'opzione -n. A proposito, in quasi tutti i programmi e servizi che sono in un modo o nell'altro collegati all'ambiente di rete, l'opzione -n ​​viene utilizzata proprio in questo significato (netstat -n, route -n, ecc.). Esistono inoltre diverse opzioni che consentono di ottenere il nome del computer utilizzando non solo i DNS di sistema, ma anche server DNS esterni. Per attivare questa opzione, è necessario eseguire Nmap con la chiave --server-dns , dove serv1 e serv2 sono indirizzi di server DNS. Inoltre, puoi utilizzare l'opzione -R. Come accennato, per impostazione predefinita Nmap utilizza i DNS di sistema per ottenere il nome del computer. Per specificare manualmente questa opzione, è necessario immettere la chiave --system-dns. Nella fig. La Figura 8 mostra esempi di utilizzo delle opzioni -n e -R --dns-servers.

Riso. 8. Utilizzando le opzioni -n e -R --dns-servers

Metodi per la scansione delle porte su un computer remoto

Lo scanner di rete Nmap prevede l'utilizzo di una varietà di metodi di scansione per ottenere le informazioni necessarie. Tuttavia, facciamo una riserva sul fatto che molti metodi implicano varie manipolazioni con i flag dei pacchetti TCP a basso livello e quindi richiedono l'autorità di root (superutente) nel sistema per funzionare. I metodi utilizzati possono funzionare solo separatamente l'uno dall'altro; solo la scansione della porta UDP può essere eseguita contemporaneamente ad altri metodi di scansione. La scansione delle porte si basa sullo stesso metodo di invio di pacchetti con flag modificati quando si avviano connessioni TCP e UDP.

Scansione utilizzando il metodo SYN

Il metodo più comune, e quello predefinito, è la scansione TCP SYN. Per la maggior parte dei computer oggetto dello studio, questo metodo è sufficiente per determinare le porte aperte. La scansione TCP SYN è la più veloce rispetto ad altri metodi: può scansionare diverse centinaia di porte al secondo, mantenendo il computer di scansione nell'ombra perché non termina mai la connessione TCP (la maggior parte delle utility di monitoraggio non registra i dati di connessione). Per utilizzare questo metodo, è necessario disporre dei diritti di superutente (root). Lo scanner di Nmap invia un pacchetto con il flag SYN al computer sotto indagine, come se volesse aprire una normale connessione TCP, seguendo le regole riportate ad inizio articolo. Se viene ricevuta una risposta (un pacchetto con i flag SYN/ACK) dall'host richiesto, la porta verrà designata come aperta e se viene ricevuto un pacchetto con il flag RST, verrà designata come chiusa. Se il computer scansionato non risponde, si presuppone che questa porta sia filtrata dal firewall. Per utilizzare questo metodo di scansione, è necessario eseguire Nmap con l'opzione -sS (Fig. 9).

Riso. 9. Scansione utilizzando l'opzione -sS (scansione TCP SYN)

Come puoi vedere dall'immagine, la maggior parte delle porte sono aperte, ma alcune sono bloccate dal firewall.

Scansione utilizzando la funzione di sistema connect()

Ci sono situazioni in cui non disponi delle autorizzazioni di superutente, ma è necessario eseguire la scansione di un computer remoto. In questo caso, Nmap utilizza un metodo basato sullo stabilire una connessione utilizzando la funzione di sistema connect(), utilizzata dalla maggior parte delle applicazioni: client p2p, browser e applicazioni di rete. In questo caso Nmap invia una richiesta al sistema operativo stesso, che stabilisce una connessione TCP. Se la connessione viene stabilita, la porta viene contrassegnata come aperta e, in caso contrario, come chiusa. Dopo aver determinato lo stato della porta, Nmap termina la connessione, ovvero tramite la funzione connect() viene inviato un pacchetto con il flag RST. Tuttavia, questo metodo presenta uno svantaggio: poiché la connessione è completamente stabilita, rimane nei registri e nei registri del sistema scansionato, e quindi i sistemi di monitoraggio determineranno quasi sempre quale computer ha eseguito la scansione. A questo proposito, questo metodo è usato raramente. Per eseguire la scansione precedente, è necessario eseguire Nmap con l'opzione -sT. Un esempio di utilizzo del metodo di scansione utilizzando la funzione di sistema connect() è mostrato in Fig. 10.

Riso. 10. Scansione utilizzando l'opzione -sT (scansione TCP connect())

Scansione delle porte del protocollo UDP

Non dimenticare i servizi UDP, che sono diffusi quasi quanto i servizi che utilizzano il protocollo TCP. I servizi più comuni che utilizzano il protocollo UDP sono DNS, SNMP e DHCP. Poiché la scansione UDP è più complessa e più lenta della scansione TCP, molti sistemi di sicurezza la trascurano e ignorano l'ascolto (filtraggio) su queste porte. Ma in questo caso, anche i servizi in ascolto su queste porte potrebbero essere vulnerabili agli hacker, poiché Nmap consente di determinare quali porte sono aperte e quali servizi sono in ascolto su di esse. Poiché UDP è un protocollo diverso da TCP, il metodo di scansione è diverso da quelli discussi in precedenza. Nmap invia un pacchetto UDP con un'intestazione vuota a tutte le porte esaminate e attende una risposta. Se in risposta riceve un pacchetto ICMP con l'errore irraggiungibile, la porta viene considerata chiusa. Quando si ricevono pacchetti con altri errori, Nmap presuppone che la porta sia filtrata dal firewall. Il pacchetto di risposta UDP ricevuto indica la presenza del servizio e la porta è contrassegnata come aperta. Se non viene ricevuta una risposta dopo diversi tentativi, Nmap contrassegna la porta come aperta|filtrata perché non può determinare con certezza se la porta è aperta o se il firewall sta bloccando il traffico su quella porta. Inoltre, molti computer possono inviare solo un numero limitato di messaggi di errore ICMP al secondo. Questo viene fatto per proteggere dal sovraccarico della rete. Per chiarire lo stato di una porta, è possibile utilizzare l'opzione -sV (in questo caso, Nmap tenta di determinare il servizio in esecuzione sulla porta scansionata e la sua versione), ma poi la velocità di scansione viene ridotta di un ordine di grandezza. La scansione UDP può essere eseguita contemporaneamente a qualsiasi metodo di scansione TCP, poiché utilizzano protocolli diversi. La scansione UDP viene avviata quando viene specificata l'opzione -sU. Le differenze di velocità sono mostrate in Fig. 11, che fornisce esempi sequenziali di scansione senza l'opzione -sV e del suo utilizzo.

Riso. 11. Scansione UDP con e senza l'opzione -sV

La figura mostra che la scansione utilizzando l'opzione di rilevamento della versione del servizio ha richiesto quasi 10 volte più tempo (54 secondi contro 4) rispetto a senza di essa. Ma questa opzione ha contribuito a determinare che le porte UDP 53 e 137 erano aperte, sebbene la scansione precedente non fosse riuscita a determinarne con precisione lo stato. Allo stesso tempo, anche questa opzione non sempre aiuta a ottenere informazioni affidabili: su nove porti con uno stato incerto, solo due sono stati identificati con precisione (53esimo e 137esimo). Nmap consente inoltre di impostare il tempo di risposta per il computer esaminato, eliminando così gli host lenti e aumentando significativamente la velocità della scansione UDP. L'opzione responsabile della risposta del computer scansionato può essere utilizzata non solo con la scansione UDP, ma anche con tutti gli altri metodi. Per utilizzare questa opzione è necessario inserire la chiave --hosts-timeout , dove sec è il tempo di risposta in millisecondi.

Scansione con metodi FIN, Xmas e Null

Poiché una connessione TCP si basa sull'handshake a tre vie discusso all'inizio dell'articolo, interrompendo la sequenza di connessione è possibile ottenere anche informazioni sulle porte chiuse e aperte dell'host in esame. Esiste un metodo di scansione FIN in cui i pacchetti con il flag FIN vengono inviati all'host remoto, che viene solitamente utilizzato quando si chiude una connessione. In questo caso la porta chiusa del computer, secondo la specifica del protocollo TCP, deve inviare un pacchetto di risposta con il flag RST. Se la porta è aperta o bloccata da un firewall, non ci sarà alcuna risposta da parte sua. Come nel caso della scansione SYN, la connessione non è completamente stabilita, quindi nei log di sistema dell'host indagato potrebbero non essere rimaste informazioni, mentre allo stesso tempo la maggior parte dei sistemi di monitoraggio può registrare questo tipo di scansione. Questo metodo è più segreto della scansione della connessione TCP e consente di determinare se una porta è chiusa o aperta (bloccata), quindi esistono diverse modifiche a questo metodo. Quando si utilizza il metodo di scansione nulla, invece di un pacchetto con un flag FIN, viene inviato un pacchetto con un'intestazione vuota (0 bit, tutti i flag disabilitati). Questo metodo funziona secondo il principio sopra descritto. Un altro metodo che ha un algoritmo operativo simile è chiamato scansione natalizia. In questo caso viene inviato all'host un pacchetto colorato con diverse bandiere (FIN, PSH e URG) a forma di albero di Natale. Ciascuno dei metodi considerati ha le proprie chiavi: -sN, -sF e -sX (rispettivamente Null-, FIN- e Xmas-scanning). Nella fig. 12 mostra esempi di scansione di tutti e tre i tipi e per confronto in Fig. 13 - Metodo di scansione SYN.

Riso. 12. Scansione utilizzando gli interruttori -sN, -sF e -sX

Confrontando i risultati della scansione utilizzando SYN e Null, FIN e Xmas, è chiaro che con il loro aiuto molte porte non sono state identificate come esattamente aperte, ma solo come open|filtered. Questo perché la maggior parte dei sistemi operativi Windows, dei dispositivi di rete Cisco e altri non sempre seguono le specifiche, quindi il risultato di tale scansione per questi tipi di sistemi sarà molto probabilmente negativo. Allo stesso tempo, la scansione con questi tre metodi è adatta per identificare le porte aperte sui sistemi basati su UNIX che seguono le specifiche del protocollo TCP e consente anche di aggirare molti firewall e filtri di pacchetti.

Riso. 13. Scansione SYN

Scansione utilizzando vari flag

Nmap ti permette di impostare i flag che verranno utilizzati per questo tipo di scansione, per cui è necessario eseguire il programma con l'opzione --scanflags. In questo caso, i tipi di flag possono essere diversi: URG, ACK, PSH, RST, SYN e FIN. La sintassi del comando è la seguente: Nmap --scanflags URGACKPSHRSTSYNFIN. Oltre a questo comando, è possibile specificare due metodi di scansione: -sA e -sF (se non specificati, per impostazione predefinita viene utilizzato il metodo di scansione SYN).

Scansione utilizzando i metodi ACK e Window

Per determinare quali porte di un computer si trovano nello stato filtrato e quali sono nello stato non filtrato, esiste un tipo di scansione separato: ACK. Può anche essere abilitato utilizzando l'opzione --scanflags ACK. Poiché molti firewall esaminano solo i pacchetti SYN su una porta specifica, eseguendo quindi il filtraggio, inviando pacchetti con il flag ACK, esiste un'alta probabilità di determinare se sul computer in esame esiste o meno un firewall. In questo caso, il pacchetto con il flag ACK non viene inviato come parte della connessione, ma separatamente. Se il lato ricevente invia un pacchetto di ritorno con il flag RST (di conseguenza, la porta non è bloccata da un firewall), la porta viene contrassegnata come non filtrata, ma se l'host non risponde al pacchetto, su di essa viene installato un firewall e la porta è nello stato filtrato. Per attivare questo metodo, è necessario eseguire Nmap con l'opzione -sA. Nella fig. La Figura 14 mostra un esempio di questo metodo di scansione.

Riso. 14. Scansione utilizzando il metodo ACK

Poiché un computer è già stato esaminato tramite una scansione SYN (vedi Figura 13), possiamo dire che una scansione ACK può determinare lo stato solo di alcune porte host. Questo metodo ha un analogo che funziona secondo lo stesso principio, ma interpreta i risultati ricevuti dall'host in modo leggermente diverso. La scansione della finestra TCP presuppone che su alcuni host i servizi utilizzino un campo finestra positivo nel pacchetto di risposta (non zero). Pertanto, utilizzando questo metodo, Nmap analizza le intestazioni dei pacchetti in entrata con il flag RST e, se il pacchetto in entrata contiene un valore di campo positivo, Nmap contrassegna questa porta come aperta. Ricevere un pacchetto con un valore di campo pari a zero significa che la porta è chiusa. Per attivare questo metodo di scansione, è necessario inserire l'opzione -sW.

Scansione Maimon

Un altro metodo di scansione basato su una connessione a tre vie è il metodo descritto da uno specialista di nome Uriel Maimon. Il suo metodo è quasi identico ai metodi FIN, Xmas e Null, tranne per il fatto che i pacchetti vengono inviati con i flag FIN/ACK. Qui, se la porta è chiusa, l'host dovrebbe rispondere con un pacchetto RST. Per attivare questo metodo di scansione, è necessario inserire l'opzione -sM.

Tutti i metodi sopra indicati si basano sullo stesso metodo di connessione a tre vie per una connessione TCP.

Scansione nascosta utilizzando l'algoritmo idlescan

Nessuno dei metodi discussi consente di nascondere completamente l'indirizzo IP dell'host di scansione. Poiché lo spoofing dell'indirizzo IP di un pacchetto in uscita non è così difficile, è stato trovato un metodo di scansione in cui l'host analizzato non è in grado di determinare l'esatto indirizzo IP del computer dal quale viene eseguita la scansione. Il metodo idlescan è quasi identico alla scansione SYN nel suo algoritmo operativo. Per capire come viene nascosto l'indirizzo IP del computer di scansione, è necessario sapere che ciascun pacchetto IP ha il proprio numero di identificazione del frammento (IPID). Molti sistemi operativi incrementano questo numero per ogni pacchetto inviato successivo, in modo da poter determinare facilmente quanti pacchetti ha inviato l'host. Vale la pena considerare che se un computer riceve un pacchetto con i flag SYN/ACK da un indirizzo dal quale non ha richiesto una connessione, in risposta invierà un pacchetto con il flag RST. Questo metodo prevede l'utilizzo di un altro computer "zombi", per conto del quale i pacchetti verranno inviati al computer scansionato. Successivamente, considereremo l'algoritmo del metodo idlescan.

Lascia che il computer che esegue la scansione sia l'aggressore, il computer zombie lo zombie e il computer sottoposto a scansione il bersaglio.

Il primo caso: la porta esaminata è aperta:

  • l'attaccante invia un pacchetto con i flag SYN/ACK a zombie e in risposta zombie invia un pacchetto con il flag RST. Questo pacchetto, ad esempio, ha un numero identificativo (IPID) pari a 123;
  • l'attaccante invia un pacchetto con il flag SYN sulla porta desiderata per conto del computer zombie;
  • target invia una richiesta di risposta con flag SYN/ACK al computer zombie. In risposta, zombie invia un pacchetto con il flag RST al computer di destinazione, poiché zombie non intendeva stabilire una connessione con esso. Questo pacchetto ha un numero aumentato di uno: IPID 124;
  • l'attaccante invia un pacchetto con il flag SYN/ACK al computer zombie, in risposta zombie invia un pacchetto con il flag RST. Questo pacchetto ha un IPID aumentato di due: 125.

Secondo caso - il porto è chiuso:

  • l'attaccante invia un pacchetto con i flag SYN/ACK a zombie, in risposta zombie invia un pacchetto con il flag RST. Questo pacchetto, ad esempio, ha un numero identificativo (IPID) pari a 123;
  • l'attaccante invia un pacchetto con il flag SYN sulla porta desiderata per conto del computer zombie;
  • target invia un pacchetto con il flag RST al computer zombie. zombie non invia nulla in risposta;
  • l'attaccante invia un pacchetto con il flag SYN/ACK al computer zombie, in risposta zombie invia un pacchetto con il flag RST. Questo pacchetto ha un IPID aumentato di uno, 124.

Pertanto, con una semplice operazione aritmetica è possibile calcolare se una porta è aperta o chiusa sul computer in esame. Il vantaggio di questo metodo è che è molto difficile identificare l'indirizzo IP del computer di scansione, poiché il computer di destinazione ritiene che la scansione sia stata eseguita dal computer zombie e le richieste del computer di scansione rimangono solo nei registri degli zombie. Per attivare questo metodo di scansione, è necessario inserire l'opzione -sI , dove zombie è il nome o l'indirizzo IP del computer per conto del quale verrà eseguita la scansione, e port è la porta per la comunicazione tra il computer in scansione e zombie (80 per impostazione predefinita, poiché sulla maggior parte dei computer questa porta è aperta al traffico web ). Un esempio di scansione utilizzando questo metodo è mostrato in Fig. 15 viene mostrato anche un esempio di scansione SYN a scopo comparativo.

Riso. 15. Scansione utilizzando il metodo idlescan

Come si può vedere dalla figura, il computer “zombi” era un PC con un indirizzo IP 10.0.0.79, mentre il computer scansionato aveva un indirizzo IP 10.0.0.62. Dopo aver analizzato i risultati, si può sostenere che il metodo idlescan non sempre determina correttamente lo stato di una porta (se è aperta o bloccata da un firewall). Inoltre, se confrontiamo il tempo di scansione, la velocità del metodo SYN è molto più elevata, poiché durante la scansione idlescan Nmap a volte deve inviare pacchetti più volte, poiché un computer zombie può anche lavorare intensamente e scambiare attivamente pacchetti, abbattendo così il Contatore IPID, calcolato da Nmap. Questo metodo è il più preferibile se è necessario nascondere la scansione, tuttavia non fornisce ancora un quadro accurato delle porte aperte sul computer esaminato. Si consiglia di eseguire questo tipo di scansione con l'opzione -P0, poiché in questo caso Nmap non interroga l'host prima della scansione. In alcuni casi, se un computer zombie si comporta in modo aggressivo e interferisce con la ricezione dei risultati della scansione (non può visualizzare i risultati della scansione) ed è necessario ottenere informazioni sulle porte aperte, è possibile utilizzare l'opzione -v -v (modalità dettagliata). In questa modalità, Nmap visualizza sullo schermo online tutte le informazioni sui servizi e ricevute.

Cerca protocolli aperti

In alcuni casi è necessario definire protocolli aperti sull'host remoto. Poiché a ciascun protocollo IP del livello di trasporto viene assegnato il proprio numero di sequenza e ciascun pacchetto IP dispone di un campo di protocollo che indica il tipo di intestazioni del pacchetto e il numero di protocollo, è possibile scoprire quali protocolli sono aperti sul computer che si sta testando. Per determinare se un protocollo è disponibile su un host, Nmap invia diversi pacchetti con intestazioni vuote contenenti solo il numero di protocollo nel campo protocollo. Se il protocollo non è disponibile, il computer restituirà il messaggio ICMP “protocollo non disponibile”. Se l'host non risponde con alcun pacchetto, ciò potrebbe significare che il protocollo è disponibile o che il firewall sta bloccando il traffico ICMP. Questa situazione è molto simile alla scansione UDP, dove è anche impossibile determinare con precisione se una porta è aperta o filtrata da un firewall. Per abilitare la scansione del protocollo, è necessario utilizzare l'opzione -sO. Nella fig. 16 mostra un esempio di utilizzo di questo metodo.

Riso. 16. Cercare i protocolli disponibili

Di conseguenza, Nmap genera protocolli aperti e filtrati perché può determinare con precisione questo stato. I rimanenti protocolli scansionati sono contrassegnati come aperti|filtrati.

Scansione invisibile utilizzando il metodo di rimbalzo ftp

Lo scanner di rete Nmap supporta il metodo di scansione del rimbalzo ftp, la cui essenza è la capacità del server ftp di inviare file a terzi. Poiché questa funzione viene molto spesso utilizzata per altri scopi (scansione, tentativi di hacking), molti server ftp non la supportano più o la bloccano. Il metodo ftpbounce consente di scansionare le porte di un computer remoto per conto di un server ftp. Il computer di scansione invia una richiesta al server FTP per stabilire una connessione TCP su una porta specifica con il computer sottoposto a scansione per trasferire il file. L'analisi degli errori ricevuti dal server ftp consente a Nmap di determinare se una porta è aperta o chiusa. In questo caso la segretezza della scansione è garantita, poiché per il computer esaminato l'iniziatore della connessione è il server FTP e non il computer di scansione. Questo metodo è conveniente soprattutto perché il firewall, di regola, consente il passaggio del traffico proveniente da un server ftp noto, poiché quest'ultimo di solito ha più diritti di accesso alle risorse di rete sia esterne che interne. Pertanto, diventa possibile bypassare i filtri delle porte e i firewall che non consentono il traffico durante la scansione con altri metodi. Per scansionare un computer utilizzando questo metodo, è necessario trovare un server ftp adatto che supporti la funzione descritta e un login/password per accedere a questo server ftp. Per eseguire Nmap durante la scansione con questo metodo, è necessario specificare la chiave -B , dove nome utente e password sono il nome utente e la password per accedere al server ftp e server è il nome o l'indirizzo IP del server. Per impostazione predefinita, se non usi la chiave:port, Nmap proverà a connettersi al server ftp sulla porta standard 21. Nella fig. La Figura 17 mostra un esempio di questo metodo.

Riso. 17. Scansione utilizzando il metodo di rimbalzo ftp

Come si può vedere dalla figura, la scansione con questo metodo ha dato risultati positivi. Tuttavia, la scansione con questo metodo non è sempre possibile, poiché molto spesso il server ftp non riesce a stabilire una connessione con un computer remoto utilizzando porte privilegiate (inferiori a 1024). Per tali errori, Nmap visualizza la riga il tuo server di rimbalzo ftp non consente porte privilegiate O problema di ricezione dal server di rimbalzo ftp. Come con la scansione idlescan, per nascondere la presenza, si consiglia di specificare l'opzione -P0 in modo che Nmap non tenti di inviare richieste echo ICMP al computer sottoposto a scansione. Vale la pena prestare attenzione al frequente blocco di Nmap quando si utilizza il rimbalzo ftp su determinati host. Per ottenere comunque le informazioni necessarie, è necessario eseguire Nmap con le opzioni -v -v, con l'aiuto delle quali lo scanner di rete visualizzerà online le informazioni ricevute.

Impostazioni della porta scansionate

Lo scanner Nmap ha molte impostazioni aggiuntive. Nella tabella 3 descrive le impostazioni relative alle porte di scansione.

Tabella 3. Impostazioni della porta di scansione

Per impostazione predefinita, Nmap scansiona tutte le porte, comprese le porte privilegiate (da 0 a 1024) e le porte definite nel file Nmap-services. Questo file viene costantemente aggiornato dagli sviluppatori e include le porte utilizzate da applicazioni e servizi comuni. Il file contiene il nome del servizio, la sua descrizione e il protocollo che utilizza. Poiché Nmap ti consente di scansionare non solo le porte TCP ma anche quelle UDP, utilizzando l'opzione -p puoi specificare chiaramente il protocollo e la sua porta. La scansione della 25a porta UDP e dell'80a porta TCP sarà simile a questa: Nmap -p U:25,T:80.

Determinazione delle versioni dei servizi in esecuzione

Come notato all'inizio dell'articolo, Nmap con un alto grado di probabilità consente di determinare quale versione del sistema operativo è in esecuzione su un computer remoto. Allo stesso tempo, Nmap può anche identificare le versioni dei servizi in esecuzione su un PC remoto, a condizione che le porte di un particolare servizio siano aperte. Determinare la versione del sistema operativo e dei servizi ti aiuterà a ottenere un quadro più chiaro di quanto sia vulnerabile il computer sotto indagine e quali buchi nei servizi potrebbero rimanere aperti agli hacker. Per ottenere informazioni sulla versione del servizio in esecuzione o del sistema operativo, Nmap utilizza il suo database, che include tag specifici specifici per questa particolare versione del software. Le informazioni vengono raccolte dopo ogni scansione utilizzando qualsiasi metodo di analisi delle porte aperte. La determinazione delle versioni del programma non sempre dà un risultato positivo, ma nella maggior parte dei casi le informazioni ottenute in questo modo aiutano a farsi un'idea del sistema utilizzato sul computer remoto. Nel caso in cui Nmap riceva informazioni su un host ma non riesca ad abbinarlo a una descrizione specifica nel suo database, il programma visualizza il risultato sullo schermo. Se lo desideri, se la versione del sistema operativo o del servizio è nota, ma Nmap non è riuscita a determinarla, puoi copiare l'output e inviarlo allo sviluppatore: questo descrittore sarà incluso nella prossima versione del programma. Nella tabella La Figura 4 mostra le chiavi per determinare le versioni dei servizi in esecuzione sull'host remoto.

Tabella 4. Impostazioni di scansione per determinare le versioni del servizio

L'opzione -allports, mostrata nella tabella. 4 generalmente non viene utilizzata, perché se questa opzione è abilitata, Nmap invierà i pacchetti anche sulla porta TCP 9100. Questo perché molte stampanti hanno il seguente svantaggio: quando ricevono i pacchetti sulla porta 9100, stampano automaticamente le informazioni ricevute e, evitare montagne di carta danneggiata, la porta TCP 9100 viene saltata durante la determinazione della versione.

Determinazione della versione del sistema operativo su un computer remoto

Naturalmente, una delle opzioni più interessanti è determinare il sistema operativo del computer remoto. In questo caso, viene utilizzato un metodo modernizzato per determinare le versioni dei servizi in esecuzione. Nmap esegue vari test inviando pacchetti su protocolli diversi in condizioni diverse al computer sottoposto a test. Confrontando i risultati ottenuti con i valori di riferimento specificati nel file Nmap-os-fingerprints, il programma produce un risultato riepilogativo per il computer. A seconda della quantità e della qualità delle informazioni ricevute, Nmap può determinare il produttore del sistema operativo, la sua versione approssimativa e il tipo di apparecchiatura, poiché il risultato finale della scansione non è sempre un computer, ma può anche essere un router, uno switch gestito , eccetera. Per attivare questo metodo di scansione, è necessario specificare l'opzione -O, nonché l'opzione -A, che attiva il rilevamento della versione del sistema operativo e delle versioni dei servizi in esecuzione. Nella fig. 18 mostra un esempio di definizione di un sistema operativo.

Riso. 18. Definizione del sistema operativo

Impostazioni del ritardo temporale

L'elevata velocità operativa è determinata temporaneamente S parametri per le risposte e l'invio di pacchetti. Per impostazione predefinita, Nmap utilizza le impostazioni di temporizzazione più efficienti per produrre risultati di scansione plausibili. Tuttavia, i professionisti della sicurezza che utilizzano questo scanner potrebbero aver bisogno di impostazioni temporanee speciali per determinati metodi di scansione. S x costanti A questo proposito gli sviluppatori di Nmap hanno previsto l'impostazione manuale di alcune costanti, oltre alla possibilità di impostare una “schedule” di scansione. Alcune opzioni utilizzano un'impostazione dell'ora, che per impostazione predefinita è in millisecondi, ma è possibile scrivere l'ora come s, m e h: questi argomenti letterali vengono aggiunti alla fine del valore numerico, abbreviando notevolmente la notazione e semplificandola. Ad esempio, 600000, 600s, 10m indicano la stessa ora. Specificare temporaneamente le possibili chiavi S x parametri e prestazioni sono riportati nella tabella. 5.

Tabella 5. Impostazioni di tempistica e prestazioni

Pianificazione scansione

Come accennato in precedenza, Nmap ti consente di impostare un programma di scansione per cercare di nascondere la tua presenza a firewall e sistemi di sicurezza. Sono disponibili sei programmi di scansione: Paranoico, Subdolo, Educato, Normale, Aggressivo e Folle, con il programma Normale che è quello predefinito. Temporaneo S I ritardi e altri fattori associati sono riportati nella tabella. 6.

Tabella 6. Caratteristiche delle varie pianificazioni di scansione

Opzioni aggiuntive della riga di comando

Quasi tutte le opzioni più importanti della riga di comando sono descritte sopra. Di seguito sono riportati alcuni parametri comunemente utilizzati:

  • -S - utilizzare l'indirizzo IP di qualcun altro nei pacchetti inviati al computer. In questo caso il server restituirà la risposta all'indirizzo specificato;
  • -e - utilizzare solo un'interfaccia di rete specifica, ad esempio Nmap –e eth0;
  • -v; -D- visualizzazione online dello stato corrente della scansione. La direttiva -d abilita la modalità debug, che visualizza tutte le informazioni possibili sullo stato corrente del funzionamento, nonché sugli errori e sui relativi codici;
  • -G (alternativa --porta-origine ) - consente di selezionare la porta di origine da cui verranno inviati i pacchetti durante la scansione;
  • -lunghezza-dati - permette di impostare la dimensione del pacchetto in byte. I valori predefiniti sono 40 e 28 rispettivamente per le richieste TCP e ICMP;
  • -ttl - consente di impostare l'ora per un pacchetto IP nel campo time-to-live;
  • -spoof-mac - consente di impostare un indirizzo MAC (fisico) diverso per i frame. Esempio di applicazione: Dlink, 0, 01:02:03:04:05:06;
  • -badsum- invia pacchetti TCP e ICMP con un checksum danneggiato. I firewall o i sistemi di sicurezza in genere rispondono a tale pacchetto;
  • -6 - utilizzare la scansione per le reti IPv6. In questo caso è necessario specificare un indirizzo IPv6 o un nome host;
  • -log-errori- tutti gli errori vengono registrati in un file di registro;
  • -SU; -oM; -OS; -oA; -oG - registrazione delle scansioni in un log. I tipi di record differiscono nel metodo di archiviazione delle informazioni. L'opzione -oN registra dopo che le informazioni appaiono sullo schermo e l'opzione -oA registra tutti i formati possibili contemporaneamente in file con il nome file e varie estensioni (*.xml, *.gNmap, *.Nmap).

Conclusione

Naturalmente non tutte le opzioni dello scanner sono state sufficientemente prese in considerazione. La maggior parte degli utenti è limitata ai metodi di scansione standard. Lo scanner Nmap è destinato non solo ai normali utenti della rete, ma anche agli amministratori di sistema e agli sviluppatori di sistemi di sicurezza, e molti strumenti saranno loro utili nel loro lavoro. Nmap viene costantemente aggiornato e migliorato. Poiché, come molti altri programmi per sistemi Linux, è gratuito, chiunque può contribuire alla sua scrittura.

In conclusione, vorrei sottolineare che gli scanner di rete e altri programmi simili vengono creati principalmente per prevenire hacking o attacchi attivi. Eseguendo la scansione del computer è possibile rilevare non solo numerose porte aperte, ma anche un trojan che non è stato notato dall'antivirus. Pertanto, la capacità di lavorare con tale software aiuterà sempre nel difficile compito di combattere l'hacking. Lo scanner di rete considerato offre all'utente la più ampia gamma possibile di diversi tipi di scansione e funzionalità di monitoraggio aggiuntive. Selezionando e combinando diverse tecniche di scansione, puoi trovare informazioni su un computer o dispositivo di rete che esegue qualsiasi sistema operativo.

Alcuni esempi di lavoro con un meraviglioso scanner di rete: NMAP

Scansiona la rete alla ricerca di host attivi:

$ nmap -sn 192.168.1.0/ 24

Scansione di un elenco di host/reti da un file:

$ nmap -iL input.txt

Formato del file:

Le voci possono essere in qualsiasi formato con cui Nmap funziona dalla riga di comando (indirizzi IP, nomi host, CIDR, IPv6 o intervalli di ottetti). Le voci devono essere separate da uno o più spazi, tabulazioni o ritorni a capo.

$ cat input.txt server.test.com 192.168.1.0/ 24 192.168.2.1,2 ,3 192.168.3.0-200

Scansione di più indirizzi IP:

$nmappa 192.168.1.1 192.168.1.2 192.168.1.3 $nmappa 192.168.1.1,2,3


5. Esclusione di IP/host/reti dalla scansione

Escludi target dalla scansione Nmap:

$ nmap 192.168.1.0/ 24 --exclude 192.168.1.1 $ nmap 192.168.1.0/ 24 --exclude 192.168.1.1 192.168.1.5 $ nmap 192.168.1.0/ 24 --exclude 192.168.1.1,2 ,3

Escludi elenco di host presi dal file:

$ nmap 192.168.1.0/ 24 --excludefileexclude.txt

6. Scansiona porte specifiche

Scansiona una porta:

$ nmap -p 80 192.168.1.1

Scansiona più porte:

$ nmap -p 80.443 192.168.1.1

Intervallo porta di scansione:

$ nmap -p 80 -1000 192.168.1.1

Scansiona tutte le porte:

$ nmap -p "*" 192.168.1.1

Scansiona le porte aperte

$ nmap -Pn 192.168.1.1

7. Determinazione dei protocolli IP supportati

Determina quali protocolli IP (TCP, UDP, ICMP, ecc.) supporta l'host scansionato:

$ nmap -sO 192.168.1.1

8. Scansione delle porte TCP/UDP

Scansiona tutte le porte TCP:

$ nmap -sT 192.168.1.1

Scansiona porte TCP specifiche:

$ nmap -p T:80 192.168.1.1

Scansiona tutte le porte UDP:

$ nmap -sU 192.168.1.1

Scansiona porte UDP specifiche:

$ nmap -p U:53 192.168.1.1

Combinando la scansione di diverse porte:

$ nmap -p U:53,79,113,T:21 -25,80,443,8080 192.168.1.1

9. Scansione rapida

Attiva la modalità di scansione rapida:

$ nmap -F 192.168.1.1

Mostra la causa dello stato della porta

Mostra il motivo per cui Nmap pensa che una porta sia in un certo stato:

$ nmap --motivo 192.168.1.1

11. Mostra solo le porte aperte

Mostra solo le porte aperte (o eventualmente quelle aperte):

$ nmap --open 192.168.1.1

Mostra solo i 22 porti aperti:

Nmap -p22 --open 192.168.1.1

12. Definizione del sistema operativo

Abilita rilevamento del sistema operativo:

$ nmap -O 192.168.1.1

* Identifica il sistema operativo remoto utilizzando l'impronta digitale dello stack TCP/IP.
13. Determinazione della versione dei servizi

Abilita il rilevamento della versione del servizio:

$ nmap -sV 192.168.1.1

* Determina le versioni dei programmi in esecuzione sul server remoto.
14. Rilevamento del firewall

Scopri se il tuo computer è protetto da eventuali filtri pacchetto o firewall:

nmap -oX output.xml 192.168.1.1

Nmap-A 192.168.1.2

Questo comando ti consentirà di eseguire tutti gli script e molte altre opzioni, ecco la descrizione dal menu della guida: Abilita rilevamento del sistema operativo, rilevamento della versione, scansione degli script e traceroute.
Ad esempio, per il servizio Samba (porta 445), verrà visualizzato quanto segue:

Risultati dello script host:
| modalità-sicurezza-smb:
| account_usato: ospite
| livello_autenticazione: utente
| challenge_response: supportato
|_ message_signing: disabilitato (pericoloso, ma predefinito)

Oggi, quasi tutti gli utenti possono rispondere alla domanda su cosa sia uno scanner di rete IP. Si tratta di uno speciale programma sniffer che identifica un terminale di computer specifico su una rete locale o quando si stabilisce una connessione Internet. Come funzioni questo sistema nessuno lo sa. Cos'è uno scanner di rete? Convenzionalmente tutti i comandi o programmi di questo tipo possono essere suddivisi in più classi a seconda dei parametri da definire. Dovrebbe essere chiaro che uno scanner di rete software deve funzionare in diverse modalità, inclusa la determinazione degli indirizzi IP esterni ed interni dei dispositivi collegati, il riconoscimento delle reti wireless, l'avvio di un sistema diagnostico e l'accesso alle risorse basate sui protocolli HTTP e FTP.

Strumenti del sistema operativo Windows per la scansione

Nei sistemi operativi della famiglia Windows è già integrato nel sistema operativo uno strumento speciale per la determinazione degli indirizzi IP. Gli indirizzi IP, di norma, vengono impostati automaticamente dai provider durante il loro utilizzo corrente, semplicemente è necessario configurare questa impostazione: ottieni automaticamente l'abito per iPad. Nella stessa modalità vengono impostati il ​​gateway e la maschera di sottorete. In questo caso non vengono utilizzati i server DNS primari e alternativi. In alcuni casi i loro indirizzi devono essere inseriti manualmente, soprattutto se la configurazione viene effettuata tramite i servizi Google. È possibile però riconoscere qualsiasi indirizzo interno utilizzando il più semplice comando ping, che va inserito dall'apposita console indicando l'indirizzo interno del computer locale o del terminale che si collega alla rete aziendale. Per visualizzare tutti gli indirizzi dei dispositivi attualmente connessi a uno dei protocolli di rete, è necessario utilizzare il comando ipconfig. Molti utenti sottovalutano la riga di comando. Ma è qui che, specificando un'aggiunta al comando principale sotto forma di rinnovamento o rilascio6, è possibile applicare le impostazioni automatiche del protocollo IPv6 o persino aggiornare la configurazione con le impostazioni del server DHCP.

Richiesta esterna basata sul comando ping

Per quanto riguarda le richieste esterne ricevute tramite il comando ping, queste vengono effettuate per la maggior parte solo dall'amministratore di rete o dal provider. Lo svantaggio di questo metodo è determinare l'indirizzo esterno del dispositivo IP connesso a Internet. In questo caso l'indirizzo interno può essere nascosto o assegnato automaticamente. Quando si controllano le reti WLAN virtuali, viene eseguito solo il ping del modem o router ADSL. Il suo indirizzo non corrisponde in alcun modo all'indirizzo del terminale del computer locale.

Scanner di rete Wi-Fi

Passiamo direttamente alla considerazione dei prodotti software. Probabilmente non vale la pena ricordare che nello stesso Google Play è possibile scaricare un'utilità gratuita in grado di riconoscere le reti virtuali che si trovano vicino all'utente. Se effettui una ricerca approfondita in Internet, puoi trovare non solo uno scanner di rete, ma un intero pacchetto software che ti consente di decifrare una password e persino di fungere da anonimizzatore. È un po' come usare proxy virtuali e protocolli di accesso. L'essenza della domanda si riduce all'identificazione di un indirizzo non utilizzato o alla connessione ad esso. Pertanto, qualsiasi scanner di indirizzi IP sulla rete li determina in base a quelli assegnati dal provider. Il servizio stesso, a condizione che utilizzi un server proxy virtuale, può solo immaginarlo.

I programmi più semplici

Tra tutta la varietà che si può trovare oggi su Internet, i più popolari sono i seguenti prodotti software:

— scanner di reti wireless pubbliche Free WiFi Detector;

— scanner di porte locali e indirizzi IP Net Scan;

— uno strumento per le reti wireless InSSiDer;

— un sistema per controllare gli indirizzi liberi che non sono coinvolti nelle connessioni locali - Angry IP Scanner.

Tutti gli scanner di rete del tipo sopra menzionato funzionano secondo lo stesso principio. Si tratta della determinazione dell'indirizzo IP esterno del dispositivo connesso, indipendentemente dal fatto che si utilizzi un dispositivo mobile, un laptop o un computer desktop. Tutte le applicazioni che appartengono alla categoria dei programmi "Windows 7 Network Scanner" utilizzano un comando ping nascosto, di cui l'utente potrebbe non essere nemmeno a conoscenza. In questo caso la richiesta esterna viene effettuata non sotto forma di un'operazione eseguita da Windows, ma in base ai suoi sviluppi, tenendo conto del protocollo utilizzato e del server DHCP. In questo caso, potrebbero verificarsi errori nell'opzione di connessione al server proxy. Per modificare queste impostazioni, è necessario utilizzare le impostazioni di rete o della scheda di rete. Devono essere impostati in modo da vietare l'uso dei proxy per gli indirizzi locali. Queste sono almeno le impostazioni del protocollo IPv4. Allo stesso tempo, le applicazioni mobili sono piuttosto popolari. Nella versione più semplice si può fornire il seguente esempio. Supponiamo che un utente venga in un bar e abbia urgentemente bisogno di inviare un'e-mail o scrivere un messaggio. Non conosce la password per accedere alla rete virtuale. Se sul tuo tablet o smartphone è installata l'applicazione appropriata, lo scanner di rete funzionerà automaticamente. Rileverà il circuito wireless più vicino. A seconda del prodotto software è possibile anche l'accesso alla rete senza password. Tuttavia, questa opzione è illegale. Probabilmente non è necessario ricordare ancora una volta che oggi esiste un numero enorme di hacker, che a volte includono applicazioni di questo tipo. Allo stesso tempo, nessuno capisce che uno scanner di indirizzi IP di rete determina solo la fonte attraverso la quale viene effettuata la connessione Internet e l'accesso alla rete.

Conclusione

La cosa peggiore è che nessun programma di questo tipo, durante la scansione di indirizzi esterni e interni, può aggirare il file di configurazione degli host, che memorizza informazioni sulle chiamate agli indirizzi standard. A volte i suoi contenuti possono contenere voci che bloccano determinate risorse. L'accesso a queste impostazioni nei sistemi operativi della famiglia Windows ha una priorità molto alta, anche in relazione ai server proxy e DNS. Pertanto, quando si installa uno scanner di rete, è necessario considerare l'opportunità di utilizzare questo prodotto software. Sfortunatamente, le applicazioni scanner non controllate dal sistema operativo Windows possono causare conflitti a livello di sistema. Ad esempio, il funzionamento di alcune librerie dinamiche necessarie per il corretto funzionamento di Windows e dei driver di dispositivo potrebbe essere bloccato. Dovresti anche prestare attenzione alla legalità della penetrazione in determinate reti virtuali, per non parlare dell'installazione di software prelevato da fonti non ufficiali.

Scansione TCP.

Utilizzando il metodo di connessione TCP, nmap eseguirà la scansione dell'intervallo di porte (1-65535) di un computer con un indirizzo IP, l'opzione -sV viene utilizzata per ottenere versioni dei servizi in esecuzione:

$ nmap -sV xxx.xxx.xxx.xxx -p 1-65535

Vale anche la pena notare che abbiamo SERVICE e STATE nel campo.

Il campo SERVIZIO visualizza sempre il valore del file /etc/services corrispondente al numero di porta. Ciò non significa che il servizio specificato nel campo SERVICE sarà disponibile su questa porta. eseguire il server Web sulla porta 22 e SSH sulla porta 80, ma nmap scriverà comunque che la porta 22 è ssh e 80 è HTTP.

Nel campo STATO - In un caso, la porta ssh è aperta, nell'altro - filtrata. Il valore Filtrato indica che la porta rifiuta o interrompe il traffico. Ciò non indica se è presente o meno un servizio su questa porta.

T "Paranoico|Subdolo|Educato|Normale|Aggressivo|Folle" - modalità temporanee. Con la scansione "Paranoide" ci vorrà molto tempo, ma avrai maggiori possibilità di non essere rilevato dai rilevatori di scansione. E viceversa, usa "Insane" durante la scansione di reti veloci o poco protette.

ON/-oM "logfile" - restituisce i risultati nel file di log in formato normale (-oN) o macchina (-oM).

"file di registro" del sistema operativo: questa opzione consente di riprendere la scansione se è stata interrotta per qualche motivo e il risultato è stato scritto (l'opzione -oN "file di registro" o -oM "file di registro" era abilitata). Per continuare a lavorare è necessario eseguire Nmap specificando solo questa funzione e il file in cui è stata registrata la scansione precedente ("logfile").

Sei preoccupato per la sicurezza della tua rete o di qualsiasi altra? Proteggere il router da connessioni indesiderate è fondamentale per mantenere sicura la rete. Un metodo semplice è Nmap o Network Mapper. Si tratta di un programma di scansione che controlla quali porte sono aperte e quali sono chiuse, oltre ad altri dettagli. I professionisti della sicurezza utilizzano questo programma per testare la sicurezza della rete. Per sapere come utilizzare questo programma, vedere il passaggio 1.

Passi

Utilizzando Zenmap

    Scarica il programma di installazione di Nmap. Puoi trovare il programma di installazione sul sito Web degli sviluppatori e scaricarlo gratuitamente. Si consiglia di scaricare dal sito Web degli sviluppatori per evitare il rischio di scaricare virus o file contraffatti. Scaricando Nmap otterrai anche Zenmap, un'interfaccia grafica per Nmap che rende il programma facile da usare per i principianti quando eseguono scansioni senza conoscere i comandi.

    • Zenmap è disponibile per i sistemi operativi Windows, Linux e Mac OS X. Puoi trovare i programmi di installazione sul sito web ufficiale di Nmap.
  1. Avviare il programma GUI “Nmap – Zenmap”. Se durante l'installazione hai lasciato intatti tutti gli elementi, l'icona del programma dovrebbe apparire sul desktop. In caso contrario, guarda nel menu Start e avvia Zenmap.

    Inserisci lo scopo della scansione. Zenmap rende la scansione della rete un processo molto semplice. Prima di tutto, seleziona la destinazione della scansione. Puoi inserire il dominio (esempio.com), l'indirizzo IP (127.0.0.1), la rete (192.168.1.0/24) o una combinazione di questi.

    • A seconda del download e dello scopo della scansione, l'utilizzo di Nmap potrebbe violare le politiche utente del tuo ISP. Controlla sempre le regole dell'utente locale quando usi Nmap durante la scansione al di fuori della tua rete.
  2. Seleziona il tuo profilo. I profili sono un gruppo di modifiche che modificano la struttura della scansione. I profili consentono di selezionare rapidamente diversi tipi di scansioni senza dover apportare modifiche sulla riga di comando. Scegli il profilo più adatto alle tue esigenze:

    • Scansione intensa- scansione approfondita. Include sistema operativo, versione, riconoscimento degli script, tracciamento e ha un tempo di scansione aggressivo.
    • Scansione ping- Questa scansione determina lo stato online della destinazione della scansione e non esegue la scansione delle porte.
    • Scansione veloce- esegue la scansione più velocemente di una scansione normale con tempi di scansione aggressivi e campionamento delle porte.
    • Scansione regolare- questa è una scansione Nmap standard senza alcuna modifica. Il risultato include ping e porte aperte.
  3. Fare clic su Scansione per avviare la scansione. I risultati della scansione attiva verranno visualizzati nella scheda Output di Nmap. Il tempo di scansione dipenderà dal profilo selezionato, dalla distanza fisica dal target e dalla configurazione della rete.

    Guarda i tuoi risultati. Una volta completata la scansione, vedrai il messaggio "Nmap is done" nella parte inferiore della scheda Output di Nmap. Ora puoi controllare i risultati, a seconda del tipo di scansione selezionato. Tutti i risultati vengono raccolti nella scheda Output, ma selezionando altre schede è possibile studiare il risultato risultante in modo più dettagliato.

    • Porte/host- Questa scheda mostrerà le scansioni delle porte, inclusi i servizi in esecuzione su tali porte.
    • Topologia- Mostra la traccia della scansione eseguita. Puoi vedere quanti "salti" sono necessari affinché i tuoi dati raggiungano l'obiettivo desiderato.
    • Dettagli dell'ospite- Mostra informazioni complete sulla destinazione, numero di porte, indirizzi IP, nomi host, sistemi operativi e altro.
    • Scansioni- questa scheda registra la cronologia delle scansioni precedenti. In questo modo puoi riavviare rapidamente una scansione eseguita in passato con un set specifico di parametri.

Utilizzando la riga di comando

  1. Installa Nmap. Nmap è un programma piccolo e gratuito. È possibile scaricare il programma dal sito Web dello sviluppatore. Segui le istruzioni in base al tuo sistema operativo:

    Apri il prompt dei comandi. I comandi Nmap funzionano dalla riga di comando e mostrano i risultati proprio sotto il comando. È possibile utilizzare le opzioni per modificare la struttura della scansione. Puoi eseguire scansioni da qualsiasi punto specificato nella riga di comando.

  2. Scansiona le porte di cui hai bisogno. Per avviare una scansione semplice, scrivi nmap . Verrà avviato il ping della destinazione selezionata e la scansione delle porte. Questa scansione è molto facile da riconoscere. I risultati saranno visibili sullo schermo. Potrebbe essere necessario scorrere verso l'alto per visualizzare i risultati completi.

    • A seconda del download e dello scopo della scansione, l'utilizzo di Nmap potrebbe essere contrario alle regole del tuo ISP. Controlla sempre le regole dell'utente locale quando usi Nmap durante la scansione al di fuori della tua rete.
  3. Eseguire una scansione modificata.È possibile utilizzare le variabili di comando per modificare i parametri di scansione, ottenendo una scansione più o meno estesa. Puoi aggiungere più variabili lasciando uno spazio tra ciascuna di esse. Le variabili vengono posizionate prima della destinazione: nmap

    • -sS- Questa è una scansione SYN segreta. Questa scansione è più difficile da rilevare rispetto a una scansione normale, ma potrebbe richiedere più tempo per essere completata. La maggior parte dei firewall più recenti è in grado di rilevare la scansione –sS.
    • -sn- Questa è una scansione del ping. Questa scansione non utilizza il rilevamento delle porte e controlla solo lo stato online della destinazione.
    • -O- Questa scansione determina il tipo di sistema operativo di destinazione.
    • -UN- Questa variabile include il rilevamento di informazioni più estese: sistema operativo, versione, script e traccia.
    • -F- consente la scansione veloce e riduce il numero di porte scansionate.
    • -v- questa variabile mostra più risultati della scansione, rendendoli più leggibili.
  4. Emetti i risultati della scansione in un file XML. Puoi configurare l'output dei risultati della scansione in un file XML e, successivamente, aprirli facilmente in qualsiasi browser web. Per fare questo usa una variabile -bue con il nome del file per i dati di output. Il comando completo è simile al seguente: nmap –oX ScanResults.xml .

    • Il tuo file XML verrà salvato nella directory corrente della riga di comando.
  • Ti chiedi come va la scansione? Premi la barra spaziatrice o qualsiasi pulsante mentre la scansione è in esecuzione per visualizzare l'avanzamento di Nmap.
  • L'obiettivo non risponde? Prova ad aggiungere la variabile "-P0" alla tua scansione. Di conseguenza, la scansione di Nmap inizierà il suo lavoro anche se il programma "pensa" che l'obiettivo non esista. Ciò può essere utile quando il computer è protetto da un firewall.
  • Se la scansione richiede molto tempo (più di 20 minuti), prova ad aggiungere la variabile "-F" in modo che la scansione di Nmap interessi solo le porte utilizzate di recente.