예제 #1
0
 def do_pdns_query(self, obj):
     """Perform a passive DNS lookup on the query value."""
     client = self._generate_request_instance('dns')
     query = self._get_query_type(obj)
     results = client.get_passive_dns(query=query)
     self._check_response(results)
     results = DnsResponse(results)
     for record in results.get_records():
         stats = {
             'First Seen': record.firstSeen,
             'Last Seen': record.lastSeen,
             'Sources': ','.join(record.source)
         }
         self._add_result('Passive DNS', record.resolve, stats)
예제 #2
0
def main():
    """Perform a passive DNS lookup and save the output."""
    if len(sys.argv) <= 1:
        print "Usage: python pdns_multiput <query>"
        sys.exit(1)

    query = sys.argv[1]
    output_formats = ['json', 'xml', 'stix', 'csv', 'table']
    client = DnsRequest.from_config()
    raw_results = client.get_passive_dns(query=query)
    pdns_results = DnsResponse(raw_results)
    for format_type in output_formats:
        save_location = "/tmp/%s.pdns.%s" % (query, format_type)
        tmp = open(save_location, "w")
        tmp.write(getattr(pdns_results, format_type))
        tmp.close()
    print "Saved results inside of /tmp/%s" % (query)