From 45d57433749216b7a7d9643eab4fbf95b9839a80 Mon Sep 17 00:00:00 2001 From: Alexandre Dulaunoy Date: Mon, 28 Mar 2016 11:57:24 +0200 Subject: [PATCH] dns MISP module - option to specify nameserver added --- modules/expansion/dns.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/modules/expansion/dns.py b/modules/expansion/dns.py index 3f37c3f..099376d 100755 --- a/modules/expansion/dns.py +++ b/modules/expansion/dns.py @@ -1,9 +1,14 @@ import json import dns.resolver -misperrors = {'error' : 'Error'} -mispattributes = {'input': ['hostname', 'domain'], 'output': ['ip-src', 'ip-dst']} -moduleinfo = {'version': '0.1', 'author': 'Alexandre Dulaunoy', 'description': 'Simple DNS expansion service to resolve IP address from MISP attributes', 'module-type': ['expansion','hover']} +misperrors = {'error': 'Error'} +mispattributes = {'input': ['hostname', 'domain'], 'output': ['ip-src', + 'ip-dst']} +moduleinfo = {'version': '0.2', 'author': 'Alexandre Dulaunoy', + 'description': 'Simple DNS expansion service to resolve IP address from MISP attributes', + 'module-type': ['expansion', 'hover']} + +moduleconfig = ['nameserver'] def handler(q=False): @@ -19,7 +24,15 @@ def handler(q=False): r = dns.resolver.Resolver() r.timeout = 2 r.lifetime = 2 - r.nameservers = ['8.8.8.8'] + + if request.get('config'): + if request['config'].get('nameserver'): + nameservers = [] + nameservers.append(request['config'].get('nameserver')) + r.nameservers = nameservers + else: + r.nameservers = ['8.8.8.8'] + try: answer = r.query(toquery, 'A') except dns.resolver.NXDOMAIN: @@ -31,7 +44,9 @@ def handler(q=False): except: misperrors['error'] = "DNS resolving error" return misperrors - r = {'results': [{'types': mispattributes['output'], 'values':[str(answer[0])]}]} + + r = {'results': [{'types': mispattributes['output'], + 'values':[str(answer[0])]}]} return r @@ -40,4 +55,5 @@ def introspection(): def version(): + moduleinfo['config'] = moduleconfig return moduleinfo