forked from p34709852/monkey
Added ScoutSuite scan setup guide to run monkey page.
This commit is contained in:
parent
109b2cbcbb
commit
c3fde1898c
|
@ -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})
|
||||||
|
}}/>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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>
|
||||||
|
);
|
||||||
|
}
|
|
@ -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;
|
|
@ -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>
|
||||||
|
|
|
@ -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}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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;
|
||||||
|
}
|
Loading…
Reference in New Issue