예제 #1
0
    def restore(self, restore_map):
        for key in restore_map['creds']:
            self.creds[tuple(key.split('/'))] = restore_map['creds'][key]

        for val in restore_map['creds_keys']:
            self.creds_keys.append(tuple(val.split('/')))

        for key in restore_map['domain_info']:
            self.domain_info[tuple(
                key.split('/'))] = restore_map['domain_info'][key]

        class RestoreJob():
            def __init__(self, shell):
                self.shell = shell

            def display(self):
                self.shell.print_plain(self.results)

            def status_string(self):
                if self.completed == 4:
                    return "Completed"
                else:
                    return "Failed"

        for job in restore_map['jobs']:
            rs_job = RestoreJob(self)
            for k, v in job.items():
                setattr(rs_job, k, v)
            self.jobs[rs_job.key] = rs_job

        class RestoreStager():
            def __init__(self, payload):
                self.payload = payload

        class RestorePayload():
            def __init__(self):
                self.id = '-1'

        class RestoreSession():
            def __init__(self, shell):
                self.shell = shell

            def set_reconnect(self):
                pass

            def kill(self):
                self.killed = True
                self.shell.print_good("Zombie %d: Killed!" % self.id)

        rs_stager = RestoreStager(RestorePayload())
        for session in restore_map['sessions']:
            rs_session = RestoreSession(self)
            for k, v in session.items():
                setattr(rs_session, k, v)
            rs_session.stager = rs_stager

            self.sessions[rs_session.key] = rs_session
예제 #2
0
    def restore(self, restore_map):
        for key in restore_map['creds']:
            self.creds[tuple(key.split('/'))] = restore_map['creds'][key]

        for val in restore_map['creds_keys']:
            self.creds_keys.append(tuple(val.split('/')))

        for key in restore_map['domain_info']:
            self.domain_info[tuple(
                key.split('/'))] = restore_map['domain_info'][key]

        class RestoreJob():
            def __init__(self, shell):
                self.shell = shell

            def display(self):
                self.shell.print_plain(self.results)

            def status_string(self):
                if self.completed == 4:
                    return "Complete"
                else:
                    return "Failed"

        for job in restore_map['jobs']:
            fs_job = RestoreJob(self)
            for k, v in job.items():
                setattr(fs_job, k, v)
            self.jobs.append(fs_job)

        class RestoreStager():
            def __init__(self):
                pass

        class RestoreSession():
            def __init__(self):
                pass

            def set_reconnect(self):
                pass

        fs = RestoreStager()
        fs.sessions = []
        fs.payload_id = '-1'
        for session in restore_map['sessions']:
            fs_session = RestoreSession()
            for k, v in session.items():
                setattr(fs_session, k, v)
            fs_session.stager = fs

            fs.sessions.append(fs_session)

        self.stagers.append(fs)