-
Notifications
You must be signed in to change notification settings - Fork 2
/
spy
executable file
·50 lines (39 loc) · 1.38 KB
/
spy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/usr/bin/env python2
import sys
def run():
import argparse
from tlsspy.analyze import Analyzer
from tlsspy.config import configure
from tlsspy.remote import parse_address
from tlsspy.report import make_report
from tlsspy.log import log
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--config', default='tlsspy.yaml')
parser.add_argument('-q', '--quiet', default=False, action='store_true')
parser.add_argument('-o', '--output', default='.',
help='Output folder (default: current directory)')
parser.add_argument('--CAdir')
parser.add_argument('--CAfile')
parser.add_argument('addresses', nargs='+')
options = parser.parse_args()
if options.quiet:
log.quiet()
configure(options.config)
analyzer = Analyzer(options)
# First parse all addresses
addresses = []
for address in options.addresses:
addresses.append(parse_address(address, port=443))
for address in addresses:
results = []
try:
result = analyzer.analyze_tcp(address)
for report_type in ('html', 'json'):
make_report(report_type, address, result)
except Exception as error:
log.error('Uncaught exception during run: {0}'.format(
error,
))
raise
if __name__ == '__main__':
sys.exit(run())