2015-08-27 12:29:59 +00:00
|
|
|
#!/usr/bin/env python
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
import argparse
|
|
|
|
import pypssl
|
|
|
|
import json
|
|
|
|
|
|
|
|
|
2021-04-15 21:52:03 +00:00
|
|
|
def main():
|
2015-08-27 12:29:59 +00:00
|
|
|
parser = argparse.ArgumentParser(description='Query a Passive SSL instance.')
|
|
|
|
parser.add_argument("--url", default='https://www.circl.lu/', help='URL where the passive SSL is running (no path).')
|
|
|
|
parser.add_argument("-v", "--version", type=int, default=2, help='URL where the passive SSL is running (no path).')
|
|
|
|
parser.add_argument("-u", "--username", help='Username to login on the platform.')
|
|
|
|
parser.add_argument("-p", "--password", help='Password to login on the platform.')
|
|
|
|
parser.add_argument("-t", "--token", help='Token to login on the platform.')
|
|
|
|
parser.add_argument("-i", "--ip", help='IP to query (can be a block, max /23).')
|
|
|
|
parser.add_argument("-c", "--cert", help='SHA1 of the certificate to search.')
|
|
|
|
parser.add_argument("-f", "--fetch", help='SHA1 of the certificate to fetch.')
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
p = pypssl.PyPSSL(args.url, args.version, (args.username, args.password), args.token)
|
|
|
|
|
|
|
|
if args.ip is not None:
|
|
|
|
print(json.dumps(p.query(args.ip)))
|
|
|
|
elif args.cert is not None:
|
|
|
|
print(json.dumps(p.query_cert(args.cert)))
|
|
|
|
elif args.fetch is not None:
|
|
|
|
print(json.dumps(p.fetch_cert(args.fetch, make_datetime=False)))
|
|
|
|
else:
|
|
|
|
print('You didn\'t query anything...')
|
2021-04-15 21:52:03 +00:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|