Codebase list fudgec2 / 1f9bc85d-cf5d-4190-896e-9f2bdd91491b/upstream Data / CampaignLogging.py
1f9bc85d-cf5d-4190-896e-9f2bdd91491b/upstream

Tree @1f9bc85d-cf5d-4190-896e-9f2bdd91491b/upstream (Download .tar.gz)

CampaignLogging.py @1f9bc85d-cf5d-4190-896e-9f2bdd91491b/upstreamraw · history · blame

import time
class CampaignLoggingDecorator():
    # TODO: Refactor variables to be more readable, improve commenting.
    db = None
    # LogType:
    #   new_imp
    #   cmd_reg
    #   cmd_pickup
    #   cmd_response
    wireframe = {
        "user":None,
        "campaign":None,
        "time":0,
        "log_type":None,
        "entry":None
    }


    def log_implant_activation(self, decorated_function):
        # TODO: Complete and test output
        def decor_imp_act(*args, **kwargs):
            a = decorated_function(*args)
            if a != False:
                print(":: ",args)
                try:
                    b = self.wireframe
                    print("@@",a)
                    b['user'] = "0"
                    b['campaign'] = int(a[0]['cid'])
                    b['time'] = time.time()
                    b['log_type'] = "new_imp"
                    b['entry'] = {"stager_key": a[0]['stager_key'],
                                  "generated_title":a[0]['generated_title'],
                                  "callback_url":a[0]['callback_url'],
                                  "obfuscation_level":a[0]['obfuscation_level']
                                  }
                    print("##",b)
                    args[0].Log_CampaignAction(b)
                except Exception as e:
                    print(e)
                    pass
            return a
        return decor_imp_act


    def log_cmdreg(self, decorated_function):
        def decor_cmd_reg(*args, **kwargs):
            a = decorated_function(*args,**kwargs)
            try:
                if a:
                    b = self.wireframe
                    b['user'] = args[1]
                    b['campaign'] = int(kwargs['cid'])
                    b['time'] = time.time()
                    b['log_type'] = "cmd_reg"
                    b['entry'] = {"cmd":args[3],"uik":args[2]}
                    args[0].Log_CampaignAction(b)
            except:
                pass
            return a
        return decor_cmd_reg


    def log_cmdpickup(self, decorated_function):
        def decor_cmd_pickup(*args, **kwargs):
            a = decorated_function(*args,**kwargs)
            if a:
                b=self.wireframe
                b['user']=args[1].uid
                b['campaign']=args[1].cid
                b['time']=time.time()
                b['log_type'] = "cmd_pickup"
                b['entry']={"cmd":args[1].log_entry,"uik":args[1].uik}
                args[0].Log_CampaignAction(b)
            return a
        return decor_cmd_pickup


    def log_cmdresponse(self, decorated_function):
        def decor_cmd_response(*args, **kwargs):
            a = decorated_function(*args,**kwargs)
            if a:
                b=self.wireframe
                b['user']=0
                b['campaign']=args[1]
                b['time']=time.time()
                b['log_type'] = "cmd_response"
                b['entry']={"uik":args[2],"response":args[3]}
                # print(*args)
                args[0].Log_CampaignAction(b)
            return a
        return decor_cmd_response