mirror of https://github.com/MISP/PyMISP
chg: Bump examples to python3
parent
ce4cb36d0d
commit
6a48faab73
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from pymisp.tools import EMailObject
|
from pymisp.tools import EMailObject
|
||||||
import traceback
|
import traceback
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
|
@ -15,17 +15,16 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-p", "--path", required=True, help="Path to process (expanded using glob).")
|
parser.add_argument("-p", "--path", required=True, help="Path to process (expanded using glob).")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
pymisp = PyMISP(misp_url, misp_key, misp_verifycert, debug=True)
|
pymisp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert, debug=True)
|
||||||
|
|
||||||
for f in glob.glob(args.path):
|
for f in glob.glob(args.path):
|
||||||
try:
|
try:
|
||||||
eo = EMailObject(f)
|
eo = EMailObject(f)
|
||||||
except Exception as e:
|
except Exception:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if eo:
|
if eo:
|
||||||
template_id = pymisp.get_object_template_id(eo.template_uuid)
|
response = pymisp.add_object(args.event, eo)
|
||||||
response = pymisp.add_object(args.event, template_id, eo)
|
|
||||||
for ref in eo.ObjectReference:
|
for ref in eo.ObjectReference:
|
||||||
r = pymisp.add_object_reference(ref)
|
r = pymisp.add_object_reference(ref)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP, MISPEvent
|
from pymisp import ExpandedPyMISP, MISPEvent
|
||||||
from pymisp.tools import Fail2BanObject
|
from pymisp.tools import Fail2BanObject
|
||||||
import argparse
|
import argparse
|
||||||
from base64 import b64decode
|
from base64 import b64decode
|
||||||
|
@ -43,23 +43,23 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-d", "--disable_new", action='store_true', default=False, help="Do not create a new Event.")
|
parser.add_argument("-d", "--disable_new", action='store_true', default=False, help="Do not create a new Event.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
pymisp = PyMISP(misp_url, misp_key, misp_verifycert, debug=True)
|
pymisp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert, debug=True)
|
||||||
event_id = -1
|
event_id = -1
|
||||||
me = None
|
me = None
|
||||||
if args.force_new:
|
if args.force_new:
|
||||||
me = create_new_event()
|
me = create_new_event()
|
||||||
else:
|
else:
|
||||||
response = pymisp.search_index(tag=args.tag, timestamp='1h')
|
response = pymisp.search_index(tag=args.tag, timestamp='1h', pythonify=True)
|
||||||
if response['response']:
|
if response:
|
||||||
if args.disable_new:
|
if args.disable_new:
|
||||||
event_id = response['response'][0]['id']
|
event_id = response[0].id
|
||||||
else:
|
else:
|
||||||
last_event_date = parse(response['response'][0]['date']).date()
|
last_event_date = parse(response[0].date).date()
|
||||||
nb_attr = response['response'][0]['attribute_count']
|
nb_attr = response[0].attribute_count
|
||||||
if last_event_date < date.today() or int(nb_attr) > 1000:
|
if last_event_date < date.today() or int(nb_attr) > 1000:
|
||||||
me = create_new_event()
|
me = create_new_event()
|
||||||
else:
|
else:
|
||||||
event_id = response['response'][0]['id']
|
event_id = response[0].id
|
||||||
else:
|
else:
|
||||||
me = create_new_event()
|
me = create_new_event()
|
||||||
|
|
||||||
|
@ -83,5 +83,4 @@ if __name__ == '__main__':
|
||||||
me.add_object(f2b)
|
me.add_object(f2b)
|
||||||
pymisp.add_event(me)
|
pymisp.add_event(me)
|
||||||
elif event_id:
|
elif event_id:
|
||||||
template_id = pymisp.get_object_template_id(f2b.template_uuid)
|
a = pymisp.add_object(event_id, f2b)
|
||||||
a = pymisp.add_object(event_id, template_id, f2b)
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP, MISPFeed
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
@ -14,6 +14,12 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-p", "--provider", required=True, help="Provider name")
|
parser.add_argument("-p", "--provider", required=True, help="Provider name")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
pm = PyMISP(misp_url, misp_key, misp_verifycert, debug=True)
|
pm = ExpandedPyMISP(misp_url, misp_key, misp_verifycert, debug=True)
|
||||||
response = pm.add_feed(args.format, args.url, args.name, args.input, args.provider)
|
feed = MISPFeed()
|
||||||
print(response)
|
feed.format = args.format
|
||||||
|
feed.url = args.url
|
||||||
|
feed.name = args.name
|
||||||
|
feed.input = args.input
|
||||||
|
feed.provider = args.provider
|
||||||
|
response = pm.add_feed(feed, pythonify=True)
|
||||||
|
print(response.to_json())
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from pymisp.tools import make_binary_objects
|
from pymisp.tools import make_binary_objects
|
||||||
import traceback
|
import traceback
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
|
@ -14,28 +14,25 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-p", "--path", required=True, help="Path to process (expanded using glob).")
|
parser.add_argument("-p", "--path", required=True, help="Path to process (expanded using glob).")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
pymisp = PyMISP(misp_url, misp_key, misp_verifycert)
|
pymisp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
for f in glob.glob(args.path):
|
for f in glob.glob(args.path):
|
||||||
try:
|
try:
|
||||||
fo, peo, seos = make_binary_objects(f)
|
fo, peo, seos = make_binary_objects(f)
|
||||||
except Exception as e:
|
except Exception:
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if seos:
|
if seos:
|
||||||
for s in seos:
|
for s in seos:
|
||||||
template_id = pymisp.get_object_template_id(s.template_uuid)
|
r = pymisp.add_object(args.event, s)
|
||||||
r = pymisp.add_object(args.event, template_id, s)
|
|
||||||
|
|
||||||
if peo:
|
if peo:
|
||||||
template_id = pymisp.get_object_template_id(peo.template_uuid)
|
r = pymisp.add_object(args.event, peo)
|
||||||
r = pymisp.add_object(args.event, template_id, peo)
|
|
||||||
for ref in peo.ObjectReference:
|
for ref in peo.ObjectReference:
|
||||||
r = pymisp.add_object_reference(ref)
|
r = pymisp.add_object_reference(ref)
|
||||||
|
|
||||||
if fo:
|
if fo:
|
||||||
template_id = pymisp.get_object_template_id(fo.template_uuid)
|
response = pymisp.add_object(args.event, fo)
|
||||||
response = pymisp.add_object(args.event, template_id, fo)
|
|
||||||
for ref in fo.ObjectReference:
|
for ref in fo.ObjectReference:
|
||||||
r = pymisp.add_object_reference(ref)
|
r = pymisp.add_object_reference(ref)
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
import json
|
import json
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from pymisp.tools import GenericObjectGenerator
|
from pymisp.tools import GenericObjectGenerator
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
@ -19,21 +19,8 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-l", "--attr_list", required=True, help="List of attributes")
|
parser.add_argument("-l", "--attr_list", required=True, help="List of attributes")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
pymisp = PyMISP(misp_url, misp_key, misp_verifycert)
|
pymisp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
template = pymisp.get_object_templates_list()
|
|
||||||
if 'response' in template.keys():
|
|
||||||
template = template['response']
|
|
||||||
try:
|
|
||||||
template_ids = [x['ObjectTemplate']['id'] for x in template if x['ObjectTemplate']['name'] == args.type]
|
|
||||||
if len(template_ids) > 0:
|
|
||||||
template_id = template_ids[0]
|
|
||||||
else:
|
|
||||||
raise IndexError
|
|
||||||
except IndexError:
|
|
||||||
valid_types = ", ".join([x['ObjectTemplate']['name'] for x in template])
|
|
||||||
print ("Template for type %s not found! Valid types are: %s" % (args.type, valid_types))
|
|
||||||
exit()
|
|
||||||
|
|
||||||
misp_object = GenericObjectGenerator(args.type.replace("|", "-"))
|
misp_object = GenericObjectGenerator(args.type.replace("|", "-"))
|
||||||
misp_object.generate_attributes(json.loads(args.attr_list))
|
misp_object.generate_attributes(json.loads(args.attr_list))
|
||||||
r = pymisp.add_object(args.event, template_id, misp_object)
|
r = pymisp.add_object(args.event, misp_object)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
@ -12,9 +12,6 @@ except NameError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json', debug=True)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Add an attribute to an event')
|
parser = argparse.ArgumentParser(description='Add an attribute to an event')
|
||||||
parser.add_argument("-e", "--event", help="The id, uuid or json of the event to update.")
|
parser.add_argument("-e", "--event", help="The id, uuid or json of the event to update.")
|
||||||
|
@ -22,7 +19,7 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-v", "--value", help="The value of the attribute")
|
parser.add_argument("-v", "--value", help="The value of the attribute")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
event = misp.add_named_attribute(args.event, args.type, args.value)
|
event = misp.add_attribute(args.event, {'type': args.type, 'value': args.value}, pythonify=True)
|
||||||
print(event)
|
print(event)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from pymisp.tools import SSHAuthorizedKeysObject
|
from pymisp.tools import SSHAuthorizedKeysObject
|
||||||
import traceback
|
import traceback
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
|
@ -15,7 +15,7 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-p", "--path", required=True, help="Path to process (expanded using glob).")
|
parser.add_argument("-p", "--path", required=True, help="Path to process (expanded using glob).")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
pymisp = PyMISP(misp_url, misp_key, misp_verifycert, debug=True)
|
pymisp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert, debug=True)
|
||||||
|
|
||||||
for f in glob.glob(args.path):
|
for f in glob.glob(args.path):
|
||||||
try:
|
try:
|
||||||
|
@ -24,7 +24,6 @@ if __name__ == '__main__':
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
continue
|
continue
|
||||||
|
|
||||||
template_id = pymisp.get_object_template_id(auth_keys.template_uuid)
|
response = pymisp.add_object(args.event, auth_keys)
|
||||||
response = pymisp.add_object(args.event, template_id, auth_keys)
|
|
||||||
for ref in auth_keys.ObjectReference:
|
for ref in auth_keys.ObjectReference:
|
||||||
r = pymisp.add_object_reference(ref)
|
r = pymisp.add_object_reference(ref)
|
||||||
|
|
|
@ -1,20 +1,10 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP, MISPUser
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
# For python2 & 3 compat, a bit dirty, but it seems to be the least bad one
|
|
||||||
try:
|
|
||||||
input = raw_input
|
|
||||||
except NameError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Add a new user by setting the mandory fields.')
|
parser = argparse.ArgumentParser(description='Add a new user by setting the mandory fields.')
|
||||||
parser.add_argument("-e", "--email", required=True, help="Email linked to the account.")
|
parser.add_argument("-e", "--email", required=True, help="Email linked to the account.")
|
||||||
|
@ -22,6 +12,11 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-r", "--role_id", required=True, help="Role linked to the user.")
|
parser.add_argument("-r", "--role_id", required=True, help="Role linked to the user.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert, 'json')
|
||||||
|
|
||||||
print (misp.add_user(args.email, args.org_id, args.role_id))
|
user = MISPUser()
|
||||||
|
user.email = args.email
|
||||||
|
user.org_id = args.org_id
|
||||||
|
user.role_id = args.role_id
|
||||||
|
|
||||||
|
print(misp.add_user(user, pythonify=True))
|
||||||
|
|
|
@ -2,13 +2,9 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json')
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
misp.cache_all_feeds()
|
misp.cache_all_feeds()
|
|
@ -1,19 +1,10 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP, MISPEvent
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
# For python2 & 3 compat, a bit dirty, but it seems to be the least bad one
|
|
||||||
try:
|
|
||||||
input = raw_input
|
|
||||||
except NameError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json', debug=True)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Create an event on MISP.')
|
parser = argparse.ArgumentParser(description='Create an event on MISP.')
|
||||||
|
@ -23,7 +14,13 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-t", "--threat", type=int, help="The threat level ID of the newly created event, if applicable. [1-4]")
|
parser.add_argument("-t", "--threat", type=int, help="The threat level ID of the newly created event, if applicable. [1-4]")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
event = misp.new_event(args.distrib, args.threat, args.analysis, args.info)
|
event = MISPEvent()
|
||||||
|
event.distribution = args.distrib
|
||||||
|
event.threat_level_id = args.threat
|
||||||
|
event.analysis = args.analysis
|
||||||
|
event.info = args.info
|
||||||
|
|
||||||
|
event = misp.add_event(event, pythonify=True)
|
||||||
print(event)
|
print(event)
|
||||||
|
|
|
@ -1,26 +1,11 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key,misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
||||||
# Usage for pipe masters: ./last.py -l 5h | jq .
|
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json', debug=True)
|
|
||||||
|
|
||||||
|
|
||||||
def del_event(m, eventid):
|
|
||||||
result = m.delete_event(eventid)
|
|
||||||
print(result)
|
|
||||||
|
|
||||||
def del_attr(m, attrid):
|
|
||||||
result = m.delete_attribute(attrid)
|
|
||||||
print(result)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Delete an event from a MISP instance.')
|
parser = argparse.ArgumentParser(description='Delete an event from a MISP instance.')
|
||||||
parser.add_argument("-e", "--event", help="Event ID to delete.")
|
parser.add_argument("-e", "--event", help="Event ID to delete.")
|
||||||
|
@ -28,9 +13,10 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
if args.event:
|
if args.event:
|
||||||
del_event(misp, args.event)
|
result = misp.delete_event(args.event)
|
||||||
else:
|
else:
|
||||||
del_attr(misp, args.attribute)
|
result = misp.delete_attribute(args.attribute)
|
||||||
|
print(result)
|
||||||
|
|
|
@ -1,25 +1,16 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
# For python2 & 3 compat, a bit dirty, but it seems to be the least bad one
|
|
||||||
try:
|
|
||||||
input = raw_input
|
|
||||||
except NameError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Delete the user with the given id. Keep in mind that disabling users (by setting the disabled flag via an edit) is always prefered to keep user associations to events intact.')
|
parser = argparse.ArgumentParser(description='Delete the user with the given id. Keep in mind that disabling users (by setting the disabled flag via an edit) is always prefered to keep user associations to events intact.')
|
||||||
parser.add_argument("-i", "--user_id", help="The id of the user you want to delete.")
|
parser.add_argument("-i", "--user_id", help="The id of the user you want to delete.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
print(misp.delete_user(args.user_id))
|
print(misp.delete_user(args.user_id))
|
||||||
|
|
|
@ -1,26 +1,20 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP, MISPOrganisation
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
# For python2 & 3 compat, a bit dirty, but it seems to be the least bad one
|
|
||||||
try:
|
|
||||||
input = raw_input
|
|
||||||
except NameError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Edit the email of the organisation designed by the organisation_id.')
|
parser = argparse.ArgumentParser(description='Edit the email of the organisation designed by the organisation_id.')
|
||||||
parser.add_argument("-i", "--organisation_id", required=True, help="The name of the json file describing the organisation you want to modify.")
|
parser.add_argument("-i", "--organisation_id", required=True, help="The name of the json file describing the organisation you want to modify.")
|
||||||
parser.add_argument("-e", "--email", help="Email linked to the organisation.")
|
parser.add_argument("-e", "--email", help="Email linked to the organisation.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
print(misp.edit_organisation(args.organisation_id, email=args.email))
|
org = MISPOrganisation()
|
||||||
|
org.id = args.organisation_id
|
||||||
|
org.email = args.email
|
||||||
|
|
||||||
|
print(misp.update_organisation(org, pythonify=True))
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP, MISPUser
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
# For python2 & 3 compat, a bit dirty, but it seems to be the least bad one
|
|
||||||
try:
|
|
||||||
input = raw_input
|
|
||||||
except NameError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Edit the email of the user designed by the user_id.')
|
parser = argparse.ArgumentParser(description='Edit the email of the user designed by the user_id.')
|
||||||
|
@ -21,6 +12,9 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-e", "--email", help="Email linked to the account.")
|
parser.add_argument("-e", "--email", help="Email linked to the account.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
user = MISPUser
|
||||||
|
user.id = args.user_id
|
||||||
|
user.email = args.email
|
||||||
|
|
||||||
print(misp.edit_user(args.user_id, email=args.email))
|
print(misp.edit_user(user, pythonify=True))
|
||||||
|
|
|
@ -3,16 +3,7 @@
|
||||||
|
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
|
|
||||||
# For python2 & 3 compat, a bit dirty, but it seems to be the least bad one
|
|
||||||
try:
|
|
||||||
input = raw_input
|
|
||||||
except NameError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json', debug=False)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
@ -20,5 +11,5 @@ if __name__ == '__main__':
|
||||||
parser.add_argument("-f", "--feed", required=True, help="feed's ID to be fetched.")
|
parser.add_argument("-f", "--feed", required=True, help="feed's ID to be fetched.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
misp.fetch_feed(args.feed)
|
misp.fetch_feed(args.feed)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,12 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
import json
|
|
||||||
|
|
||||||
|
|
||||||
# Usage for pipe masters: ./last.py -l 5h | jq .
|
|
||||||
|
|
||||||
proxies = {
|
proxies = {
|
||||||
'http': 'http://127.0.0.1:8123',
|
'http': 'http://127.0.0.1:8123',
|
||||||
'https': 'http://127.0.0.1:8123',
|
'https': 'http://127.0.0.1:8123',
|
||||||
|
@ -18,18 +15,6 @@ proxies = {
|
||||||
proxies = None
|
proxies = None
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json', proxies=proxies)
|
|
||||||
|
|
||||||
|
|
||||||
def get_event(m, event, out=None):
|
|
||||||
result = m.get_event(event)
|
|
||||||
if out is None:
|
|
||||||
print(json.dumps(result) + '\n')
|
|
||||||
else:
|
|
||||||
with open(out, 'w') as f:
|
|
||||||
f.write(json.dumps(result) + '\n')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
parser = argparse.ArgumentParser(description='Get an event from a MISP instance.')
|
parser = argparse.ArgumentParser(description='Get an event from a MISP instance.')
|
||||||
|
@ -42,6 +27,11 @@ if __name__ == '__main__':
|
||||||
print('Output file already exists, abort.')
|
print('Output file already exists, abort.')
|
||||||
exit(0)
|
exit(0)
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert, proxies=proxies)
|
||||||
|
|
||||||
get_event(misp, args.event, args.output)
|
event = misp.get_event(args.event, pythonify=True)
|
||||||
|
if args.output:
|
||||||
|
with open(args.output, 'w') as f:
|
||||||
|
f.write(event.to_json())
|
||||||
|
else:
|
||||||
|
print(event.to_json())
|
||||||
|
|
|
@ -1,32 +1,15 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
import json
|
|
||||||
|
|
||||||
|
|
||||||
# Usage for pipe masters: ./last.py -l 5h | jq .
|
# Usage for pipe masters: ./last.py -l 5h | jq .
|
||||||
# Usage in case of large data set and pivoting page by page: python3 last.py -l 48h -m 10 -p 2 | jq .[].Event.info
|
# Usage in case of large data set and pivoting page by page: python3 last.py -l 48h -m 10 -p 2 | jq .[].Event.info
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json')
|
|
||||||
|
|
||||||
|
|
||||||
def download_last(m, last, limit='10', page='1', out=None):
|
|
||||||
result = m.search(last=last, limit=limit, page=page)
|
|
||||||
if out is None:
|
|
||||||
if 'response' in result:
|
|
||||||
print(json.dumps(result['response']))
|
|
||||||
else:
|
|
||||||
print('No results for that time period')
|
|
||||||
exit(0)
|
|
||||||
else:
|
|
||||||
with open(out, 'w') as f:
|
|
||||||
f.write(json.dumps(result['response']))
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Download latest events from a MISP instance.')
|
parser = argparse.ArgumentParser(description='Download latest events from a MISP instance.')
|
||||||
parser.add_argument("-l", "--last", required=True, help="can be defined in days, hours, minutes (for example 5d or 12h or 30m).")
|
parser.add_argument("-l", "--last", required=True, help="can be defined in days, hours, minutes (for example 5d or 12h or 30m).")
|
||||||
|
@ -40,6 +23,17 @@ if __name__ == '__main__':
|
||||||
print('Output file already exists, aborted.')
|
print('Output file already exists, aborted.')
|
||||||
exit(0)
|
exit(0)
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
result = misp.search(publish_timestamp=args.last, limit=args.limit, page=args.page, pythonify=True)
|
||||||
|
|
||||||
download_last(misp, args.last, limit=args.limit, page=args.page, out=args.output)
|
if not result:
|
||||||
|
print('No results for that time period')
|
||||||
|
exit(0)
|
||||||
|
|
||||||
|
if args.output:
|
||||||
|
with open(args.output, 'w') as f:
|
||||||
|
for r in result:
|
||||||
|
f.write(r.to_json() + '\n')
|
||||||
|
else:
|
||||||
|
for r in result:
|
||||||
|
print(r.to_json())
|
||||||
|
|
|
@ -1,25 +1,15 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
# For python2 & 3 compat, a bit dirty, but it seems to be the least bad one
|
|
||||||
try:
|
|
||||||
input = raw_input
|
|
||||||
except NameError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Get a list of the sharing groups from the MISP instance.')
|
parser = argparse.ArgumentParser(description='Get a list of the sharing groups from the MISP instance.')
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
sharing_groups = misp.get_sharing_groups()
|
|
||||||
print (sharing_groups)
|
|
||||||
|
|
||||||
|
sharing_groups = misp.sharing_groups(pythonify=True)
|
||||||
|
print(sharing_groups)
|
||||||
|
|
|
@ -1,19 +1,16 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Output attributes statistics from a MISP instance.')
|
parser = argparse.ArgumentParser(description='Output attributes statistics from a MISP instance.')
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
print (misp.get_attributes_statistics(misp, percentage=True))
|
print(misp.get_attributes_statistics(misp, percentage=True))
|
||||||
print (misp.get_attributes_statistics(context='category', percentage=True))
|
print(misp.get_attributes_statistics(context='category', percentage=True))
|
||||||
|
|
|
@ -1,16 +1,12 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
import json
|
import json
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json', True)
|
|
||||||
|
|
||||||
|
|
||||||
def get_tags(m):
|
def get_tags(m):
|
||||||
result = m.get_all_tags(True)
|
result = m.get_all_tags(True)
|
||||||
r = result
|
r = result
|
||||||
|
@ -22,6 +18,8 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
get_tags(misp)
|
tags = misp.tags(pythonify=True)
|
||||||
|
for tag in tags:
|
||||||
|
print(tag.to_json())
|
||||||
|
|
|
@ -1,28 +1,18 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
import json
|
import json
|
||||||
|
|
||||||
# For python2 & 3 compat, a bit dirty, but it seems to be the least bad one
|
|
||||||
try:
|
|
||||||
input = raw_input
|
|
||||||
except NameError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Get statistics from tags.')
|
parser = argparse.ArgumentParser(description='Get statistics from tags.')
|
||||||
parser.add_argument("-p", "--percentage", action='store_true', default=None, help="An optional field, if set, it will return the results in percentages, otherwise it returns exact count.")
|
parser.add_argument("-p", "--percentage", action='store_true', default=None, help="An optional field, if set, it will return the results in percentages, otherwise it returns exact count.")
|
||||||
parser.add_argument("-n", "--namesort", action='store_true', default=None, help="An optional field, if set, values are sort by the namespace, otherwise the sorting will happen on the value.")
|
parser.add_argument("-n", "--namesort", action='store_true', default=None, help="An optional field, if set, values are sort by the namespace, otherwise the sorting will happen on the value.")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
stats = misp.get_tags_statistics(args.percentage, args.namesort)
|
stats = misp.get_tags_statistics(args.percentage, args.namesort)
|
||||||
print(json.dumps(stats))
|
print(json.dumps(stats))
|
||||||
|
|
|
@ -1,19 +1,10 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP, MISPEvent
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
from io import open
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json', debug=True)
|
|
||||||
|
|
||||||
def up_event(m, event, content):
|
|
||||||
with open(content, 'r') as f:
|
|
||||||
result = m.update_event(event, f.read())
|
|
||||||
print(result)
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description="Update a MISP event.")
|
parser = argparse.ArgumentParser(description="Update a MISP event.")
|
||||||
|
@ -22,6 +13,9 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
up_event(misp, args.event, args.input)
|
me = MISPEvent()
|
||||||
|
me.load_file(args.input)
|
||||||
|
|
||||||
|
result = misp.update_event(args.event, me)
|
||||||
|
|
|
@ -1,24 +1,15 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from pymisp import PyMISP
|
from pymisp import ExpandedPyMISP
|
||||||
from keys import misp_url, misp_key, misp_verifycert
|
from keys import misp_url, misp_key, misp_verifycert
|
||||||
import argparse
|
import argparse
|
||||||
|
|
||||||
# For python2 & 3 compat, a bit dirty, but it seems to be the least bad one
|
|
||||||
try:
|
|
||||||
input = raw_input
|
|
||||||
except NameError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
|
|
||||||
def init(url, key):
|
|
||||||
return PyMISP(url, key, misp_verifycert, 'json')
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
parser = argparse.ArgumentParser(description='Get a list of the sharing groups from the MISP instance.')
|
parser = argparse.ArgumentParser(description='Get a list of the sharing groups from the MISP instance.')
|
||||||
|
|
||||||
misp = init(misp_url, misp_key)
|
misp = ExpandedPyMISP(misp_url, misp_key, misp_verifycert)
|
||||||
|
|
||||||
users_list = misp.get_users_list()
|
users_list = misp.users(pythonify=True)
|
||||||
print (users_list)
|
print(users_list)
|
||||||
|
|
Loading…
Reference in New Issue