Added ScoutSuite scan setup guide to run monkey page.

This commit is contained in:
VakarisZ 2020-09-21 11:05:20 +03:00
parent 109b2cbcbb
commit c3fde1898c
6 changed files with 132 additions and 2 deletions

View File

@ -5,8 +5,10 @@ import AuthComponent from '../../AuthComponent';
import {faLaptopCode} from '@fortawesome/free-solid-svg-icons/faLaptopCode'; import {faLaptopCode} from '@fortawesome/free-solid-svg-icons/faLaptopCode';
import InlineSelection from '../../ui-components/inline-selection/InlineSelection'; import InlineSelection from '../../ui-components/inline-selection/InlineSelection';
import {cloneDeep} from 'lodash'; import {cloneDeep} from 'lodash';
import {faExpandArrowsAlt} from '@fortawesome/free-solid-svg-icons'; import {faCloud, faExpandArrowsAlt} from '@fortawesome/free-solid-svg-icons';
import RunOnIslandButton from './RunOnIslandButton'; import RunOnIslandButton from './RunOnIslandButton';
import AWSSetup from './scoutsuite-setup/AWSSetup';
import CloudOptions from './scoutsuite-setup/CloudOptions';
function RunOptions(props) { function RunOptions(props) {
@ -61,6 +63,13 @@ function RunOptions(props) {
setComponent(LocalManualRunOptions, setComponent(LocalManualRunOptions,
{ips: ips, setComponent: setComponent}) {ips: ips, setComponent: setComponent})
}}/> }}/>
<NextSelectionButton title={'Cloud security scan'}
description={'Explains how to enable cloud security scan.'}
icon={faCloud}
onButtonClick={() => {
setComponent(CloudOptions,
{ips: ips, setComponent: setComponent})
}}/>
</> </>
); );
} }

View File

@ -0,0 +1,56 @@
import {Button} from 'react-bootstrap';
import React from 'react';
import InlineSelection from '../../../ui-components/inline-selection/InlineSelection';
import CloudOptions from './CloudOptions';
import {COLUMN_SIZES} from '../../../ui-components/inline-selection/utils';
import '../../../../styles/components/scoutsuite/AWSSetup.scss';
export default function AWSSetup(props) {
return InlineSelection(getContents, {
...props,
collumnSize: COLUMN_SIZES.LARGE,
onBackButtonClick: () => {
props.setComponent(CloudOptions, props)
}
})
}
const getContents = (props) => {
return (
<div className={'aws-scoutsuite-configuration'}>
<h2>ScoutSuite configuration for AWS</h2>
<p>To assess your AWS infrastructure security do the following:</p>
<ol>
<li>
1. Configure AWS CLI on Monkey Island Server (if you already have a configured CLI you can skip this step).
<ol className={'nested-ol'}>
<li>
1. Download <Button href={'https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html'}
target={'_blank'} variant={'link'}>AWS CLI</Button> and
install it on Monkey Island server (machine running this page).
</li>
<li>
2. Run <span className={'code'}>aws configure</span>. It's important to configure credentials, which
allows ScoutSuite to get information about your cloud configuration. The most trivial way to do so is to
provide <Button
href={'https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds'}
variant={'link'}>
Access key ID and secret access key
</Button>.
</li>
</ol>
</li>
<li>
2. If you change the configuration, make sure not to disable AWS system info collector.
</li>
<li>
3. Go back and run Monkey on the Island server.
</li>
<li>
4. Assess results in Zero Trust report.
</li>
</ol>
</div>
);
}

View File

@ -0,0 +1,31 @@
import React from 'react';
import InlineSelection from '../../../ui-components/inline-selection/InlineSelection';
import NextSelectionButton from '../../../ui-components/inline-selection/NextSelectionButton';
import {faCloud} from '@fortawesome/free-solid-svg-icons';
import AWSSetup from './AWSSetup';
const CloudOptions = (props) => {
return InlineSelection(getContents, {
...props,
onBackButtonClick: () => {
props.setComponent()
}
})
}
const getContents = (props) => {
return (
<>
<NextSelectionButton title={'AWS'}
description={'Setup Amazon Web Services infrastructure scan.'}
icon={faCloud}
onButtonClick={() => {
props.setComponent(AWSSetup,
{setComponent: props.setComponent})
}}/>
</>
)
}
export default CloudOptions;

View File

@ -2,13 +2,14 @@ import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import BackButton from './BackButton'; import BackButton from './BackButton';
import {Col, Row, Container} from 'react-bootstrap'; import {Col, Row, Container} from 'react-bootstrap';
import {getColumnSize} from './utils';
export default function InlineSelection(WrappedComponent, props) { export default function InlineSelection(WrappedComponent, props) {
return ( return (
<Container className={'inline-selection-component'}> <Container className={'inline-selection-component'}>
<Row> <Row>
<Col lg={8} md={10} sm={12}> <Col {...getColumnSize(props.collumnSize)}>
<WrappedComponent {...props}/> <WrappedComponent {...props}/>
{renderBackButton(props)} {renderBackButton(props)}
</Col> </Col>

View File

@ -0,0 +1,16 @@
export const COLUMN_SIZES = {
LARGE: 'large',
STANDARD: 'standard',
SMALL: 'small'
}
export function getColumnSize (size) {
if(size === undefined || size === COLUMN_SIZES.STANDARD){
return {lg: 9, md: 10, sm: 12}
} else if(size === COLUMN_SIZES.LARGE) {
return {lg: 12, md: 12, sm: 12}
} else if(size === COLUMN_SIZES.SMALL) {
return {lg: 7, md: 7, sm: 7}
}
}

View File

@ -0,0 +1,17 @@
.aws-scoutsuite-configuration a{
display: inline-block;
padding: 0 0 3px 0;
}
.aws-scoutsuite-configuration ol{
padding-left: 15px;
margin-bottom: 30px;
}
.aws-scoutsuite-configuration ol.nested-ol{
margin-bottom: 0;
}
.aws-scoutsuite-configuration li{
margin-bottom: 5px;
}