Exemple #1
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    subs = parser.add_subparsers(dest='cmd')

    name_p = subs.add_parser('name')
    name_p.add_argument('addrs', nargs='+', help='Hostname or IP addresses')
    name_p.add_argument('--rrtype', '-t', default=None)
    name_p.add_argument('--json', '-j', action="store_true",
        help="Output as JSON")
    name_p.add_argument('--short', '-s', action="store_true",
        help="Output newline-separated data only")
    name_p.add_argument('--text', '-T', action="store_true",
        help="Output full human readable text")
    name_p.add_argument('--verbose', '-v', action="store_true",
        help="Output verbose records with first/lastseen times and observed count")

    data_p = subs.add_parser('data')
    data_p.add_argument('addrs', nargs='+', help='Hostname or IP addresses')
    data_p.add_argument('--rrtype', '-t', default=None)
    data_p.add_argument('--json', '-j', action="store_true",
        help="Output as JSON")
    data_p.add_argument('--short', '-s', action="store_true",
        help="Output newline-separated name only")
    data_p.add_argument('--text', '-T', action="store_true",
        help="Output full human readable text")
    data_p.add_argument('--verbose', '-v', action="store_true",
        help="Output verbose records with first/lastseen times and observed count")

    args = parser.parse_args()

    addrs = util.stdin(args.addrs)
    for addr in addrs:
        ip, hostname = ip_hostname(addr)

        client = Client.from_config()
        try:
            data = get_data(client, args.cmd, rrtype=args.rrtype,
                hostname=hostname, ip=ip)
        except ValueError as e:
            parser.print_usage()
            sys.stderr.write('{}\n'.format(str(e)))
            sys.exit(1)

        if args.json:
            print(json.dumps(data, indent=4))
        elif args.short and args.cmd == 'data':
            print(renderer(data, 'dns/dns_data'))
        elif args.short and args.cmd == 'name':
            print(renderer(data, 'dns/dns_name'))
        elif args.text:
            print(renderer(data, 'dns/dns'))
        elif data:
            print(renderer(data, 'dns/dns_oneline', verbose=args.verbose))
Exemple #2
0
def main():
    import argparse
    parser = argparse.ArgumentParser()

    parser.add_argument('-j', '--json', action="store_true", dest='as_json',
        help="Output as JSON")
    parser.add_argument('--days', '-d', default=1, type=int,
        help='days to query')
    parser.add_argument('--start', '-s', default=None,
        help='start datetime in "yyyy-mm-dd HH:MM:SS" format '
            '(or "today HH:MM:SS")')
    parser.add_argument('--end', '-e', default=None,
        help='end datetime in "yyyy-mm-dd HH:MM:SS" format '
            '(or "today HH:MM:SS")')
    args = parser.parse_args()

    client = Client.from_config()

    kwargs = {'as_json': args.as_json}
    kwargs['days'] = args.days
    kwargs['start'] = args.start
    kwargs['end'] = args.end
    
    data = client.get_zlist_urls(days=args.days, start=args.start,
        end=args.end)

    if args.as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer(data, 'zlist/urls'))
Exemple #3
0
def lp_submit_bulk(client, urls, as_json=False, **kwargs):
    entries = []
    for url in urls:
        entries += [{'url': url}]
    for entry in entries:
        entry.update(kwargs)
    data = client.submit_landing_page_bulk(entries)
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer(data, 'landingpage/bulk'))
Exemple #4
0
def lp_submit_bulk(client, urls, as_json=False, **kwargs):
    entries = []
    for url in urls:
        entries += [{'url': url}]
    for entry in entries:
        entry.update(kwargs)
    data = client.submit_landing_page_bulk(entries)
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer(data, 'landingpage/bulk'))
Exemple #5
0
def dump_data(data, temp, kwargs):
    # Dump to --stix path
    if kwargs.get('stix'):
        dump_stix(data, kwargs['stix'])
    elif kwargs.get('as_json'):
        print(json.dumps(data, indent=4))
    elif data:
        print(
            renderer(data, temp, 
                oneline=kwargs.get('oneline', False),
                verbose=kwargs.get('verbose', False),
                custom_template=kwargs.get('template'),
            )
        )
Exemple #6
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('--domain', '-d')
    parser.add_argument('--email', '-e')
    parser.add_argument('--name-server', '-n')
    parser.add_argument('--max-results', '-m', type=int, default=100)
    parser.add_argument('-j', '--json', action="store_true", dest='as_json',
        help="Output as JSON")
    args = parser.parse_args()
    client = Client.from_config()
    results = client.post_whois(domain=args.domain, email=args.email, 
        name_server=args.name_server, max_results=args.max_results)
    if args.as_json:
        print(json.dumps(results, indent=4))
    else:
        print(renderer(results, 'whois/whois'))
Exemple #7
0
def main():
    import argparse
    parser = argparse.ArgumentParser()
    parser.add_argument('--domain', '-d')
    parser.add_argument('--email', '-e')
    parser.add_argument('--name-server', '-n')
    parser.add_argument('--max-results', '-m', type=int, default=100)
    parser.add_argument('-j',
                        '--json',
                        action="store_true",
                        dest='as_json',
                        help="Output as JSON")
    args = parser.parse_args()
    client = Client.from_config()
    results = client.post_whois(domain=args.domain,
                                email=args.email,
                                name_server=args.name_server,
                                max_results=args.max_results)
    if args.as_json:
        print(json.dumps(results, indent=4))
    else:
        print(renderer(results, 'whois/whois'))
Exemple #8
0
def lp_projects(client, as_json=False):
    data = client.get_landing_page_projects()
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer(data, 'landingpage/projects'))
Exemple #9
0
def lp_binary(client, as_json=False, **kwargs):
    data = client.get_landing_page_malicious_binary(**kwargs)
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer(data, 'landingpage/crawled'))
Exemple #10
0
def lp_flagged(client, as_json=None, **kwargs):
    data = client.get_landing_page_flagged(**kwargs)
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer(data, 'landingpage/crawled'))
Exemple #11
0
def lp_submit(client, url, as_json=False, **kwargs):
    data = client.submit_landing_page(url, **kwargs)
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer({'landingPage': [data]}, 'landingpage/crawled'))
Exemple #12
0
def lp_get(client, md5_hash, whois=None, as_json=False):
    data = client.get_landing_page(md5_hash, whois=whois)
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer({'landingPage': [data]}, 'landingpage/crawled'))
Exemple #13
0
def lp_projects(client, as_json=False):
    data = client.get_landing_page_projects()
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer(data, 'landingpage/projects'))
Exemple #14
0
def lp_binary(client, as_json=False, **kwargs):
    data = client.get_landing_page_malicious_binary(**kwargs)
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer(data, 'landingpage/crawled'))
Exemple #15
0
def lp_flagged(client, as_json=None, **kwargs):
    data = client.get_landing_page_flagged(**kwargs)
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer(data, 'landingpage/crawled'))
Exemple #16
0
def lp_submit(client, url, as_json=False, **kwargs):
    data = client.submit_landing_page(url, **kwargs)
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer({'landingPage': [data]}, 'landingpage/crawled'))
Exemple #17
0
def lp_get(client, md5_hash, whois=None, as_json=False):
    data = client.get_landing_page(md5_hash, whois=whois)
    if as_json:
        print(json.dumps(data, indent=4))
    elif data:
        print(renderer({'landingPage': [data]}, 'landingpage/crawled'))