Ejemplo n.º 1
0
 def __init__(self, db):
     self.db = db
     self.BaseDomain = BaseDomainRepository(db, self.name)
     self.Domain = DomainRepository(db, self.name)
     self.IPAddress = IPRepository(db, self.name)
     self.CIDR = CIDRRepository(db, self.name)
     self.ScopeCIDR = ScopeCIDRRepository(db, self.name)
Ejemplo n.º 2
0
	def __init__(self, db):
		self.db = db
		self.BaseDomain = BaseDomainRepository(db, self.name)
		self.Domain = DomainRepository(db, self.name)
		self.IPAddress = IPRepository(db, self.name)
		self.Port = PortRepository(db, self.name)
		self.Vulnerability = VulnRepository(db, self.name)
		self.CVE = CVERepository(db, self.name)
Ejemplo n.º 3
0
 def __init__(self, db):
     self.db = db
     self.IPAddress = IPRepository(db, self.name)
Ejemplo n.º 4
0
 def __init__(self, db):
     self.db = db
     self.IPAddress = IPRepository(db, self.name)
     self.Domain = DomainRepository(db, self.name)
     self.Port = PortRepository(db, self.name)
     self.Url = UrlRepository(db, self.name)
Ejemplo n.º 5
0
def run(hosts, db, proto="tcp", svc="ssl", lookup_domains=False):

    IPAddress = IPRepository(db)
    Domain = DomainRepository(db)

    ips = {}

    for h in hosts:
        if h.count(":") == 2:
            host, port, svc = h.split(":")
        else:

            host, port = h.split(":")

        try:
            int(host.replace(".", ""))
            if not ips.get(host, False):
                ips[host] = {"domains": [], "ports": []}

            if (port, svc) not in ips[host]["ports"]:
                ips[host]["ports"].append((port, svc))

        except:
            domains = Domain.all(domain=host)
            if domains:
                domain = domains[0]
                for ip in domain.ip_addresses:
                    if not ips.get(ip.ip_address, False):
                        ips[ip.ip_address] = {"domains": [], "ports": []}

                    if host not in ips[ip.ip_address]["domains"]:
                        ips[ip.ip_address]["domains"].append(host)

                    if (port, svc) not in ips[ip.ip_address]["ports"]:
                        ips[ip.ip_address]["ports"].append((port, svc))
            else:
                # domain is not in the database.
                domain_ips = get_ip(host)
                for ip in domain_ips:
                    ips[ip] = {"domains": [host], "ports": []}

    results = []
    if lookup_domains:
        for ip in sorted(ips.keys()):

            # print("Checking %s" % ip)
            try:
                ip_obj = IPAddress.all(ip_address=ip)[0]
                domains = [d.domain for d in ip_obj.domains]
                if domains:
                    results.append("%s / %s: %s" % (
                        ip,
                        ", ".join(sorted(domains)),
                        ", ".join([
                            "%s/%s/%s" % (proto, p, svc)
                            for p, svc in sorted(ips[ip]["ports"])
                        ]),
                    ))
                else:
                    results.append("%s / No Hostname Registered: %s" % (
                        ip,
                        ", ".join([
                            "%s/%s/%s" % (proto, p, svc)
                            for p, svc in sorted(ips[ip]["ports"])
                        ]),
                    ))
            except:
                if ips[ip]["domains"]:
                    results.append("%s / %s: %s" % (
                        ip,
                        ", ".join(sorted(ips[ip]["domains"])),
                        ", ".join([
                            "%s/%s/%s" % (proto, p, svc)
                            for p, svc in sorted(ips[ip]["ports"])
                        ]),
                    ))
                else:
                    results.append("%s / No Hostname Registered: %s" % (
                        ip,
                        ", ".join([
                            "%s/%s/%s" % (proto, p, svc)
                            for p, svc in sorted(ips[ip]["ports"])
                        ]),
                    ))

    else:
        for ip in sorted(ips.keys()):
            if ips[ip]["domains"]:
                results.append("%s / %s: %s" % (
                    ip,
                    ", ".join(sorted(ips[ip]["domains"])),
                    ", ".join([
                        "%s/%s/%s" % (proto, p, svc)
                        for p, svc in sorted(ips[ip]["ports"])
                    ]),
                ))
            else:
                results.append("%s / No Hostname Registered: %s" % (
                    ip,
                    ", ".join([
                        "%s/%s/%s" % (proto, p, svc)
                        for p, svc in sorted(ips[ip]["ports"])
                    ]),
                ))
    return results
Ejemplo n.º 6
0
 def __init__(self, db):
     self.db = db
     self.Port = PortRepository(db, self.name)
     self.IPAddress = IPRepository(db, self.name)
     self.ScopeCidr = ScopeCIDRRepository(db, self.name)
Ejemplo n.º 7
0
    def __init__(self, db):

        self.IPAddress = IPRepository(db)
        self.Domains = DomainRepository(db)
        self.BaseDomains = BaseDomainRepository(db)
        self.CIDRs = CIDRRepository(db)
Ejemplo n.º 8
0
    def __init__(self, db):

        self.Domain = DomainRepository(db)
        self.IPAddress = IPRepository(db)
        self.CIDR = CIDRRepository(db)
Ejemplo n.º 9
0
#!/usr/bin/python

from armory import initialize_database
from armory import get_config_options
from database.repositories import BaseDomainRepository, DomainRepository, IPRepository, CIDRRepository, UserRepository, CredRepository, VulnRepository, PortRepository, UrlRepository, ScopeCIDRRepository

config = get_config_options()
db = initialize_database(config)
Domains = DomainRepository(db, "Shell Client")
BaseDomains = BaseDomainRepository(db, "Shell Client")
IPAddresses = IPRepository(db, "Shell Client")
CIDRs = CIDRRepository(db, "Shell Client")
Users = UserRepository(db, "Shell Client")
Creds = CredRepository(db, "Shell Client")
Vulns = VulnRepository(db, "Shell Client")
Ports = PortRepository(db, "Shell Client")
Urls = UrlRepository(db, "Shell Client")
ScopeCIDRs = ScopeCIDRRepository(db, "Shell Client")

print("Make sure to use this script with ipython and -i")
print("    ipython -i shell.py")

print("Available database modules: Domains, BaseDomains, IPAddresses,")
print(" CIDRs, Users, Creds, Vulns, Services, Ports, Urls, ScopeCIDRs")
Ejemplo n.º 10
0
 def __init__(self, db):
     self.db = db
     self.BaseDomains = BaseDomainRepository(db, self.name)
     self.Domains = DomainRepository(db, self.name)
     self.IPs = IPRepository(db, self.name)