Fixed CR comments

This commit is contained in:
VakarisZ 2019-08-19 17:16:57 +03:00
parent acf309a163
commit 3325aea17d
7 changed files with 21 additions and 15 deletions

View File

@ -16,5 +16,5 @@ from config import Config
from creds import Creds
from monkey_ttl import MonkeyTtl
from pba_results import PbaResults
from c2_info import C2Info
from command_control_channel import CommandControlChannel
from monkey import Monkey

View File

@ -1,6 +0,0 @@
from mongoengine import EmbeddedDocument, StringField
class C2Info(EmbeddedDocument):
src = StringField()
dst = StringField()

View File

@ -0,0 +1,11 @@
from mongoengine import EmbeddedDocument, StringField
class CommandControlChannel(EmbeddedDocument):
"""
This value describes command and control channel monkey used in communication
src - Monkey Island's IP
dst - Monkey's IP (in case of a proxy chain this is the IP of the last monkey)
"""
src = StringField()
dst = StringField()

View File

@ -6,6 +6,7 @@ from mongoengine import Document, StringField, ListField, BooleanField, Embedded
DateTimeField
from monkey_island.cc.models.monkey_ttl import MonkeyTtl
from monkey_island.cc.models.command_control_channel import CommandControlChannel
class Monkey(Document):
@ -33,7 +34,7 @@ class Monkey(Document):
pba_results = ListField()
ttl_ref = ReferenceField(MonkeyTtl)
tunnel = ReferenceField("self")
c2_info = EmbeddedDocumentField('C2Info')
command_control_channel = EmbeddedDocumentField(CommandControlChannel)
# LOGIC
@staticmethod

View File

@ -48,7 +48,7 @@ class Telemetry(flask_restful.Resource):
def post(self):
telemetry_json = json.loads(request.data)
telemetry_json['timestamp'] = datetime.now()
telemetry_json['c2_channel'] = {'src': request.remote_addr, 'dst': request.host}
telemetry_json['command_control_channel'] = {'src': request.remote_addr, 'dst': request.host}
monkey = NodeService.get_monkey_by_guid(telemetry_json['monkey_guid'])
@ -111,7 +111,7 @@ class Telemetry(flask_restful.Resource):
@staticmethod
def process_state_telemetry(telemetry_json):
monkey = NodeService.get_monkey_by_guid(telemetry_json['monkey_guid'])
NodeService.add_communication_info(monkey, telemetry_json['c2_channel'])
NodeService.add_communication_info(monkey, telemetry_json['command_control_channel'])
if telemetry_json['data']['done']:
NodeService.set_monkey_dead(monkey, True)
else:

View File

@ -15,13 +15,13 @@ class T1041(AttackTechnique):
@staticmethod
def get_report_data():
monkeys = list(Monkey.objects())
info = [{'src': monkey['c2_info']['src'],
'dst': monkey['c2_info']['dst']}
for monkey in monkeys if monkey['c2_info']]
info = [{'src': monkey['command_control_channel']['src'],
'dst': monkey['command_control_channel']['dst']}
for monkey in monkeys if monkey['command_control_channel']]
if info:
status = ScanStatus.USED.value
else:
status = ScanStatus.UNSCANNED.value
data = T1041.get_base_data_by_status(status)
data.update({'c2_info': info})
data.update({'command_control_channel': info})
return data

View File

@ -250,7 +250,7 @@ class NodeService:
@staticmethod
def add_communication_info(monkey, info):
mongo.db.monkey.update({"guid": monkey["guid"]},
{"$set": {'c2_info': info}},
{"$set": {'command_control_channel': info}},
upsert=False)
@staticmethod