Questo tutorial si concentrerà su un utilizzo chiave di Nmap, i.e., host discovery e metodologia di host discovery discovery. È bene notare che questa nonèuna guida per principianti per lavorare con Nmap o la metodologia di raccolta delle informazioni nei test di penetrazione.
Che cos'è la scoperta dell'host?
Il processo di scoperta dell'host Nmap si riferisce all'enumerazione degli host di rete per raccogliere informazioni su di essi per costruire un piano di attacco nel pen-test.
Durante il rilevamento dell'host, Nmap utilizza elementi come Ping e uno script integrato per cercare sistemi operativi, porte e servizi in esecuzione utilizzando i protocolli TCP e UDP. Se specificato, puoi abilitare il motore di scripting Nmap che utilizza vari script per cercare vulnerabilità contro l'host.
Il processo di scoperta dell'host impiegato da Nmap utilizza pacchetti ICMP non elaborati. Questi pacchetti possono essere disabilitati o filtrati da firewall (raramente) e amministratori di sistema molto cauti. Tuttavia, Nmap ci fornisce una scansione invisibile, come vedremo in questo tutorial.
Cominciamo.
Scoperta della rete
Senza perdere troppo tempo, esaminiamo vari metodi per eseguire l'individuazione degli host e superare le varie limitazioni causate dai dispositivi di sicurezza della rete come i firewall.
1: ping ICMP classico
Puoi eseguire il rilevamento dell'host con un semplice Richiesta di eco ICMP dove l'host risponde con an Risposta eco ICMP.
Per inviare una richiesta echo ICMP con Nmap, inserisci il comando:
$ nmap -PE -sn 192.168.0.16L'output sarà simile a quello mostrato di seguito:
Avvio di Nmap 7.91 (https://nmap.org)rapporto di scansione per 192.168.0.16
L'host è attivo (0.latenza 11s).
Indirizzo MAC: EC:08:6B:18:11:D4 (tecnologie Tp-link)
Nmap done: 1 indirizzo IP (1 host up) scansionato in 0.62 secondi
Nel comando sopra, diciamo a Nmap di inviare una richiesta ping echo (-PE) al target. Se riceve una risposta ICMP, l'host è attivo.
Di seguito è riportato uno screenshot di Wireshark del comando nmap -sn -PE:
Considera la risorsa fornita di seguito per saperne di più sul protocollo ICMP.
https://linkfy.a/ICMP
NOTA: Le richieste di eco ICMP sono inaffidabili e non traggono una conclusione in base alla risposta. Ad esempio, considera la stessa richiesta a Microsoft.come
$ nmap -sn -PE microsoft.comeL'output sarà come mostrato di seguito:
Avvio di Nmap 7.91 Nota: l'host sembra inattivo.Se è davvero attivo, ma blocca le nostre sonde ping, prova -Pn
Nmap fatto:
1 indirizzo IP (0 host up) scansionato in 2.51 secondi
Ecco uno screenshot per l'analisi di Wireshark:
2: TCP SYN Ping
Un altro metodo di rilevamento dell'host è utilizzare una scansione ping SYN TCP Nmap. Se hai familiarità con le tre strette di mano TCP SYN/ACK, Nmap prende in prestito dalla tecnologia e invia una richiesta a varie porte per determinare se l'host è attivo o utilizza filtri permissivi.
Se diciamo a Nmap di usare SYN ping, invia il pacchetto alla porta di destinazione e, se l'host è attivo, risponde con un pacchetto ACK. Se l'host è inattivo, risponde con un pacchetto RST.
Utilizzare il comando come mostrato di seguito per eseguire una richiesta ping SYN.
sudo nmap -sn -PS scanme.nmap.organizzazioneLa risposta di questo comando dovrebbe indicare se l'host è attivo o meno. Quello che segue è un filtro Wireshark della richiesta.
tcp.bandiere.syn && tcp.bandiere.ack
NOTA: Usiamo il -PS per specificare che vogliamo usare la richiesta ping TCP SYN, che può essere un metodo più efficiente rispetto ai pacchetti ICMP non elaborati. Quella che segue è una richiesta Nmap di Microsoft.com utilizzando TCP SYN.
$ nmap -sn -PS microsoft.comeL'output è mostrato di seguito:
Avvio di Nmap 7.91 (https://nmap.org)Rapporto di scansione Nmap per Microsoft.com (104.215.148.63)
L'host è attivo (0.latenza di 29 secondi).
Altri indirizzi per Microsoft.com (non scansionato): 40.112.72.205 13.77.161.179 40.113.200.201 40.76.4.15
Nmap fatto:
1 indirizzo IP (1 host attivo) scansionato in 1.08 secondi
3: Ping ACK TCP
Il metodo ping TCP ACK è figlio della richiesta ping SYN. Funziona in modo simile ma usa invece il pacchetto ACK. In questo metodo, NMAP prova qualcosa di intelligente.
Inizia inviando un pacchetto ACK TCP vuoto all'host. Se l'host è offline, il pacchetto non dovrebbe ricevere alcuna risposta. Se online, l'host risponderà con un pacchetto RST che indica che l'host è attivo.
Se non hai familiarità con l'RST (reset packet), è il pacchetto inviato dopo la ricezione di un pacchetto TCP imprevisto. Poiché il pacchetto ACK inviato da Nmap non è una risposta a SYN, l'host deve restituire un pacchetto RST.
Per inizializzare un ping ACK di Nmap, usa il comando come:
$ nmap -sn -PA 192.168.0.16Dato l'output di seguito:
Avvio di Nmap 7.91 (https://nmap.org)Rapporto di scansione Nmap per 192.168.0.16
L'host è attivo (0.latenza di 15 secondi).
Indirizzo MAC: EC:08:6B:18:11:D4 (tecnologie Tp-link)
Nmap fatto:
1 indirizzo IP (1 host attivo) scansionato in 0.49 secondi
4: Ping UDP
Parliamo di un'altra opzione per la scoperta dell'host in Nmap, i.e., Ping UDP.
Il ping UDP funziona inviando pacchetti UDP alle porte specificate dell'host di destinazione. Se l'host è online, il pacchetto UDP potrebbe incontrare una porta chiusa e rispondere con un messaggio di porta ICMP irraggiungibile. Se l'host è inattivo, il prompt sarà vari messaggi di errore ICMP come TTL superato o nessuna risposta.
La porta predefinita per il ping UDP è 40, 125. Il ping UDP è una buona tecnica da utilizzare quando si esegue l'individuazione degli host per gli host dietro un firewall e filtri. Questo perché la maggior parte dei firewall cerca e blocca TCP ma consente il traffico del protocollo UDP.
Per eseguire il rilevamento dell'host Nmap con il ping UDP, utilizzare il comando seguente:
sudo nmap -sn -PU scanme.nmap.organizzazioneL'output del comando precedente è esaminabile utilizzando Wireshark, come mostrato nello screenshot qui sotto. Filtro Wireshark utilizzato - udp.porta == 40125
Come puoi vedere nello screenshot qui sopra, Nmap invia un ping UDP all'IP 45.33.32.156 (scansione).nmap.org). Il server risponde con ICMP irraggiungibile, che indica che l'host è attivo.
5: Ping ARP
Non possiamo dimenticare il metodo ping ARP che funziona molto bene per l'individuazione degli host all'interno delle reti locali. Il metodo ping ARP funziona inviando una serie di sonde ARP all'intervallo di indirizzi IP specificato e scopre gli host live. Il ping ARP è veloce e molto affidabile.
Per eseguire un ping ARP usando Nmap, usa il comando:
sudo nmap -sn -PR 192.168.0.1/24Se esamini il comando con Wireshark e filtri ARP dalla sorgente 192.168.0.30, otterrai uno screenshot delle richieste di sonda ARP Broadcast come mostrato di seguito. Il filtro Wireshark utilizzato è: arp.src.proto_ipv4 == 192.168.0.30
TCP SYN Stealth
Scoprirai che SYN scan è una buona opzione per il rilevamento dell'host perché è veloce e può scansionare una serie di porte in pochi secondi, a condizione che i sistemi di sicurezza come i firewall non interferiscano. SYN è anche molto potente e furtivo poiché funziona con richieste TCP incomplete.
Non entrerò nei dettagli di come funziona TCP SYN/ACK, ma puoi saperne di più dalle varie risorse fornite di seguito:
- https://linkfy.to/tcpWiki
- https://linkfy.a/3-way-stretta-di-mano-spiegato
- https://linkfy.a/3-way-anantomy
Per eseguire la scansione invisibile Nmap TCP SYN, utilizzare il comando:
sudo nmap -sS 192.168.0.1/24Ho fornito una cattura Wireshark del comando Nmap -sS e dei reperti Nmap della scansione, esaminali e vedi come funziona. Cerca richieste TCP incomplete con il pacchetto RST.
- https://linkfy.a/cattura-wireshark
- https://linkfy.to/nmap-output-txt
Conclusione
Per ricapitolare, ci siamo concentrati sulla discussione su come utilizzare la funzione di individuazione degli host di Nmap e ottenere informazioni sull'host specificato. Abbiamo anche discusso del metodo da utilizzare quando è necessario eseguire il rilevamento dell'host per gli host dietro i firewall, il blocco delle richieste di ping ICMP e molto altro.
Esplora Nmap per acquisire una conoscenza più approfondita.