2017-03-08 10:51:47 +01:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
|
|
from pymisp import PyMISP
|
|
|
|
from keys import misp_url, misp_key, misp_verifycert
|
|
|
|
import argparse
|
|
|
|
|
|
|
|
|
|
|
|
def init(url, key):
|
|
|
|
return PyMISP(url, key, misp_verifycert, 'json')
|
|
|
|
|
2019-07-25 07:55:25 +02:00
|
|
|
|
2017-03-08 10:51:47 +01:00
|
|
|
if __name__ == '__main__':
|
|
|
|
parser = argparse.ArgumentParser(description='Tag something.')
|
|
|
|
parser.add_argument("-u", "--uuid", help="UUID to tag.")
|
|
|
|
parser.add_argument("-e", "--event", help="Event ID to tag.")
|
|
|
|
parser.add_argument("-a", "--attribute", help="Attribute ID to tag")
|
2019-07-25 07:55:25 +02:00
|
|
|
parser.add_argument("-t", "--tag", required=True, help="Tag ID.")
|
2017-03-08 10:51:47 +01:00
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
if not args.event and not args.uuid and not args.attribute:
|
|
|
|
print("Please provide at least one of the following : uuid, eventID or attribute ID, see --help")
|
|
|
|
exit()
|
|
|
|
|
|
|
|
misp = init(misp_url, misp_key)
|
|
|
|
|
|
|
|
if args.event and not args.attribute:
|
|
|
|
result = misp.search(eventid=args.event)
|
2020-07-22 12:18:31 +02:00
|
|
|
for event in result:
|
2017-03-08 10:51:47 +01:00
|
|
|
uuid = event['Event']['uuid']
|
|
|
|
|
|
|
|
if args.attribute:
|
|
|
|
if not args.event:
|
|
|
|
print("Please provide event ID also")
|
|
|
|
exit()
|
|
|
|
result = misp.search(eventid=args.event)
|
2020-07-22 12:18:31 +02:00
|
|
|
for event in result:
|
2017-03-08 10:51:47 +01:00
|
|
|
for attribute in event['Event']['Attribute']:
|
|
|
|
if attribute["id"] == args.attribute:
|
|
|
|
uuid = attribute["uuid"]
|
|
|
|
|
|
|
|
if args.uuid:
|
|
|
|
uuid = args.uuid
|
|
|
|
|
2019-07-25 07:55:25 +02:00
|
|
|
print("UUID tagged: %s" % uuid)
|
2017-03-08 10:51:47 +01:00
|
|
|
misp.tag(uuid, args.tag)
|