From b4112f024fd73b899467f494c1cbdaebeb461bcb Mon Sep 17 00:00:00 2001 From: VakarisZ Date: Thu, 19 Mar 2020 15:41:49 +0200 Subject: [PATCH] Fixed system info collection attack technique --- .../cc/services/attack/technique_reports/T1082.py | 2 +- .../ui/src/components/attack/techniques/Helpers.js | 13 ++++++++++--- .../cc/ui/src/components/attack/techniques/T1082.js | 11 ++++++----- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/monkey/monkey_island/cc/services/attack/technique_reports/T1082.py b/monkey/monkey_island/cc/services/attack/technique_reports/T1082.py index 726910789..1aaef57f4 100644 --- a/monkey/monkey_island/cc/services/attack/technique_reports/T1082.py +++ b/monkey/monkey_island/cc/services/attack/technique_reports/T1082.py @@ -11,7 +11,7 @@ class T1082(AttackTechnique): scanned_msg = "" used_msg = "Monkey gathered system info from machines in the network." - query = [{'$match': {'telem_category': 'system_info'}}, + query = [{'$match': {'telem_category': 'system_info', 'data.network_info': {'$exists': True}}}, {'$project': {'machine': {'hostname': '$data.hostname', 'ips': '$data.network_info.networks'}, 'aws': '$data.aws', 'netstat': '$data.network_info.netstat', diff --git a/monkey/monkey_island/cc/ui/src/components/attack/techniques/Helpers.js b/monkey/monkey_island/cc/ui/src/components/attack/techniques/Helpers.js index a8847cc0f..ebe12f25b 100644 --- a/monkey/monkey_island/cc/ui/src/components/attack/techniques/Helpers.js +++ b/monkey/monkey_island/cc/ui/src/components/attack/techniques/Helpers.js @@ -9,7 +9,10 @@ export function renderMachine(val) { /* Function takes data gathered from system info collector and creates a string representation of machine from that data. */ export function renderMachineFromSystemData(data) { - let machineStr = data['hostname'] + ' ( '; + let machineStr = ''; + if (typeof data['hostname'] !== 'undefined') { + machineStr = data['hostname'] + ' ( '; + } data['ips'].forEach(function (ipInfo) { if (typeof ipInfo === 'object') { machineStr += ipInfo['addr'] + ', '; @@ -17,8 +20,12 @@ export function renderMachineFromSystemData(data) { machineStr += ipInfo + ', '; } }); - // Replaces " ," with " )" to finish a list of IP's - return machineStr.slice(0, -2) + ' )' + if (typeof data['hostname'] !== 'undefined') { + return machineStr.slice(0, -2) + ' )'; + } else { + // Replaces " ," with " )" to finish a list of IP's + return machineStr.slice(0, -2); + } } /* Formats telemetry data that contains _id.machine and _id.usage fields into columns diff --git a/monkey/monkey_island/cc/ui/src/components/attack/techniques/T1082.js b/monkey/monkey_island/cc/ui/src/components/attack/techniques/T1082.js index 308a18c10..27dec053e 100644 --- a/monkey/monkey_island/cc/ui/src/components/attack/techniques/T1082.js +++ b/monkey/monkey_island/cc/ui/src/components/attack/techniques/T1082.js @@ -12,13 +12,14 @@ class T1082 extends React.Component { static getSystemInfoColumns() { return ([{ columns: [ - { - Header: 'Machine', + { Header: 'Machine', id: 'machine', accessor: x => renderMachineFromSystemData(x.machine), - style: {'whiteSpace': 'unset'} - }, - {Header: 'Gathered info', id: 'info', accessor: x => renderUsageFields(x.collections), style: {'whiteSpace': 'unset'}} + style: {'whiteSpace': 'unset'}}, + { Header: 'Gathered info', + id: 'info', + accessor: x => renderUsageFields(x.collections), + style: {'whiteSpace': 'unset'}} ] }]) }