ui: display ICMP in cross-segment issues report

This commit is contained in:
Mike Salvatore 2021-02-02 11:06:27 -05:00
parent c6bec1335c
commit 919c51b920
2 changed files with 30 additions and 17 deletions

View File

@ -458,8 +458,10 @@ class ReportPageComponent extends AuthComponent {
<li key={crossSegmentIssueOverview}> <li key={crossSegmentIssueOverview}>
{crossSegmentIssueOverview} {crossSegmentIssueOverview}
<CollapsibleWellComponent> <CollapsibleWellComponent>
<ul> <ul className='cross-segment-issues'>
{crossSegmentIssue['issues'].map(issue => this.generateCrossSegmentIssueListItem(issue))} {crossSegmentIssue['issues'].map(
issue => this.generateCrossSegmentIssueListItem(issue)
)}
</ul> </ul>
</CollapsibleWellComponent> </CollapsibleWellComponent>
</li> </li>
@ -485,26 +487,28 @@ class ReportPageComponent extends AuthComponent {
generateCrossSegmentMultiHostMessage(issue) { generateCrossSegmentMultiHostMessage(issue) {
return ( return (
<li key={issue['source'] + issue['target']}> <li key={issue['source'] + issue['target']}>
{ IP {issue['source']} ({issue['hostname']}) was able to communicate with
Object.keys(issue['services']).length > 0 ? IP {issue['target']} using:
this.generateCrossSegmentServiceMessage(issue) : <ul>
this.generateCrossSegmentPingMessage(issue) {issue['icmp'] && <li key='icmp'>ICMP</li>}
} {this.generateCrossSegmentServiceListItems(issue)}
</ul>
</li> </li>
); );
} }
generateCrossSegmentServiceMessage(issue) { generateCrossSegmentServiceListItems(issue) {
return ( let service_list_items = [];
`IP ${issue['source']} (${issue['hostname']}) connected to IP ${issue['target']}`
+ ` using the services: ${Object.keys(issue['services']).join(', ')}`
);
}
generateCrossSegmentPingMessage(issue) { for (const [service, info] of Object.entries(issue['services'])) {
return ( service_list_items.push(
`IP ${issue['source']} (${issue['hostname']}) successfully pinged IP ${issue['target']}` <li key={service}>
); <span className='cross-segment-service'>{service}</span> ({info['display_name']})
</li>
);
}
return service_list_items;
} }
generateShellshockPathListBadges(paths) { generateShellshockPathListBadges(paths) {

View File

@ -76,3 +76,12 @@ div.report-wrapper .nav-tabs > .nav-item > a:hover:not(.active), .nav-tabs > .n
text-decoration: none; text-decoration: none;
background-color: $light-gray; background-color: $light-gray;
} }
ul.cross-segment-issues {
list-style-type: none;
padding: 0px;
margin: 0px;
}
span.cross-segment-service {
text-transform: uppercase;
}