diff --git a/monkey/monkey_island/cc/ui/src/components/report-components/SecurityReport.js b/monkey/monkey_island/cc/ui/src/components/report-components/SecurityReport.js index d91d2d0fc..04b05f04f 100644 --- a/monkey/monkey_island/cc/ui/src/components/report-components/SecurityReport.js +++ b/monkey/monkey_island/cc/ui/src/components/report-components/SecurityReport.js @@ -45,6 +45,8 @@ import { zerologonOverviewWithFailedPassResetWarning } from './security/issues/ZerologonIssue'; import {powershellIssueOverview, powershellIssueReport} from './security/issues/PowershellIssue'; +import {getCredentialsSecrets, getCredentialsUsernames} from './credentialParsing'; +import UsedCredentials from './security/UsedCredentials.tsx'; class ReportPageComponent extends AuthComponent { @@ -161,15 +163,31 @@ class ReportPageComponent extends AuthComponent { this.state = { report: props.report, graph: {nodes: [], edges: []}, - nodeStateList: [] + nodeStateList: [], + stolenCredentials: [], + configuredCredentials: [] }; } componentDidMount() { this.getNodeStateListFromServer(); + this.getCredentialsFromServer(); this.updateMapFromServer(); } + getCredentialsFromServer = () => { + this.authFetch('/api/propagation-credentials/stolen-credentials') + .then(res => res.json()) + .then(creds => { + this.setState({stolenCredentials: creds}); + }) + this.authFetch('/api/propagation-credentials/configured-credentials') + .then(res => res.json()) + .then(creds => { + this.setState({configuredCredentials: creds}); + }) + } + getNodeStateListFromServer = () => { this.authFetch('/api/netmap/node-states') .then(res => res.json()) @@ -184,10 +202,19 @@ class ReportPageComponent extends AuthComponent { componentDidUpdate(prevProps) { if (this.props.report !== prevProps.report) { - this.setState({report: this.props.report}) + this.updateReport(this.props.report); } } + updateReport(report) { + let newReport = this.addIssuesToOverviewIssues(report); + + this.setState({ + report: newReport + }) + } + + render() { let content; @@ -273,39 +300,20 @@ class ReportPageComponent extends AuthComponent {
The monkeys were run with the following configuration:
- { - this.state.report.overview.config_users.length > 0 ? - <> -- Usernames used for brute-forcing: -
-- Passwords used for brute-forcing: -
-- Brute forcing uses stolen credentials only. No credentials were supplied during Monkey’s - configuration. -
- } +- The Monkey uses the following exploit methods: -
+ The Monkey attempted the following exploitation methods: +
- No exploits are used by the Monkey. + No exploiters were enabled.
} { @@ -535,7 +543,7 @@ class ReportPageComponent extends AuthComponent {