Intel AMT fixes.

This commit is contained in:
Ylian Saint-Hilaire 2024-02-17 12:33:56 -08:00
parent fb15d94976
commit 4637e6b3b3
4 changed files with 3276 additions and 3204 deletions

View File

@ -707,7 +707,15 @@ module.exports.CreateAmtManager = function (parent) {
dev.aquired.controlMode = responses['IPS_HostBasedSetupService'].response.CurrentControlMode; // 1 = CCM, 2 = ACM
if (typeof stack.wsman.comm.amtVersion == 'string') { // Set the Intel AMT version using the HTTP header if present
var verSplit = stack.wsman.comm.amtVersion.split('.');
if (verSplit.length >= 3) { dev.aquired.version = verSplit[0] + '.' + verSplit[1] + '.' + verSplit[2]; dev.aquired.majorver = parseInt(verSplit[0]); dev.aquired.minorver = parseInt(verSplit[1]); dev.aquired.maintenance=parseInt(verSplit[2]);}
if (verSplit.length >= 2) {
dev.aquired.version = verSplit[0] + '.' + verSplit[1];
dev.aquired.majorver = parseInt(verSplit[0]);
dev.aquired.minorver = parseInt(verSplit[1]);
if (verSplit.length >= 3) {
dev.aquired.version = verSplit[0] + '.' + verSplit[1] + '.' + verSplit[2];
dev.aquired.maintenancever = parseInt(verSplit[2]);
}
}
}
dev.aquired.realm = stack.wsman.comm.digestRealm;
dev.aquired.user = dev.intelamt.user = stack.wsman.comm.user;
@ -2621,7 +2629,14 @@ module.exports.CreateAmtManager = function (parent) {
if (domain && domain.amtmanager && (domain.amtmanager.tlsacmactivation == true)) { TlsAcmActivation = true; }
// Check Intel AMT version
if (typeof dev.intelamt.ver == 'string') { var verSplit = dev.intelamt.ver.split('.'); if (verSplit.length >= 3) { dev.aquired.majorver = parseInt(verSplit[0]); dev.aquired.minorver = parseInt(verSplit[1]); dev.aquired.maintenance = parseInt(verSplit[2]);} }
if (typeof dev.intelamt.ver == 'string') {
var verSplit = dev.intelamt.ver.split('.');
if (verSplit.length >= 2) {
dev.aquired.majorver = parseInt(verSplit[0]);
dev.aquired.minorver = parseInt(verSplit[1]);
if (verSplit.length >= 3) { dev.aquired.maintenancever = parseInt(verSplit[2]); }
}
}
// If this is Intel AMT 14 or better and allowed, we are going to attempt a host-based end-to-end TLS activation.
if (TlsAcmActivation && (dev.aquired.majorver >= 14)) {
@ -2677,7 +2692,15 @@ module.exports.CreateAmtManager = function (parent) {
dev.aquired.controlMode = 1; // 1 = CCM, 2 = ACM
if (typeof dev.amtstack.wsman.comm.amtVersion == 'string') {
var verSplit = dev.amtstack.wsman.comm.amtVersion.split('.');
if (verSplit.length >= 3) { dev.aquired.version = verSplit[0] + '.' + verSplit[1] + '.' + verSplit[2]; dev.aquired.majorver = parseInt(verSplit[0]); dev.aquired.minorver = parseInt(verSplit[1]); dev.aquired.maintenance = parseInt(verSplit[2]);}
if (verSplit.length >= 2) {
dev.aquired.version = verSplit[0] + '.' + verSplit[1];
dev.aquired.majorver = parseInt(verSplit[0]);
dev.aquired.minorver = parseInt(verSplit[1]);
if (verSplit.length >= 3) {
dev.aquired.version = verSplit[0] + '.' + verSplit[1] + '.' + verSplit[2];
dev.aquired.maintenancever = parseInt(verSplit[2]);
}
}
}
if ((typeof dev.mpsConnection.tag.meiState.OsHostname == 'string') && (typeof dev.mpsConnection.tag.meiState.OsDnsSuffix == 'string')) {
dev.aquired.host = dev.mpsConnection.tag.meiState.OsHostname + '.' + dev.mpsConnection.tag.meiState.OsDnsSuffix;
@ -2815,9 +2838,7 @@ module.exports.CreateAmtManager = function (parent) {
version = dev.aquired.version.split('.')
dev.aquired.versionmajor = parseInt(version[0]);
dev.aquired.versionminor = parseInt(version[1]);
if(version.length > 2){
dev.aquired.versionmaintenance = version[2];
}
if (version.length > 2) { dev.aquired.versionmaintenance = parseInt(version[2]); }
}
}
}
@ -2825,11 +2846,14 @@ module.exports.CreateAmtManager = function (parent) {
// Fetch the Intel AMT version from HTTP stack
if ((dev.amtversionstr == null) && (stack.wsman.comm.amtVersion != null)) {
var s = stack.wsman.comm.amtVersion.split('.');
if (s.length >= 3) {
dev.aquired.version = s[0] + '.' + s[1] + '.' + s[2];
if (s.length >= 2) {
dev.aquired.version = s[0] + '.' + s[1] + '.';
dev.aquired.versionmajor = parseInt(s[0]);
dev.aquired.versionminor = parseInt(s[1]);
dev.aquired.versionmaintenance = parseInt(s[2]);
if (s.length >= 3) {
dev.aquired.version = s[0] + '.' + s[1] + '.' + s[2];
dev.aquired.versionmaintenance = parseInt(s[2]);
}
}
}

View File

@ -201,10 +201,10 @@ module.exports.CreateAmtProvisioningServer = function (parent, config) {
var vs = getInstance(amtlogicalelements, 'AMT')['VersionString'];
if (vs != null) {
dev.aquired.version = vs;
version = parseInt(dev.aquired.version.split('.'));
dev.aquired.versionmajor = parseInt(version[0]);
dev.aquired.versionminor = parseInt(version[1]);
dev.aquired.maintenance = parseInt(version[2]);
const versionSplit = parseInt(dev.aquired.version.split('.'));
dev.aquired.versionmajor = parseInt(versionSplit[0]);
dev.aquired.versionminor = parseInt(versionSplit[1]);
if (versionSplit.length >= 3) { dev.aquired.versionmaintenance = parseInt(versionSplit[2]); }
}
}
}
@ -212,11 +212,14 @@ module.exports.CreateAmtProvisioningServer = function (parent, config) {
// Fetch the Intel AMT version from HTTP stack
if ((dev.amtversionstr == null) && (stack.wsman.comm.amtVersion != null)) {
var s = stack.wsman.comm.amtVersion.split('.');
if (s.length >= 3) {
dev.aquired.version = s[0] + '.' + s[1] + '.' + s[2];
if (s.length >= 2) {
dev.aquired.version = s[0] + '.' + s[1];
dev.aquired.versionmajor = parseInt(s[0]);
dev.aquired.versionminor = parseInt(s[1]);
dev.aquired.maintenance = parseInt(s[2]);
if (s.length >= 3) {
dev.aquired.version = s[0] + '.' + s[1] + '.' + s[2];
dev.aquired.versionmaintenance = parseInt(s[2]);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -4004,8 +4004,8 @@
x += '<label><input id=d2c3 type=checkbox' + ((deviceViewSettings.devsCols.indexOf('ip') >= 0)?' checked':'') + '>' + "Agent IP address" + '</label><br />';
x += '<label><input id=d2c4 type=checkbox' + ((deviceViewSettings.devsCols.indexOf('conn') >= 0)?' checked':'') + '>' + "Server Connectivity" + '</label><br />';
x += '<label><input id=d2c7 type=checkbox' + ((deviceViewSettings.devsCols.indexOf('lastseen') >= 0)?' checked':'') + '>' + "Last Seen" + '</label><br />';
x += '<label><input id=d2c15 type=checkbox' + ((deviceViewSettings.devsCols.indexOf('host') >= 0)?' checked':'') + '>' + "Host" + '</label><br />';
x += '<label><input id=d2c17 type=checkbox' + ((deviceViewSettings.devsCols.indexOf('activated') >= 0)?' checked':'') + '>' + "Active" + '</label><br />';
x += '<label><input id=d2c15 type=checkbox' + ((deviceViewSettings.devsCols.indexOf('amthost') >= 0)?' checked':'') + '>' + "Intel&reg; AMT hostname" + '</label><br />';
x += '<label><input id=d2c17 type=checkbox' + ((deviceViewSettings.devsCols.indexOf('amtstate') >= 0)?' checked':'') + '>' + "Intel&reg; AMT state" + '</label><br />';
setDialogMode(2, "Device View Columns", 3, onDeviceViewSettingsEx, x);
}
@ -4024,8 +4024,8 @@
if (Q('d2c11').checked) { cols.push('windowsav'); }
if (Q('d2c12').checked) { cols.push('windowsupdate'); }
if (Q('d2c13').checked) { cols.push('windowsfirewall'); }
if (Q('d2c15').checked) { cols.push('host'); }
if (Q('d2c17').checked) { cols.push('activated'); }
if (Q('d2c15').checked) { cols.push('amthost'); }
if (Q('d2c17').checked) { cols.push('amtstate'); }
deviceViewSettings.devsCols = cols;
putstore('_deviceViewSettings', JSON.stringify(deviceViewSettings));
mainUpdate(4);
@ -4470,8 +4470,8 @@
if (deviceViewSettings.devsCols.indexOf('user') >= 0) { colums += '<th style=color:gray;width:120px>' + "User"; }
if (deviceViewSettings.devsCols.indexOf('ip') >= 0) { colums += '<th style=color:gray;width:120px>' + "Address"; }
if (deviceViewSettings.devsCols.indexOf('conn') >= 0) { colums += '<th style=color:gray;width:100px>' + "Connectivity"; }
if (deviceViewSettings.devsCols.indexOf('host') >= 0){ colums += '<th style=color:gray;width:100px>' + "Host"; }
if (deviceViewSettings.devsCols.indexOf('activated') >= 0){ colums += '<th style=color:gray;width:100px>' + "Activated"; }
if (deviceViewSettings.devsCols.indexOf('amthost') >= 0) { colums += '<th style=color:gray;width:100px>' + "AMT Host"; }
if (deviceViewSettings.devsCols.indexOf('amtstate') >= 0) { colums += '<th style=color:gray;width:100px>' + "AMT State"; }
if (deviceViewSettings.devsCols.indexOf('lastseen') >= 0) {
colums += '<th style=color:gray;width:120px>' + "Last Seen";
if (requestedLastConnects == false) { requestedLastConnects = true; meshserver.send({ action: 'lastconnects' }); }
@ -4786,6 +4786,18 @@
if (deviceViewSettings.devsCols.indexOf('conn') >= 0) { r += '<td style=text-align:center>' + states.join('&nbsp;+&nbsp;'); } // Connectivity
if (deviceViewSettings.devsCols.indexOf('lastseen') >= 0) { r += '<td style=text-align:center;font-size:x-small>'; if (node.conn > 0) { r += "Connected"; } else if (node.lastconnect != null) { r += printDateTime(new Date(node.lastconnect)); } }
console.log(node.intelamt);
if (deviceViewSettings.devsCols.indexOf('amthost') >= 0) { r += '<td style=text-align:center>' + (((node.intelamt == null) || (node.intelamt.host == null)) ? '' : EscapeHtml(node.intelamt.host)); }
if (deviceViewSettings.devsCols.indexOf('amtstate') >= 0) {
var amtstate = '';
if (node.intelamt) {
if (node.intelamt.state == 0) { amtstate = ' <span title="' + "Intel&reg; AMT is not activated" + '">' + "Pre" + '</span>'; }
if (node.intelamt.state == 1) { amtstate = ' <span title="' + "Intel&reg; AMT is in activation mode" + '">' + "In" + '</span>'; }
if ((node.intelamt.state == 2) && node.intelamt.flags) { if (node.intelamt.flags & 2) { amtstate = ' <span title="' + "Intel&reg; AMT is activated in Client Control Mode" + '">' + "CCM" + '</span>'; } else if (node.intelamt.flags & 4) { amtstate += ' <span title="' + "Intel&reg; AMT is activated in Admin Control Mode" + '">' + "ACM" + '</span>'; } }
}
r += '<td style=text-align:center>' + amtstate;
}
div.innerHTML = r;
} else if ((view == 3) || (view == 5)) {
// Draw the device and canvas