Report uses data from server now

This commit is contained in:
Itay Mizeretz 2017-11-21 16:40:26 +02:00
parent 83c7c3d13c
commit 35bbd38d2e
2 changed files with 72 additions and 46 deletions

View File

@ -88,6 +88,74 @@ class ReportService:
@staticmethod @staticmethod
def get_report(): def get_report():
return \
{
'overview':
{
'monkey_start_time': '01/02/2017 21:45',
'monkey_duration': '23:12 minutes',
'issues': [False, True, True, True, False, True],
'warnings': [True, True]
},
'glance':
{
'scanned':
[{"services": ["tcp-22: ssh", "elastic-search-9200: Lorelei Travis"],
"ip_addresses": ["11.0.0.13"], "accessible_from_nodes": ["webServer-shellshock0"],
"label": "Ubuntu-4ubuntu2.1"},
{"services": [], "ip_addresses": ["10.0.3.23"], "accessible_from_nodes": [],
"label": "ubuntu"},
{"services": ["tcp-22: ssh", "tcp-80: http"], "ip_addresses": ["10.0.3.68", "11.0.0.41"],
"accessible_from_nodes": ["Monkey-MSSQL1", "ubuntu"], "label": "webServer-shellshock0"},
{"services": ["tcp-445: Windows Server 2012 R2 Standard 6.3"],
"ip_addresses": ["12.0.0.90", "11.0.0.90"],
"accessible_from_nodes": ["webServer-shellshock0"], "label": "Monkey-MSSQL1"}],
'exploited':
[{"ip_addresses": ["10.0.3.68", "11.0.0.41"],
"exploits": ["ShellShockExploiter", "ShellShockExploiter"],
"label": "webServer-shellshock0"},
{"ip_addresses": ["12.0.0.90", "11.0.0.90"], "exploits": ["SmbExploiter", "SmbExploiter"],
"label": "Monkey-MSSQL1"}],
'stolen_creds':
[
{'username': 'admin', 'password': 'secretpassword', 'type': 'password', 'origin': 'Monkey-SMB'},
{'username': 'user', 'password': 'my_password', 'type': 'password', 'origin': 'Monkey-SMB2'},
{'username': 'dan', 'password': '066DDFD4EF0E9CD7C256FE77191EF43C', 'type': 'NTLM',
'origin': 'Monkey-RDP'},
{'username': 'joe', 'password': 'FDA95FBECA288D44AAD3B435B51404EE', 'type': 'LM',
'origin': 'Monkey-RDP'}
]
},
'recommendations':
{
'issues':
[
{'type': 'smb_password', 'machine': 'Monkey-SMB',
'ip_addresses': ['192.168.0.1', '10.0.0.18'], 'username': 'Administrator'},
{'type': 'smb_pth', 'machine': 'Monkey-SMB2', 'ip_addresses': ['192.168.0.1', '10.0.0.18'],
'username': 'Administrator'},
{'type': 'wmi_password', 'machine': 'Monkey-WMI',
'ip_addresses': ['192.168.0.1', '10.0.0.18'], 'username': 'Administrator'},
{'type': 'wmi_pth', 'machine': 'Monkey-WMI2', 'ip_addresses': ['192.168.0.1', '10.0.0.18'],
'username': 'Administrator'},
{'type': 'ssh', 'machine': 'Monkey-SMB', 'ip_addresses': ['192.168.0.1', '10.0.0.18'],
'username': 'Administrator'},
{'type': 'rdp', 'machine': 'Monkey-SMB', 'ip_addresses': ['192.168.0.1', '10.0.0.18'],
'username': 'Administrator'},
{'type': 'sambacry', 'machine': 'Monkey-SMB', 'ip_addresses': ['192.168.0.1', '10.0.0.18'],
'username': 'Administrator'},
{'type': 'elastic', 'machine': 'Monkey-SMB', 'ip_addresses': ['192.168.0.1', '10.0.0.18']},
{'type': 'shellshock', 'machine': 'Monkey-SMB', 'ip_addresses': ['192.168.0.1', '10.0.0.18'],
'port': 8080, 'paths': ['/cgi/backserver.cgi', '/cgi/login.cgi']},
{'type': 'conficker', 'machine': 'Monkey-SMB', 'ip_addresses': ['192.168.0.1', '10.0.0.18']},
{'type': 'cross_segment', 'machine': 'Monkey-SMB', 'network': '192.168.0.0/24',
'server_network': '172.168.0.0/24'},
{'type': 'tunnel', 'origin': 'Monkey-SSH', 'dest': 'Monkey-SambaCry'}
]
}
}
# TODO: put implementation in template
"""
return \ return \
{ {
'first_monkey_time': ReportService.get_first_monkey_time(), 'first_monkey_time': ReportService.get_first_monkey_time(),
@ -99,6 +167,7 @@ class ReportService:
'exploited': ReportService.get_exploited(), 'exploited': ReportService.get_exploited(),
'reused_passwords': ReportService.get_reused_passwords() 'reused_passwords': ReportService.get_reused_passwords()
} }
"""
@staticmethod @staticmethod
def did_exploit_type_succeed(exploit_type): def did_exploit_type_succeed(exploit_type):

