Exploits used are listed only if they're not the default configuration.

Suggestion to improve monkey success rate appears only if no critical issues were found
This commit is contained in:
Itay Mizeretz 2017-12-12 12:45:53 +02:00
parent c8e553721f
commit 2c8b510b0c
2 changed files with 43 additions and 13 deletions

View File

@ -276,6 +276,15 @@ class ReportService:
@staticmethod @staticmethod
def get_config_exploits(): def get_config_exploits():
exploits_config_value = ['exploits', 'general', 'exploiter_classes']
default_exploits = ConfigService.get_default_config()
for namespace in exploits_config_value:
default_exploits = default_exploits[namespace]
exploits = ConfigService.get_config_value(exploits_config_value)
if exploits == default_exploits:
return ['default']
exploit_display_dict = \ exploit_display_dict = \
{ {
'SmbExploiter': 'SMB Exploiter', 'SmbExploiter': 'SMB Exploiter',
@ -288,7 +297,7 @@ class ReportService:
'ShellShockExploiter': 'ShellShock Exploiter', 'ShellShockExploiter': 'ShellShock Exploiter',
} }
return [exploit_display_dict[exploit] for exploit in return [exploit_display_dict[exploit] for exploit in
ConfigService.get_config_value(['exploits', 'general', 'exploiter_classes'])] exploits]
@staticmethod @staticmethod
def get_config_ips(): def get_config_ips():

View File

@ -330,7 +330,7 @@ class ReportPageComponent extends React.Component {
generateIssues = (issues) => { generateIssues = (issues) => {
let issuesDivArray = []; let issuesDivArray = [];
for (var machine of Object.keys(issues)) { for (let machine of Object.keys(issues)) {
issuesDivArray.push( issuesDivArray.push(
<li> <li>
<h4><b>{machine}</b></h4> <h4><b>{machine}</b></h4>
@ -343,6 +343,17 @@ class ReportPageComponent extends React.Component {
return <ul>{issuesDivArray}</ul>; return <ul>{issuesDivArray}</ul>;
}; };
didMonkeyFindIssues = () => {
for (let issue of Object.keys(this.state.report.overview.issues)) {
if (this.state.report.overview.issues[issue]) {
return true;
}
}
return false;
};
render() { render() {
let content; let content;
if (Object.keys(this.state.report).length === 0) { if (Object.keys(this.state.report).length === 0) {
@ -384,11 +395,16 @@ class ReportPageComponent extends React.Component {
running. running.
</p>) </p>)
} }
{
this.didMonkeyFindIssues() ?
''
:
<p className="alert alert-info"> <p className="alert alert-info">
<i className="glyphicon glyphicon-info-sign" style={{'marginRight': '5px'}}/> <i className="glyphicon glyphicon-info-sign" style={{'marginRight': '5px'}}/>
To improve the monkey's detection rates, try adding users and passwords and enable the "Local network To improve the monkey's detection rates, try adding users and passwords and enable the "Local network
scan" config value under <b>Basic - Network</b>. scan" config value under <b>Basic - Network</b>.
</p> </p>
}
<p> <p>
The first monkey run was started on <span The first monkey run was started on <span
className="label label-info">{this.state.report.overview.monkey_start_time}</span>. After <span className="label label-info">{this.state.report.overview.monkey_start_time}</span>. After <span
@ -423,12 +439,17 @@ class ReportPageComponent extends React.Component {
} }
{ {
this.state.report.overview.config_exploits.length > 0 ? this.state.report.overview.config_exploits.length > 0 ?
(
this.state.report.overview.config_exploits[0] === 'default' ?
''
:
<p> <p>
Used the following exploit methods: Used the following exploit methods:
<ul> <ul>
{this.state.report.overview.config_exploits.map(x => <li>{x}</li>)} {this.state.report.overview.config_exploits.map(x => <li>{x}</li>)}
</ul> </ul>
</p> </p>
)
: :
<p> <p>
Don't use any exploit. Don't use any exploit.