El objetivo de esta práctica es realizar una consulta a Shodan sobre equipos que utilicen Apache como publicador web o de aplicaciones. Una vez obtenido este dato, se cruza la información con Nist, para obtener las potenciales vulnerabilidades que tendrían las plataformas consultadas a través del buscador.
DescargarFicheros()
La función DescargarFicheros verifica que exista la ruta donde vamos a guardar el fichero con los datos y posteriormente realiza la descarga y descompresión del mismo.
Ejemplo de uso:
DescargarFicheros()
ConsultarShodan()
La función ConsultarShodan realiza una consulta a Shodan mediante el uso de API. La consulta llevada a cabo en esta práctica es apache. Tratamos de buscar los servidores apacha publicados a en internet y que no ocultan el Header Server.
Ejemplo de uso:
ConsultarShodan(query)
ParserShodan()
La función ParserShodan realiza un parseo de los datos descargados de la consulta a Shodan. Se crea un data frame y luego se eliminan los duplicados devueltos por la consulta.
Ejemplo de uso:
ParserShodan()
ParserNVD()
La función ParserNVD realiza un parseo del documento del NIST. Mediante consultas XPATH obtenemos los valores necesarios (CVE-CPE) para conseguir el data frame.
Ejemplo de uso:
ParserNVD()
UnirDatos(df1, df2)
La función UnirDatos une los datos de los data frames creados por ParserShodan y ParserNVD. La relación entre uno y otro es CPE.product. Como resultado obtenemos un tercer data frame con los datos listos para explotar.
Ejemplo de uso:
UnirDatos(df1, df2)
ContarTotalCVE_CPE(df)
La función ContarTotalCVE_CPE realiza un conteo del data frame resultante de la función UnirDatos. El conteo se lleva a cabo mediente el campo CPE.product.
Ejemplo de uso:
ContarTotalCVE_CPE(df)
ContarTotalCVEs(df)
La función ContarTotalCVEs realiza un conteo del data frame resultante de la función UnirDatos. El conteo se lleva a cabo mediente el campo CPE.product.
Ejemplo de uso:
ContarTotalCVEs(df)
library("RShodan") suppressWarnings(library(dplyr, warn.conflicts = FALSE)) #DescargarFicheros() cveDF <- ParserNVD() shodanDF <- ParserShodan() joinedDF <- UnirDatos(shodanDF, cveDF)
GraficarTotalCPEShodanByCVEScore(joinedDF)
GraficarTotalCPEByCVEScore(cveDF)
GraficarTotalCVEScore(cveDF) GraficaTotalCVEsAno(cveDF)
PintarMapa(joinedDF)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.