420 lines
No EOL
18 KiB
Text
420 lines
No EOL
18 KiB
Text
Title:
|
|
======
|
|
Dell Kace 1000 SMA v5.4.70402 - Persistent Vulnerabilities
|
|
|
|
|
|
Date:
|
|
=====
|
|
2013-07-16
|
|
|
|
|
|
References:
|
|
===========
|
|
http://www.vulnerability-lab.com/get_content.php?id=833
|
|
|
|
|
|
VL-ID:
|
|
=====
|
|
833
|
|
|
|
|
|
Common Vulnerability Scoring System:
|
|
====================================
|
|
3.5
|
|
|
|
|
|
Introduction:
|
|
=============
|
|
Dell KACE is to provide an appliance-based approach to systems management, to create time for systems administration professionals,
|
|
while saving money for their companies. Dell KACE Systems Management Appliances are available as both physical and virtual appliances.
|
|
|
|
The KACE Management Appliance delivers a fully integrated systems management solution, unlike traditional software approaches that
|
|
can require complex and time-consuming deployment and maintenance. KACE accomplishes this via an extremely flexible, intelligent
|
|
appliance-based architecture that typically deploys in days and is self maintaining. The KACE Management Appliance also provides
|
|
direct access to time-saving ITNinja systems management community information using AppDeploy Live, the leading destination for end
|
|
point administrators. The result: Comprehensive systems management that is easy-to-use and that can be more economical than software
|
|
only alternatives. Read more in the white paper KACE K1000 Management Appliance Architecture: Harnessing the Power of an
|
|
Appliance-based Architecture. The KACE Management Appliance is designed for enterprises and business units with up to 20,000 nodes.
|
|
|
|
(Copy of the Vendor Homepage: http://www.kace.com/products/systems-management-appliance )
|
|
|
|
|
|
Abstract:
|
|
=========
|
|
The Vulnerability Laboratory Research Team discovered a web session vulnerability in Dell Kace K1000, Systems Management Appliance.
|
|
|
|
|
|
Report-Timeline:
|
|
================
|
|
2013-01-24: Researcher Notification & Coordination
|
|
2013-02-06: Vendor Notification
|
|
2013-02-08: Vendor Response/Feedback
|
|
2013-**-**: Vendor Fix/Patch
|
|
2013-07-16: Public Disclosure
|
|
|
|
|
|
Status:
|
|
========
|
|
Published
|
|
|
|
|
|
Affected Products:
|
|
==================
|
|
DELL
|
|
Product: Kace K1000 SMA 5.4.70402
|
|
|
|
|
|
Exploitation-Technique:
|
|
=======================
|
|
Remote
|
|
|
|
|
|
Severity:
|
|
=========
|
|
Medium
|
|
|
|
|
|
Details:
|
|
========
|
|
Multiple persistent input validation web vulnerabilities are detected in Dell Kace K1000, Systems Management Appliance.
|
|
The vulnerabilityallows an attacker to inject own malicious script code in the vulnerable module on application side (persistent).
|
|
|
|
The first vulnerability is located in the `Inventory` module with the bound vulnerable Ip-address, Mac, Os Name, Service pack,
|
|
Notes and Label Name parameters. The persistent injected script code will be executed directly out of the `Computer` listing
|
|
when processing to manage the earlier inserted machines in dbms context.
|
|
|
|
The second vulnerability is located in the `Distribution` module with the bound vulnerable Machine Name and Mac address parameters.
|
|
The persistent injected script code will be executed directly out of the `Walk-on-lan` exception handling mechanism when a malicious
|
|
data is inserted in the vulnerable fields.
|
|
|
|
Successful exploitation of the vulnerabilities result in persistent session hijacking, persistent phishing, persistent external
|
|
redirects, persistent external malware loads via inject and persistent vulnerable module web context manipulation.
|
|
|
|
Vulnerable Section(s):
|
|
[+] Inventory => Computers
|
|
[+] Inventory => Computers
|
|
[+] Distribution => Wake-on-lan
|
|
|
|
Vulnerable Module(s):
|
|
[+] Add New Item
|
|
[+] Add Label
|
|
[+] Add new Item
|
|
|
|
Vulnerable Parameter(s):
|
|
[+] [Ip-address] [Mac] [Os Name] [Service pack] [Notes]
|
|
[+] [Label Name]
|
|
[+] [Machine Name] [Mac address]
|
|
|
|
Affected Modules(s):
|
|
[+] Inventory => Computers
|
|
[+] Inventory => Computers => Choose Action Menu => Apply label
|
|
[+] Distribution => Wake-on-lan =>Exception handeling
|
|
|
|
|
|
Proof of Concept:
|
|
=================
|
|
The vulnerability can be exploited by remote attackers with low user interaction and low privilege application user account.
|
|
For demonstration or reproduce ...
|
|
|
|
1.1
|
|
|
|
URL: https://pub23.127.0.0.1:1336/adminui/machine.php?ID=1
|
|
Affected Module: Inventory => Computers
|
|
|
|
|
|
Code Review:
|
|
|
|
<div style="margin-left:15px; color: #005FA9; font-family:Verdana,Arial,Helvetica,sans-serif; font-size:10px; font-weight:300;">
|
|
|
|
<script type="text/javascript" src="/common/js/scw.js"></script>
|
|
<script type="text/javascript">
|
|
|
|
// this will get set at the end of the page, after we've generated all the dynamic sections
|
|
var gLastSectionId = 0;
|
|
</script>
|
|
[<a href="#" onclick='expandAllDetail(gLastSectionId, 1);'>Expand All</a>]
|
|
[<a href="#" onclick='expandAllDetail
|
|
(gLastSectionId);printSpecial()'>Printer Friendly Version</a>]
|
|
[<a href="history_log.php?HISTORY_TYPE=ASSET&TYPE_NAME=
|
|
Computer&TYPE_ID=8&NAME=%26lt%3Bh1%26gt%3BName%26lt%3B%2Fh1%26gt%3B&SHOW_ALL=1" onclick='logPopup(this); return false;'>Show All History</a>]
|
|
|
|
<div id="printReady" style="margin-top:2px;">
|
|
<table border="0" cellspacing="0" cellpadding="0"
|
|
style="border-collapse:collapse;width:70%;">
|
|
<tbody>
|
|
<tr class="detail_page_section_heading_no_cursor">
|
|
<td colspan="3">
|
|
|
|
<a style="cursor: pointer;cursor: hand;" onclick="hideShowDetail('section1',null,'','',''); return false;">Summary</a>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
|
|
<tbody id="section1" style="display:none;">
|
|
<tr valign="top" class="rowHighlightData"><td width="1%"> </td><td style="width:150px;min-
|
|
width:100px;">Name:</td><td><h1>Name</h1></td></tr>
|
|
<tr valign="top" class="rowData"><td width="1%"> </td>
|
|
<td style="width:150px;min-width:100px;">Manual Entry:</td><td>Manually Entered Record, no communication with the server
|
|
[<a href="/adminui/machine_edit.php?ID=2">Edit</a>]</td></tr>
|
|
<tr valign="top" class="rowHighlightData"><td width="1%"> </td>
|
|
<td style="width:150px;min-width:100px;">IP Address:</td><td>[PERSISTENT INJECTED SCRIPT CODE!] <select onchange="
|
|
if(this.options[this.selectedIndex].value=='1') MachineAction('<h1>Ip-Address</h1>','<h1>Name</h1>', 2, encodeURI('mstsc.exe /v:KACE_HOST_IP /w:900 /h:800'));">
|
|
<option value="">Action...</option><option title="Launch: mstsc.exe /v:KACE_HOST_IP /w:900 /h:800" value="1">Action 1</option></select></td></tr>
|
|
|
|
<tr valign="top" class="rowData"><td width="1%"> </td><td style="width:150px;min-width:100px;">MAC:</td><td>[PERSISTENT INJECTED SCRIPT CODE!]</td>
|
|
</tr>
|
|
<tr valign="top" class="rowHighlightData"><td width="1%"> </td><td style="width:150px;min-width:100px;">
|
|
Processors:</td><td>[PERSISTENT INJECTED SCRIPT CODE!]</td></tr>
|
|
<tr valign="top" class="rowData"><td width="1%"> </td><td style="width:150px;
|
|
min-width:100px;">OS Name:</td><td>[PERSISTENT INJECTED SCRIPT CODE!]v</td></tr>
|
|
<tr valign="top" class="rowHighlightData"><td width="1%"> </td>
|
|
<td style="width:150px;min-width:100px;">Service Pack:</td><td>[PERSISTENT INJECTED SCRIPT CODE!]</td></tr>
|
|
<tr valign="top" class="rowData">
|
|
<td width="1%"> </td><td style="width:150px;min-width:100px;">Notes:</td><td>[PERSISTENT INJECTED SCRIPT CODE!]</td></tr>
|
|
<tr valign="top"
|
|
class="rowHighlightData"><td width="1%"> </td><td style="width:150px;min-width:100px;">Record Created:</td><td>01/28/2013 05:31:49</td></tr>
|
|
|
|
<tr class="rowData"><td colspan="3"> </td></tr>
|
|
</tbody><tbody><tr class="detail_page_group_heading"><td colspan="3">Inventory Information
|
|
</td></tr></tbody>
|
|
<tbody>
|
|
<tr class="detail_page_section_heading_no_cursor">
|
|
<td colspan="3">
|
|
<a style="cursor: pointer;cursor: hand;"
|
|
onclick="hideShowDetail('section2',null,'','',''); return false;">Hardware</a> <span style="color:#909090"> [no changes]</span>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
<tbody id="section2" style="display:none;">
|
|
<tr valign="top" class="rowHighlightData"><td width="1%"> </td>
|
|
<td style="width:150px;min-width:100px;">Processors:</td><td>[PERSISTENT INJECTED SCRIPT CODE!]</td></tr>
|
|
<tr valign="top" class="rowData"><td width="1%"> </td><td style="width:150px;min-width:100px;">CD/DVD Drives:</td><td>[PERSISTENT INJECTED SCRIPT CODE!]</td></tr>
|
|
<tr valign="top"
|
|
class="rowHighlightData"><td width="1%"> </td><td style="width:150px;min-width:100px;">
|
|
Sound Devices:</td><td>[PERSISTENT INJECTED SCRIPT CODE!]</td></tr>
|
|
<tr valign="top" class="rowData"><td width="1%"> </td>
|
|
<td style="width:150px;min-width:100px;">Video Controllers:</td><td>[PERSISTENT INJECTED SCRIPT CODE!]</td></tr>
|
|
<tr valign="top"
|
|
class="rowHighlightData"><td width="1%"> </td><td style="width:150px;min-width:100px;">Monitor:
|
|
</td><td>[PERSISTENT INJECTED SCRIPT CODE!]</td></tr>
|
|
<tr class="rowData"><td colspan="3"> </td></tr>
|
|
</tbody><tbody>
|
|
<tr class="detail_page_section_heading_no_cursor">
|
|
<td colspan="3">
|
|
<a style="cursor: pointer;cursor: hand;" onclick="hideShowDetail
|
|
('section3',null,'','',''); return false;">Printers (1)</a>
|
|
</td>
|
|
|
|
...
|
|
|
|
|
|
|
|
1.2
|
|
|
|
URL:https://pub23.127.0.0.1:1336/adminui/computer_inventory.php
|
|
|
|
Affected Module: Inventory =>Computers => choose action => Apply Label
|
|
|
|
|
|
Code Review:
|
|
|
|
|
|
<td class="inputFormat"><select name="FINDFIELDS[EXP_SELECT8]" id="FINDFIELDS[EXP_SELECT8]" onchange="$('FINDFIELDS[INPUT8]').disabled =
|
|
|
|
($F(this) == 'NULL' || $F(this) == 'NOT_NULL')" style="width:auto">
|
|
<option value="NOT_EQUAL" title="!=">!=
|
|
</option>
|
|
<option value="GT" title=">">></option>
|
|
<option value="LT" title="<"><</option>
|
|
<option value="EQUALS" title="=">=</option>
|
|
|
|
<option value="BEGINS_WITH" title="begins with">begins with</option>
|
|
<option value="CONTAINS" title="contains">contains</option>
|
|
<option
|
|
value="NOT_BEGINS_WITH" title="does not begin with">does not begin with</option>
|
|
<option value="NO_CONTAIN" title="does not contain">does not
|
|
contain</option>
|
|
<option value="NOT_ENDS_WITH" title="does not end with">does not end with</option>
|
|
<option value="NOT_MATCH_REGEX" title="does
|
|
not match REGEX">does not match REGEX</option>
|
|
<option value="ENDS_WITH" title="ends with">ends with</option>
|
|
<option value="NOT_NULL" title="
|
|
is NOT NULL">is NOT NULL</option>
|
|
<option value="NULL" title="is NULL">is NULL</option>
|
|
<option value="MATCH_REGEX" title="matches REGEX">matches
|
|
REGEX</option>
|
|
</select>
|
|
</td>
|
|
<td class="inputFormat"><input class="inputFormat" name="FINDFIELDS[INPUT8]" id="FINDFIELDS[INPUT8]" value=""
|
|
size="46" maxlength="255" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="4" align="center" class="inputFormat">
|
|
Choose label:
|
|
<select name="FINDFIELDS[FILTER_LABEL]" dojoType="dijit.form.ComboBox">
|
|
<script type="dojo/connect">
|
|
this.attr("value","");</script>
|
|
<option selected value="" title=""></option>
|
|
<option value="77" title="">[PERSISTENT INJECTED SCRIPT CODE!]"
|
|
>">[PERSISTENT INJECTED SCRIPT CODE!]</option>
|
|
</select>
|
|
|
|
<input name="test_filter" class="inputFormatButton" type="submit"
|
|
value="Test Smart Label" />
|
|
<input name="create_filter" class="inputFormatButton" type="submit"
|
|
value="Create Smart Label" />
|
|
<input name="cancel" class="inputFormatButton" type="reset" value="Reset" onclick="document.createFilterForm.reset(); return true;" />
|
|
</td>
|
|
</tr>
|
|
|
|
</table>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
<div id="createNotifyForm" class="advQueryOuter">
|
|
<div class="advQueryInner">
|
|
|
|
<h2>Create Email Notification</h2>
|
|
<p>To create a notification rule simply enter the search criteria, title, email recipient -
|
|
then Test & Create:</p> <form name="createNotifyForm" action="/adminui/advanced_query.php" method="post" onreset="fieldsReset();
|
|
fieldsOnchange();">
|
|
<table border="0" cellspacing="0" cellpadding="0" style="margin-left: auto; margin-right: auto;" align="center">
|
|
<tr>
|
|
...
|
|
|
|
|
|
|
|
1.3
|
|
|
|
URL: https://pub23.127.0.0.1:1336/adminui/settings_network_scan.php
|
|
|
|
Affected module: Distribution => Wake-on Lan => Exception handeling
|
|
|
|
|
|
Code Review:
|
|
|
|
<p>
|
|
<b><u>Wake-on-LAN</u></b>
|
|
<br/><br/>
|
|
This page allows you to wake up a computer or other device that has been inventoried by the K1000
|
|
if the remote device is attached to the network and supports Wake-on-LAN. If the device you wish to wake is not inventoried by the K1000
|
|
but you still know the MAC (Hardware) address and its last-known IP address, you can manually enter the info to wake the device.
|
|
</p>
|
|
|
|
<div class="roundbottom">
|
|
<img src="./images/RoundRectBottomLeft.gif" alt="" width="15" height="15" class="corner" style="display: none;">
|
|
</div>
|
|
</div>
|
|
|
|
<span class="filtercount" style="display:none" id="hidden_machine_picker_count"></span>
|
|
<span class="filtercount" style="display:none
|
|
" id="hidden_device_picker_count"></span>
|
|
<form class="edit" action="" method="post" target="_self" />
|
|
<div class="wordwrap messageBox">
|
|
<span class="messageBoxTitle">Please correct the following errors:</span><ul><li class="error">A Wake-on-LAN packet was sent to
|
|
wake <strong>[PERSISTENT INJECTED SCRIPT CODE!] ([PERSISTENT INJECTED SCRIPT CODE!])</strong>. </li><li class="error">Please note that it may
|
|
take several minutes for the device to power on and be available for use.</li></ul></div>
|
|
<table cellspacing="1" cellpadding="0" border="0">
|
|
|
|
<tr>
|
|
<td colspan="2" class="inputFormat"><h2>Wake Multiple Devices</h2></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="inputFormat"
|
|
style="width: 30%; vertical-align:middle;">Limit To Selected Labels:</td>
|
|
<td width="70%">
|
|
<select name="label" style="width:
|
|
30em" onchange="updateFields(this)" id="label">
|
|
<option selected value="" title="Select a label…">Select a label…</option>
|
|
<option
|
|
value="77" title="">[PERSISTENT INJECTED SCRIPT CODE!]">">[PERSISTENT INJECTED SCRIPT CODE!]</option>
|
|
<option value="72"
|
|
title="Adobe Flash Player">Adobe Flash Player</option>
|
|
<option value="71" title="Adobe Reader X">Adobe Reader X</option>
|
|
<option value="49"
|
|
title="All Ticket Owners">All Ticket Owners</option>
|
|
<option value="33" title="MemberOfBuildingA">MemberOfBuildingA</option>
|
|
<option value="32"
|
|
title="MemberOfFinanceGroup">MemberOfFinanceGroup</option>
|
|
<option value="64" title="Windows 7 - Critical - 2012">Windows 7 - Critical -
|
|
2012</option>
|
|
<option value="65" title="Windows XP - Critical - 2012">Windows XP - Critical - 2012</option>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td colspan="2" class="inputFormat"><img src="/adminui/images/timer_16x16.gif" alt="" height="16" width="16" border="0" />
|
|
<a href="wol_list.php">Schedule a routine Wake-on-LAN event</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2" height="10px"></td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td colspan="2" class="inputFormat"><h2>Wake a Computer</h2></td>
|
|
</tr>
|
|
<tr>
|
|
|
|
<td class="inputFormat" style="width: 140px; max-width: 140px; vertical-align:middle;">Limit To Listed Machines:</td>
|
|
<td>
|
|
|
|
<select name="machine[]" size="7" multiple="1" id="machine[]" style="width:30em">
|
|
<option value="0"
|
|
title="----- Machine Names -----">----- Machine Names -----</option>
|
|
</select>
|
|
<input class="inputFormat"
|
|
type="button" value="Remove" onclick="machineRemoveSelected()" />
|
|
<input class="inputFormat" type="button" value="Remove All"
|
|
onclick="machineRemoveAll()" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td height="10px"></td>
|
|
|
|
<td valign="bottom">
|
|
<select name="" id="machine_picker" style="width:30em" onchange="machineAddNameToList(this);
|
|
this.selectedIndex = 0; ">
|
|
<option value="" title="Loading...">Loading...</option>
|
|
</select>
|
|
|
|
|
|
Risk:
|
|
=====
|
|
The security risk of the persistent input validation web vulnerabilities are estimated as medium(+).
|
|
|
|
|
|
Credits:
|
|
========
|
|
Vulnerability Laboratory [Research Team] - Ibrahim Mosaad El-Sayed [ibrahim@evolution-sec.com]
|
|
|
|
|
|
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. We do not approve or encourage anybody to break any vendor licenses, policies, deface websites, hack into databases
|
|
or trade with fraud/stolen material.
|
|
|
|
Domains: www.vulnerability-lab.com - www.vuln-lab.com - www.vulnerability-lab.com/register
|
|
Contact: admin@vulnerability-lab.com - support@vulnerability-lab.com - research@vulnerability-lab.com
|
|
Section: video.vulnerability-lab.com - forum.vulnerability-lab.com - news.vulnerability-lab.com
|
|
Social: twitter.com/#!/vuln_lab - facebook.com/VulnerabilityLab - youtube.com/user/vulnerability0lab
|
|
Feeds: vulnerability-lab.com/rss/rss.php - vulnerability-lab.com/rss/rss_upcoming.php - vulnerability-lab.com/rss/rss_news.php
|
|
|
|
Any modified copy or reproduction, including partially usages, of this file requires authorization from Vulnerability Laboratory.
|
|
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 Research Team or its suppliers. All pictures, texts, advisories, sourcecode, videos and
|
|
other information on this website is trademark of vulnerability-lab team & the specific authors or managers. To record, list (feed),
|
|
modify, use or edit our material contact (admin@vulnerability-lab.com or support@vulnerability-lab.com) to get a permission.
|
|
|
|
Copyright © 2013 | Vulnerability Laboratory
|
|
|
|
|
|
--
|
|
VULNERABILITY LABORATORY RESEARCH TEAM
|
|
DOMAIN: www.vulnerability-lab.com
|
|
CONTACT: research@vulnerability-lab.com |