[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[SYSS-2015-025] Netop Remote Control - Insufficiently Protected Credentials



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Advisory ID: SYSS-2015-025
Product: Netop Remote Control
Vendor: Netop
Affected Version(s): 11.52, 12.11
Tested Version(s): 11.52, 12.11
Vulnerability Type: Use of Hard-coded Cryptographic Key (CWE-321)
                    Insufficiently Protected Credentials (CWE-522)
Risk Level: Medium
Solution Status: Not fixed
Vendor Notification: 2015-06-19
Solution Date: -
Public Disclosure: 2015-08-24
CVE Reference: Not yet assigned
Author of Advisory: Matthias Deeg (SySS GmbH)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Overview:

Netop Remote Control is a widely-used remote support software with many 
features.

The vendor Netop describes the product as follows (see [1]):

"Netop Remote Control is the most secure, trusted and scalable remote 
support  software solution on the market today. We've been helping 
customers grow their enterprises with secure remote control and support
for workstations, servers, embedded systems and mobile devices for 30 
years. Our flexible options provide secure remote access in even the
most complex enterprise environments."

Due to security issues in the credentials management, an attacker with 
access to Netop Remote Configuration files can decrypt and extract 
configured password information (raw MD5 hashes) and perform efficient 
password guessing attacks in order to recover the corresponding 
cleartext passwords, for example with the use of rainbow tables 
(time-memory trade-off).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Vulnerability Details:

Netop Remote Control stores configuration data in encrypted 
configuration files with the file extension .ndb. The content of these 
files is encrypted with a hard-coded cryptographic key (XOR key) that is 
contained within the executable file NHSTW32.EXE. In the default 
configuration, administrative privileges are required in order to read 
these configuration files that are usually stored in an 
application-specific folder within the Windows ProgramData folder, for 
example in the following location:

* %PROGRAMDATA%\Danware Data\C\Program Files (x86)\Netop\Netop Remote Control\Host

Netop Remote Control password information, i.e. the configured 
maintenance and access password, is stored in the configuration file 
nhstconf.ndb as raw MD5 password hashes. Furthermore, Netop Remote 
Control only supports upper-case passwords with a maximum length of 16 
characters (actually all passwords are padded with spaces [0x20] to the 
maximum password length of 16 characters), which reduces the search 
space for password guessing attacks significantly.

Thus, an attacker with access to Netop Remote Control configuration 
files like nhstconf.ndb can easily decrypt its contents and perform 
password guessing attacks against the extracted MD5 password hashes.

Due to the use of the weak cryptographic hash algorithm MD5 without many 
iterations and a salt, it is possible for an attacker to precompute 
password candidates and thus to perform more efficient dictionary 
attacks with the use  of rainbow tables (time-memory trade-off).

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Proof of Concept (PoC):

The SySS GmbH developed a proof-of-concept software tool for decrypting 
and extracting password information from the Netop Remote Control 
configuration file nhstconf.ndb.

The following output exemplarily shows a successful extraction of the 
two MD5 password hashes for the maintenance and access password:

$ ./netopcfgdecrypt.py nhstconf.ndb
                _____________________________________________________________    
               /    _____       _____ _____                                  \   
              /    /  ___|     /  ___/  ___|                                  \  
             |     \ `--. _   _\ `--.\ `--.                                    | 
             |      `--. \ | | |`--. \`--. \                                   | 
             |     /\__/ / |_| /\__/ /\__/ /                                   | 
              \    \____/ \__, \____/\____/   ... decrypts your configs!      /  
               \          __/ |                                              /   
               /         |___/    __________________________________________/    
              / _________________/                                               
        (__) /_/                                                                 
        (oo)                                                                     
  /------\/                                                                      
 / |____||                                                                       
*  ||   ||                                                                       
   ^^   ^^                                                                       
Netop Config Decryptor v1.1 by Matthias Deeg <matthias.deeg@xxxxxxx> - SySS GmbH (c) 2013-2015
[*] Decrypt Netop config file
[*] Decrypted config file saved to 'nhstconf.ndb.dec'
[*] MD5 password hash #1 (maintenance password): a9473ded85aa51851deb4859cdd53f98
[*] MD5 password hash #2 (access password)     : de7124255c6cb70591492236b5b6f04d

In this example, the maintenance password (first MD5 hash) is the empty
password, as the following output shows:

$ echo -n "                " | md5sum
a9473ded85aa51851deb4859cdd53f98  -

The access password (second MD5 hash) is "S3CRET!", as the following 
output illustrates:

$ echo -n "S3CRET!         " | md5sum
de7124255c6cb70591492236b5b6f04d  -

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Solution:

The SySS GmbH is currently not aware of a solution for the reported
security vulnerability.

Please contact the vendor for further information.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Disclosure Timeline:

2015-06-19: Vulnerability reported to vendor
2015-06-26: Reported vulnerability again as the vendor did not reply to
            to the first e-mail with the SySS security advisory
2015-08-24: Public release of security advisory according to the SySS
            Responsible Disclosure Policy 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

References:

[1] Netop Remote Control Web site
    http://www.netop.com/remote-support.htm
[2] SySS Security Advisory SYSS-2015-025
    https://www.syss.de/fileadmin/dokumente/Publikationen/Advisories/SYSS-2015-025.txt
[3] SySS Responsible Disclosure Policy
    https://www.syss.de/en/news/responsible-disclosure-policy/

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Credits:

This security vulnerability was found by Matthias Deeg of the SySS GmbH.

E-Mail: matthias.deeg (at) syss.de
Public Key: https://www.syss.de/fileadmin/dokumente/Materialien/PGPKeys/Matthias_Deeg.asc
Key fingerprint = D1F0 A035 F06C E675 CDB9 0514 D9A4 BF6A 34AD 4DAB

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Disclaimer:

The information provided in this security advisory is provided "as is" and 
without warranty of any kind. Details of this security advisory may be updated 
in order to provide as accurate information as possible. The latest version of 
this security advisory is available on the SySS Web site.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Copyright:

Creative Commons - Attribution (by) - Version 3.0
URL: http://creativecommons.org/licenses/by/3.0/deed.en

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCgAGBQJV2tYLAAoJENmkv2o0rU2r2EsQAKk20gvrTuwKS3CthlLapEXP
Z8zgFDuhE6+/SjVGGF2wv+0OGqUqfp/oRWS+yp6cD6lazNsJ4q+YnWo9ZRumnpUK
b0w6coYp9ZK51AgsRXWgnEIDawkP/N6xoVJ+tdsi4GF68+K+B+LQ5FN8TAQrxWbU
veC7W1lZULxoLd0LOLzKaNEP6ZEEoiev2+2JjGoy5SOR3SIKqTDSSREPOUrwy335
HCKmX4u4N0+P+W+7ZdK0Piyoy6UlEYybm+ri7gYkSgC5csZZwUOaiKw3P8kw03CB
ORYKeYMhqAu8RKWOrajmFlhThc/CahS9pWHM471U8jYAMVNqBn90SgHezWQBogBu
gLy8sLH6sjkfVobmarqAQ3tnCE1SatGrHr3i4VKUJq0jwZ0MsQwu0Q42KCSLtlqF
Ec8BpyxKGs1xOSt4NMFTGE2TMu9F4EW9r62oTWBuyXGCHwdy8o2w2ocrkY3tsbMp
kVXFZC4jeGRO28c5X2h1USwBVyf3wzyFAIkkQGUkLxwIHAqy8A/ZocV8kZYiDGKF
hcdJdiLH6m6POpADzN0LFygFg+so5S+UkcTxHiaALssmAQgr9dkU5Tb8l7+zXfPt
ehlCeJwqH+Wgs9UkHvE65dtKs7oH/uiGxCMS3EQoXgHUeGOMR0f8UCks5BwqGhwd
kJHtn3eyW0PsTN/pCYVc
=Jxvt
-----END PGP SIGNATURE-----