mirror of https://github.com/MISP/misp-modules
parent
9db9247e55
commit
a492d975c4
2 changed files with 90 additions and 9 deletions
@ -0,0 +1,62 @@ |
||||
import json |
||||
import os |
||||
import subprocess |
||||
import requests |
||||
import tempfile |
||||
|
||||
misperrors = {'error': 'Error'} |
||||
mispattributes = {'input': ['domain'], 'output': ['domain']} |
||||
|
||||
# possible module-types: 'expansion', 'hover' or both |
||||
moduleinfo = {'version': '1', 'author': 'Hannah Ward', |
||||
'description': 'Attempt to brute force subdomains', |
||||
'module-type': ['expansion']} |
||||
|
||||
# config fields that your code expects from the site admin |
||||
moduleconfig = ["use_top_n_subdomains"] |
||||
|
||||
domains = requests.get("http://hannah-ward.uk/Subdomain_List.txt").text.split("\n")[:-1] |
||||
|
||||
def handler(q=False): |
||||
global domains |
||||
|
||||
if q is False: |
||||
return False |
||||
request = json.loads(q) |
||||
|
||||
r = {"results": []} |
||||
|
||||
f = tempfile.NamedTemporaryFile(delete=False, prefix="domains", mode="w") |
||||
print("Saving domains to {}".format(f.name)) |
||||
f.write("\n".join(domains[:int(request["config"]["use_top_n_subdomains"])])) |
||||
|
||||
f.close() |
||||
|
||||
print("Searching for subdomains of {}".format(request["domain"])) |
||||
print("Using {} domains".format(request["config"]["use_top_n_subdomains"])) |
||||
|
||||
print("Turning on tor...") |
||||
#subprocess.call([".","torsocks","on"]) |
||||
proc = subprocess.Popen(["knockpy", "-w", f.name, request["domain"]], |
||||
stdout=subprocess.PIPE |
||||
) |
||||
|
||||
os.remove(f.name) |
||||
|
||||
print("Turning off tor...") |
||||
#subprocess.call([".","torsocks","off"]) |
||||
out,err = proc.communicate() |
||||
|
||||
r["results"] = {'values':out.split("\n"), "types":'domain'} |
||||
|
||||
return r |
||||
|
||||
|
||||
def introspection(): |
||||
return mispattributes |
||||
|
||||
|
||||
def version(): |
||||
moduleinfo['config'] = moduleconfig |
||||
return moduleinfo |
||||
|
Loading…
Reference in new issue