forked from p15670423/monkey
Added report types: zero_trust and general
Also moved the report resources to their own folder
This commit is contained in:
parent
287115dded
commit
444144aecc
|
@ -23,7 +23,7 @@ from monkey_island.cc.resources.monkey_download import MonkeyDownload
|
|||
from monkey_island.cc.resources.netmap import NetMap
|
||||
from monkey_island.cc.resources.node import Node
|
||||
from monkey_island.cc.resources.remote_run import RemoteRun
|
||||
from monkey_island.cc.resources.report import Report
|
||||
from monkey_island.cc.resources.reporting.report import Report
|
||||
from monkey_island.cc.resources.root import Root
|
||||
from monkey_island.cc.resources.telemetry import Telemetry
|
||||
from monkey_island.cc.resources.telemetry_feed import TelemetryFeed
|
||||
|
@ -122,7 +122,9 @@ def init_api_resources(api):
|
|||
api.add_resource(NetMap, '/api/netmap', '/api/netmap/')
|
||||
api.add_resource(Edge, '/api/netmap/edge', '/api/netmap/edge/')
|
||||
api.add_resource(Node, '/api/netmap/node', '/api/netmap/node/')
|
||||
api.add_resource(Report, '/api/report', '/api/report/')
|
||||
|
||||
# report_type: zero_trust or general
|
||||
api.add_resource(Report, '/api/report/<string:report_type>')
|
||||
api.add_resource(TelemetryFeed, '/api/telemetry-feed', '/api/telemetry-feed/')
|
||||
api.add_resource(Log, '/api/log', '/api/log/')
|
||||
api.add_resource(IslandLog, '/api/log/island/download', '/api/log/island/download/')
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
import flask_restful
|
||||
|
||||
from monkey_island.cc.auth import jwt_required
|
||||
from monkey_island.cc.services.reporting.report import ReportService
|
||||
|
||||
__author__ = "itay.mizeretz"
|
||||
|
||||
|
||||
class Report(flask_restful.Resource):
|
||||
|
||||
@jwt_required()
|
||||
def get(self):
|
||||
return ReportService.get_report()
|
|
@ -0,0 +1,51 @@
|
|||
import httplib
|
||||
|
||||
import flask_restful
|
||||
from flask import jsonify
|
||||
|
||||
from monkey_island.cc.auth import jwt_required
|
||||
from monkey_island.cc.services.reporting.report import ReportService
|
||||
|
||||
ZERO_TRUST_REPORT_TYPE = "zero_trust"
|
||||
GENERAL_REPORT_TYPE = "general"
|
||||
REPORT_TYPES = [GENERAL_REPORT_TYPE, ZERO_TRUST_REPORT_TYPE]
|
||||
|
||||
__author__ = "itay.mizeretz"
|
||||
|
||||
|
||||
class Report(flask_restful.Resource):
|
||||
|
||||
@jwt_required()
|
||||
def get(self, report_type):
|
||||
if report_type == GENERAL_REPORT_TYPE:
|
||||
return ReportService.get_report()
|
||||
elif report_type == ZERO_TRUST_REPORT_TYPE:
|
||||
fakedict = {
|
||||
"are_all_monkeys_done": False,
|
||||
"findings": [
|
||||
{
|
||||
"test": "Monkey 8 found a machine with no AV software active.",
|
||||
"pillars": ["Devices"],
|
||||
"events": [
|
||||
{
|
||||
"timestamp": "2019-08-01 14:48:46.112000",
|
||||
"message": "log1"
|
||||
}, {
|
||||
"timestamp": "2019-08-01 14:48:42.112000",
|
||||
"message": "log2"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"test": "Monkey 6 successfully exploited machine XXX with shellshock.",
|
||||
"pillars": ["Devices", "Networks"],
|
||||
"events": [
|
||||
{
|
||||
"timestamp": "2019-08-01 14:48:46.112000",
|
||||
"message": "log3"
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
return jsonify(fakedict)
|
||||
|
||||
flask_restful.abort(httplib.NOT_FOUND)
|
|
@ -117,7 +117,7 @@ class ReportPageComponent extends AuthComponent {
|
|||
|
||||
getReportFromServer(res) {
|
||||
if (res['completed_steps']['run_monkey']) {
|
||||
this.authFetch('/api/report')
|
||||
this.authFetch('/api/report/general')
|
||||
.then(res => res.json())
|
||||
.then(res => {
|
||||
this.setState({
|
||||
|
|
Loading…
Reference in New Issue