View File

@ -27,56 +27,14 @@ class ReportPageComponent extends React.Component {
constructor(props) { constructor(props) {
super(props); super(props);
this.stolen_passwords =
[
{username: 'admin', password: 'secretpassword', type: 'password', origin: 'Monkey-SMB'},
{username: 'user', password: 'my_password', type: 'password', origin: 'Monkey-SMB2'},
{username: 'dan', password: '066DDFD4EF0E9CD7C256FE77191EF43C', type: 'NTLM', origin: 'Monkey-RDP'},
{username: 'joe', password: 'FDA95FBECA288D44AAD3B435B51404EE', type: 'LM', origin: 'Monkey-RDP'}
];
this.state = { this.state = {
report: { report: {},
overview:
{
monkey_start_time: '01/02/2017 21:45',
monkey_duration: '23:12 minutes',
issues: [false, true, true, true, false, true],
warnings: [true, true]
},
glance:
{
scanned:
[{"services": ["tcp-22: ssh", "elastic-search-9200: Lorelei Travis"], "ip_addresses": ["11.0.0.13"], "accessible_from_nodes": ["webServer-shellshock0"], "label": "Ubuntu-4ubuntu2.1"}, {"services": [], "ip_addresses": ["10.0.3.23"], "accessible_from_nodes": [], "label": "ubuntu"}, {"services": ["tcp-22: ssh", "tcp-80: http"], "ip_addresses": ["10.0.3.68", "11.0.0.41"], "accessible_from_nodes": ["Monkey-MSSQL1", "ubuntu"], "label": "webServer-shellshock0"}, {"services": ["tcp-445: Windows Server 2012 R2 Standard 6.3"], "ip_addresses": ["12.0.0.90", "11.0.0.90"], "accessible_from_nodes": ["webServer-shellshock0"], "label": "Monkey-MSSQL1"}],
exploited:
[{"ip_addresses": ["10.0.3.68", "11.0.0.41"], "exploits": ["ShellShockExploiter", "ShellShockExploiter"], "label": "webServer-shellshock0"}, {"ip_addresses": ["12.0.0.90", "11.0.0.90"], "exploits": ["SmbExploiter", "SmbExploiter"], "label": "Monkey-MSSQL1"}],
stolen_creds: this.stolen_passwords
},
recommendations:
{
issues:
[
{type: 'smb_password', machine: 'Monkey-SMB', ip_addresses: ['192.168.0.1', '10.0.0.18'], username: 'Administrator'},
{type: 'smb_pth', machine: 'Monkey-SMB2', ip_addresses: ['192.168.0.1', '10.0.0.18'], username: 'Administrator'},
{type: 'wmi_password', machine: 'Monkey-WMI', ip_addresses: ['192.168.0.1', '10.0.0.18'], username: 'Administrator'},
{type: 'wmi_pth', machine: 'Monkey-WMI2', ip_addresses: ['192.168.0.1', '10.0.0.18'], username: 'Administrator'},
{type: 'ssh', machine: 'Monkey-SMB', ip_addresses: ['192.168.0.1', '10.0.0.18'], username: 'Administrator'},
{type: 'rdp', machine: 'Monkey-SMB', ip_addresses: ['192.168.0.1', '10.0.0.18'], username: 'Administrator'},
{type: 'sambacry', machine: 'Monkey-SMB', ip_addresses: ['192.168.0.1', '10.0.0.18'], username: 'Administrator'},
{type: 'elastic', machine: 'Monkey-SMB', ip_addresses: ['192.168.0.1', '10.0.0.18']},
{type: 'shellshock', machine: 'Monkey-SMB', ip_addresses: ['192.168.0.1', '10.0.0.18'], port: 8080, paths: ['/cgi/backserver.cgi', '/cgi/login.cgi']},
{type: 'conficker', machine: 'Monkey-SMB', ip_addresses: ['192.168.0.1', '10.0.0.18']},
{type: 'cross_segment', machine: 'Monkey-SMB', network: '192.168.0.0/24', server_network: '172.168.0.0/24'},
{type: 'tunnel', origin: 'Monkey-SSH', dest: 'Monkey-SambaCry'}
]
}
},
graph: {nodes: [], edges: []} graph: {nodes: [], edges: []}
}; };
} }
componentDidMount() { componentDidMount() {
// TODO: uncomment this.getReportFromServer();
//this.getReportFromServer();
this.updateMapFromServer(); this.updateMapFromServer();
this.interval = setInterval(this.updateMapFromServer, 1000); this.interval = setInterval(this.updateMapFromServer, 1000);
} }
@ -342,8 +300,7 @@ class ReportPageComponent extends React.Component {
render() { render() {
let content; let content;
// TODO: remove 0==1 if (Object.keys(this.state.report).length === 0) {
if (0==1 || Object.keys(this.state.report).length === 0) {
content = (<h1>Generating Report...</h1>); content = (<h1>Generating Report...</h1>);
} else { } else {
content = content =