Primera aproximación a Faraday y Splunk

Faraday es un IDE de pruebas de penetración (pentesting) multiusuario, nos permite básicamente clasificar desde multiples perspectivas (severidad, fechas, puertos, hosts,etc) la enorme información que diversas herramientas de penetración nos brindan. También, dentro de sus opciones de visualización de información cuenta con su propio dashboard pero a veces no es suficiente.

Splunk es un software que monitoriza, analiza y grafica la información a través de una interfaz web.

En este breve texto se mostrará cómo usando la api de Faraday podemos extraer la información de nuestro workspace y transportarla a nuestra primer app generada con splunk

En primer lugar generamos el script en python para extraer el archivo csv que subirmemos a Splunk

import csv
import json
import requests
workspace=raw_input('WORKSPACE: ')
headers = {'Content-Type': 'application/json', 'Accept': 'application/json'}

s = requests.post('https://127.0.0.1/_api/login', headers=headers, data= '{"email": "nombredeusuario", "password": "mipassowrd"}' )
cookies = s.cookies.get_dict()
print s.status_code
mico=requests.get('https://127.0.0.1/_api/v2/ws/'+workspace+'/vulns/',cookies=cookies)
print mico.status_code
mijson=mico.text
print mijson
jsonmi = json.loads(mijson)
f=open('hosts.csv','a')
escri=csv.writer(f)
print type(jsonmi)
i=0
escri.writerow(['owned','owner','confirmed','severity','status_serv','protocol','host_os','status','target'])
for item in jsonmi['vulnerabilities']:
		#print type(item)
		print item['value']['website']
		try:
			escri.writerow([item['value']['owned'],item['value']['owner'],item['value']['confirmed'],item['value']['severity'],item['value']['service']['status'],item['value']['service']['protocol'],item['value']['host_os'],item['value']['status'],item['value']['target']])
		except:
			pass
		i=i+1
f.close()

Finalmente generamos nuestra app para Splunk