#!/usr/bin/env python # -*- coding: utf-8 -*- import random from random import randint import string def randomStringGenerator(size, chars=string.ascii_lowercase + string.digits): return ''.join(random.choice(chars) for _ in range(size)) def randomIpGenerator(): return str(randint(0, 255)) + '.' + str(randint(0, 255)) + '.' + str(randint(0, 255)) + '.' + str(randint(0, 255)) def floodtxt(misp, event, maxlength=255): text = randomStringGenerator(randint(1, maxlength)) textfunctions = [misp.add_internal_comment, misp.add_internal_text, misp.add_internal_other, misp.add_email_subject, misp.add_mutex, misp.add_filename] textfunctions[randint(0, 5)](event, text) def floodip(misp, event): ip = randomIpGenerator() ipfunctions = [misp.add_ipsrc, misp.add_ipdst] ipfunctions[randint(0, 1)](event, ip) def flooddomain(misp, event, maxlength=25): a = randomStringGenerator(randint(1, maxlength)) b = randomStringGenerator(randint(2, 3), chars=string.ascii_lowercase) domain = a + '.' + b domainfunctions = [misp.add_hostname, misp.add_domain] domainfunctions[randint(0, 1)](event, domain) def flooddomainip(misp, event, maxlength=25): a = randomStringGenerator(randint(1, maxlength)) b = randomStringGenerator(randint(2, 3), chars=string.ascii_lowercase) domain = a + '.' + b ip = randomIpGenerator() misp.add_domain_ip(event, domain, ip) def floodemail(misp, event, maxlength=25): a = randomStringGenerator(randint(1, maxlength)) b = randomStringGenerator(randint(1, maxlength)) c = randomStringGenerator(randint(2, 3), chars=string.ascii_lowercase) email = a + '@' + b + '.' + c emailfunctions = [misp.add_email_src, misp.add_email_dst] emailfunctions[randint(0, 1)](event, email) def floodattachment(misp, eventid, distribution, to_ids, category, comment, info, analysis, threat_level_id): filename = randomStringGenerator(randint(1, 128)) misp.upload_sample(filename, 'dummy', eventid, distribution, to_ids, category, comment, info, analysis, threat_level_id) def create_dummy_event(misp): event = misp.new_event(0, 4, 0, 'dummy event') flooddomainip(misp, event) floodattachment(misp, event['Event']['id'], event['Event']['distribution'], False, 'Payload delivery', '', event['Event']['info'], event['Event']['analysis'], event['Event']['threat_level_id']) def create_massive_dummy_events(misp, nbattribute): event = misp.new_event(0, 4, 0, 'massive dummy event') eventid = event['Event']['id'] functions = [floodtxt, floodip, flooddomain, flooddomainip, floodemail, floodattachment] for i in range(nbattribute): choice = randint(0, 5) if choice == 5: floodattachment(misp, eventid, event['Event']['distribution'], False, 'Payload delivery', '', event['Event']['info'], event['Event']['analysis'], event['Event']['threat_level_id']) else: functions[choice](misp, event)