Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
hacktips.it/analizzare-protocollo-ntp/
NTP è un protocollo client-server designato alla sincronizzazione degli orologi dei computer
interni ad una rete. In una rete aziendale è molto probabile trovare un dispositivo che ha il
servizio attivo, al fine di sincronizzare gli orologi delle macchine ad esso collegate.
Sfortunatamente, molti sistemisti non aggiornano o configurano in maniera adeguata ntpd, il
quale sarà in grado di fornire informazioni sul sistema e sulla struttura delle rete aziendale.
Architettura NTP
N.B. L’indirizzo IP che utilizzerò nell’articolo sarà sempre nascosto poiché l’ho trovato tramite
una ricerca in shodan (quindi potrete farlo con un qualsiasi altro indirizzo che troverete con la
ricerca).
┌─[✗]─[mrtouch@parrot]─[~]
└──╼ sudo nmap -sU 1xx.xxx.xxx.x2
1. ntpdate;
2. ntptrace;
3. ntpdc;
4. ntpq;
5. nmap.
I primi quattro fanno parte del pacchetto ntp, quindi chiunque abbia un dispositivo Linux
(Debian) potrà installarlo con un semplice comando.
ntptrace
Ntptrace segue la catena dei server NTP fino ad arrivare alla sorgente. Questo comando è utile
solo nel caso si stia utilizzando un dispositivo con NTP attivo.
─[✗]─[mrtouch@parrot]─[~]
└──╼ $ntptrace 1xx.xxx.xxx.x2
1xx.xxx.xxx.x21.abcdefghi.com.br: stratum 16, offset 0.000000, synch distance 0.001620
ntpdc
Viene utilizzato per interrogare il demone ntpd sia in maniera interattiva sia utilizzando i
comandi. Alcuni comandi utili possono essere:
┌─[mrtouch@parrot]─[~]
└──╼ $ntpdc -c sysinfo 1xx.xxx.xxx.x2
system peer: 0.0.0.0
system peer mode: unspec
leap indicator: 11
stratum: 16
precision: -15
root distance: 0.00000 s
root dispersion: 0.00163 s
reference ID: [74]
reference time: 00000000.00000000 Thu, Feb 7 2036 7:28:16.000
system flags: auth monitor ntp stats
jitter: 0.000000 s
stability: 0.000 ppm
broadcastdelay: 0.000000 s
authdelay: 0.000000 s
ntpq
Molto simile al software appena descritto, ma trovo che la modalità interattiva sia meglio
definita e più completa. Per entrare nel host basta digitare
┌─[mrtouch@parrot]─[~]
└──╼ $ntpq 1xx.xxx.xxx.x2
ntpq>help
ntpq commands:
:config
drefid
mreadlist
readvar
.
..
...
....
Per chiunque volesse comprendere gli altri comandi e l’utilizzo degli stessi consiglio il manuale,
altrimenti basta digitare help comando e si avranno tutte le informazioni di cui si ha bisogno.
Solo con pochi comandi ho ottenuto circa cinque nuovi indirizzi IP, sia interni che esterni,
informazioni in merito al sistema operativo e la versione di NTP utilizzata.
nmap
Come per quasi ogni protocollo, nmap ha due script molto utili ai fini di una scansione NTP. Il
primo è ntp-info, utilizzato per ottenere la configurazione del servizio attivo sul dispositivo
vittima.
┌─[mrtouch@parrot]─[~]
└──╼ $sudo nmap -sU -pU:123 -Pn -n --script=ntp-info 1xx.xxx.xxx.x2
┌─[mrtouch@parrot]─[~]
└──╼ $sudo nmap -sU -pU:123 -Pn -n --script=ntp-monlist 1xx.xxx.xxx.x2
[sudo] password for mrtouch:
In questo caso ha trovato solamente un client (pubblico) collegato al server. In altri casi si
possono trovare centinaia di server collegati.
Conclusioni
Ottenere informazioni non è la sola possibilità nel caso si trovi un demone NTP attivo. Nel caso
si trovi una versione non aggiornata del servizio è possibile effettuare attacchi DOS o DDOS,
come nel caso dell’attacco a 400 Gb/s di qualche anno fa o in quello da “soli” 100 Gb/s. Ci sono
diversi siti che si occupano della sicurezza di NTP; tra i più importanti consiglio:
OPEN NTP Project: statistiche e informazioni su host vulnerabili;
Shadowserver NTP: grafici e report di host vulnerabili;
Enumerazione NTP: software utilizzati per enumerare servizi NTP.