Sei sulla pagina 1di 5

Analizzare il protocollo NTP

hacktips.it/analizzare-protocollo-ntp/

Mr. Touch July 28, 2017

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

Rilevazione del protocollo


La rilevazione funziona come con ogni altra porta in ascolto, ossia scansionando l’indirizzo IP
con un software come nmap sul protocollo UDP.

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

Not shown: 997 open|filtered ports


PORT STATE SERVICE
113/udp closed auth
123/udp open ntp
161/udp open snmp

Scansione del servizio


Una volta verificata l’effettiva porta aperta, si possono utilizzare una serie di software per
ottenere informazioni. Tra i tanti:

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.

sudo apt-get install ntp

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:

ntpdc -c monlist: stampa il traffico passante per la macchina;


ntpdc -c sysinfo: ritorna informazioni più o meno utili in merito al sistema;
ntpdc -c listpeers: lista dei peers connessi alla macchina;
ntpdc -c reslist.

┌─[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
.
..
...
....

Come potete notare i comandi sono molti. Alcuni sono:


peers: stampa la lista di ogni peer connesso alla macchina;
associations: tutte le associazioni del demone;
readvar: stampa le informazioni relative all’associazione passata come comando;
ntpversion: versione NTP utilizzata.

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.

Alcuni comandi ntpq

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

Nmap scan report for 1xx.xxx.xxx.x2


Host is up (0.29s latency).

PORT STATE SERVICE


123/udp open ntp
| ntp-info:
| receive time stamp: 2015-04-10T02:41:02
| version: ntpd 4.2.6p5@1.2349-o Thu Apr 9 10:20:57 UTC 2015 (1)
| processor: mips
| system: Linux/2.6.36
| leap: 3
| stratum: 16
| precision: -15
| rootdelay: 0.000
| rootdisp: 4.305
| refid: INIT
| reftime: 0x00000000.00000000
| clock: 0xd8d1b6bb.7f1b40ec
| peer: 0
| tc: 3
| mintc: 3
| offset: 0.000
| frequency: 0.000
| sys_jitter: 0.000
| clk_jitter: 0.031
|_ clk_wander: 0.000\x0D
Service Info: OS: Linux/2.6.36

Nmap done: 1 IP address (1 host up) scanned in 1.45 seconds

L’altro è invece ntp-monlist. Ogni sistemista dovrebbe disattivarlo, in quanto permette di


ricevere informazioni sensibili sugli host interni all’azienda o collegati al demone ntp. L’utilizzo è
il solito

┌─[mrtouch@parrot]─[~]
└──╼ $sudo nmap -sU -pU:123 -Pn -n --script=ntp-monlist 1xx.xxx.xxx.x2
[sudo] password for mrtouch:

Nmap scan report for 1xx.xxx.xxx.x2


Host is up (0.29s latency).

PORT STATE SERVICE


123/udp open ntp
| ntp-monlist:
| Public Clients (1)
|_ 9x.xx.xxx.xx0

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.

Quest'opera è distribuita con Licenza Creative Commons: Attribuzione - Non commerciale


4.0 Internazionale.

Tema: Optimizer WordPress Theme

Potrebbero piacerti anche