AquatoneDiscoverV2

aquatone-discover will find the targets nameservers and shuffle DNS lookups between them. Should a lookup fail on the target domains nameservers, aquatone-discover will fall back to using Google public DNS servers to maximize discovery.

python · Common Scripts

Details

IDAquatoneDiscoverV2
Languagepython
From Version6.5.0
Docker Imagedemisto/aquatone:2.0.0.11200773

README

Finds the targets nameservers and shuffle DNS lookups between them. If a lookup fails on the target domains nameservers, Aquatone Discover will use the Google public DNS servers to maximize discovery.

Script Data


Name Description
Script Type python
Tags  

Inputs


Argument Name Description
domain The domain to discover.

Outputs


Path Description Type
Aquatone.discover Finds the targets nameservers and shuffle DNS lookups between them. Unknown
from subprocess import PIPE, Popen

import demistomock as demisto
from CommonServerPython import *

from CommonServerUserPython import *


def main():
    domain = demisto.args().get("domain")

    cmd = ["aquatone-discover", "--domain", domain]

    p = Popen(cmd, stdout=PIPE, stderr=PIPE, encoding="utf-8")

    stdout, stderr = p.communicate()

    if p.returncode > 0:
        demisto.results({"Type": entryTypes["error"], "ContentsFormat": formats["text"], "Contents": stdout + stderr})
    else:
        res = stdout
        cmd = ["cat", "/root/aquatone/" + domain + "/hosts.json"]
        p = Popen(cmd, stdout=PIPE, stderr=PIPE, encoding="utf-8")
        stdout, stderr = p.communicate()
        if p.returncode > 0:
            demisto.results({"Type": entryTypes["error"], "ContentsFormat": formats["text"], "Contents": stdout + stderr})
        else:
            hosts = stdout
            hosts_json = json.loads(hosts)

            ec = {"Aquatone.discover": hosts_json}
            entry_result = {
                "Type": entryTypes["note"],
                "ContentsFormat": formats["json"],
                "Contents": hosts_json,
                "HumanReadable": res,
                "ReadableContentsFormat": formats["markdown"],
                "EntryContext": ec,
            }
            demisto.results(entry_result)


if __name__ in ("__builtin__", "builtins", "__main__"):
    main()