Skip to content

Instantly share code, notes, and snippets.

@VGostyuzhov
Last active April 21, 2018 22:20
Show Gist options
  • Save VGostyuzhov/297bf8dcbd6986afc2b784d699a977e1 to your computer and use it in GitHub Desktop.
Save VGostyuzhov/297bf8dcbd6986afc2b784d699a977e1 to your computer and use it in GitHub Desktop.
#!/usr/bin/python
from openpyxl import Workbook, load_workbook
from pprint import pprint
import csv
wb = load_workbook('file.xlsx')
ws = wb.get_sheet_by_name('sheet')
hosts = {}
for row in ws.iter_rows(row_offset=1):
host = row[0].value
if host not in hosts and host is not None:
hosts[host] = {}
for row in ws.iter_rows(row_offset=1):
#host[row[1].value] = row[3].value
host = row[0].value
#Protocols
if row[1].value == 'sslv2':
if 'not' in row[3].value:
hosts[host]['sslv2'] = False
else:
hosts[host]['sslv2'] = True
if row[1].value == 'sslv3':
if 'not' in row[3].value:
hosts[host]['sslv3'] = False
else:
hosts[host]['sslv3'] = True
if row[1].value == 'tls1_1':
if 'not' in row[3].value:
hosts[host]['tls1_1'] = False
else:
hosts[host]['tls1_1'] = True
if row[1].value == 'tls1':
if 'not' in row[3].value:
hosts[host]['tls1'] = False
else:
hosts[host]['tls1'] = True
if row[1].value == 'tls1_2':
if 'not' in row[3].value:
hosts[host]['tls1_2'] = False
else:
hosts[host]['tls1_2'] = True
#Vulnerabilities
if row[1].value == 'heartbleed':
if 'OK' in row[2].value:
hosts[host]['heartbleed'] = False
else:
hosts[host]['heartbleed'] = True
if row[1].value == 'ccs':
if 'OK' in row[2].value:
hosts[host]['ccs'] = False
else:
hosts[host]['ccs'] = True
if row[1].value == 'beast':
if 'OK' in row[2].value:
hosts[host]['beast'] = False
else:
hosts[host]['beast'] = True
if row[1].value == 'breach':
if 'OK' in row[2].value:
hosts[host]['breach'] = False
else:
hosts[host]['breach'] = True
if row[1].value == 'crime':
if 'OK' in row[2].value:
hosts[host]['crime'] = False
else:
hosts[host]['crime'] = True
if row[1].value == 'poodle_ssl':
if 'OK' in row[2].value:
hosts[host]['poodle'] = False
else:
hosts[host]['poodle'] = True
if row[1].value == 'freak':
if 'OK' in row[2].value:
hosts[host]['freak'] = False
else:
hosts[host]['freak'] = True
if row[1].value == 'logjam':
if 'OK' in row[2].value:
hosts[host]['logjam'] = False
else:
hosts[host]['logjam'] = True
if row[1].value == 'rc4':
if 'OK' in row[2].value:
hosts[host]['rc4'] = False
else:
hosts[host]['rc4'] = True
if row[1].value == 'fallback_scsv':
if 'OK' in row[2].value:
hosts[host]['fallback_scsv'] = False
else:
hosts[host]['fallback_scsv'] = True
if row[1].value == 'secure_renego':
if 'OK' in row[2].value:
hosts[host]['secure_renego'] = True
else:
hosts[host]['secure_renego'] = False
if row[1].value == 'hsts':
if 'OK' in row[2].value:
hosts[host]['hsts'] = False
else:
hosts[host]['hsts'] = True
if row[1].value == 'trust':
if 'OK' in row[2].value:
hosts[host]['trust'] = True
else:
hosts[host]['trust'] = False
if row[1].value == 'pfs':
if 'OK' in row[2].value:
hosts[host]['pfs'] = True
else:
hosts[host]['pfs'] = False
results = []
for k, v in hosts.iteritems():
host = v.copy()
host['name'] = k.split('/')[0]
host['ip'] = k.split('/')[1]
results.append(host)
with open('ssl_result.csv', 'wb') as csvfile:
csvfields = ['name', 'ip', 'sslv2', 'sslv3', 'tls1', 'tls1_1', 'tls1_2', 'beast', 'breach', 'ccs', 'crime', 'freak', 'heartbleed', 'logjam', 'poodle', 'rc4', 'fallback_scsv', 'secure_renego', 'hsts', 'pfs', 'trust']
csvwriter = csv.DictWriter(csvfile, csvfields, restval='None', delimiter=';')
csvwriter.writeheader()
for host in results:
csvwriter.writerow(host)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment