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>)
} }
<p className="alert alert-info"> {
<i className="glyphicon glyphicon-info-sign" style={{'marginRight': '5px'}}/> this.didMonkeyFindIssues() ?
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>. :
</p> <p className="alert alert-info">
<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
scan" config value under <b>Basic - Network</b>.
</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 ?
<p> (
Used the following exploit methods: this.state.report.overview.config_exploits[0] === 'default' ?
<ul> ''
{this.state.report.overview.config_exploits.map(x => <li>{x}</li>)} :
</ul> <p>
</p> Used the following exploit methods:
<ul>
{this.state.report.overview.config_exploits.map(x => <li>{x}</li>)}
</ul>
</p>
)
: :
<p> <p>
Don't use any exploit. Don't use any exploit.