• Carlos Loyo

Recon & Attack Surface (Parte IV)- shodan CLI

Hola amigos blogueros,

Recuerden que este hilo de publicaciones tiene como finalidad la automatización de actividades de Reconocimiento y Detección de Superficie de Ataques (Indexando en Kibana). Pero primero debemos conocer las herramientas


5.- shodan

No hay mucho que decir de shodan dado su gran usabilidad


Según Wikipedia, es un motor de búsqueda que le permite al usuario encontrar iguales o diferentes tipos específicos de equipos (routers, servidores, etc.) conectados a Internet a través de una variedad de filtros. Algunos también lo han descrito como un motor de búsqueda de banners de servicios


Instalación

La utilización no puede ser mas sencilla, mediante pip instalamos y después nos autenticamos a través de la API que ustedes pueden obtener una vez creada la cuenta en el sitio oficial shodan.io

# pip install shodan
# shodan init <API>

Utilización


Escenario 1


Validamos que opciones no permite la ayuda, donde podemos ver desde operadores comunes a variables de descarga, escaneo, parseo, entre otras

# shodan -h

Utilizando el mismo ejemplo del hilo (palermo.edu), vamos a ejecutar una búsqueda en base al dominio

# shodan domain palermo.edu

De una de las direcciones IP seleccionadas vamos a seleccionar una de las direcciones y e identificar que información hay asociada a la misma:

-Hostname

-Country

-Organización

-Ultima fecha de actualización

-CVE conocidos


Nota: Recuerden que la información puede no estar actualizada. Pero es bueno conocer para una empresa que información conoce shodan de nosotros

# shodan host 45.164.204.249

Igualmente si queremos, podemos escanear por segmento de red o dirección

# shodan scan 45.164.204.0/24

Algo que me encanta es el módulo de descarga donde podemos consular en shodan a través de un operador (mismo de página web) y descargar el contenido en un json.gz

# shodan download <nombre_archivo> 'net:45.164.204.0/24'

Del cual podemos parsear y filtrar los campos que deseemos, lo veremos más adelante


Algo que también nos puede interesar dentro del recon de nuestra compañía es conocer toda la información por certificado, en este caso de la Universidad del cual es objetivo de estudio


Para ello, vamos a realizar dos pruebas de la aplicación online para luego ejecutar por línea de comando


Primero, utilizaremos el operado ssl, evidencia un único resultado. En el caso de ssl:palermo.edu arroja 0 resultados

ssl:"Universidad de Palermo"

Dado que en la imagen anterior vemos un campo de interés como es Common Name, vamos a apoyarnos en el operador ssl.cert.subject.CN, para traer resultados en base a ese criterio. Pudiendo evidenciar 29 resultados

ssl.cert.subject.CN:palermo.edu

Volviendo a Shodan CLI, vamos ejecutar el operador anterior, colocando un limit de 100 resultados y almacenando en el archivo ssl

#shodan download --limit 100 ssl 'ssl.cert.subject.CN:palermo.edu'

Del cual se genera el archivo ssl.json.gz


Sobre el ssl.json.gz, vamos a parsear el json y filtrar los campos http.host, hostnames,port, http.server,ssl.cipher.version

#shodan parse --fields ttp.host, hostnames,port, http.server,ssl.cipher.version ssl.json.gz

Algo adicional al parseo, es incluir el campo cve, es algo que me gusta llamar "conocer lo que sabe tu enemigo", donde podemos ir indexando a nuestro SIEM los datos que muestran los diferentes motores.


Nota: Una manera fácil de conocer los operadores de shodan es seleccionando un resultado y clickeando view raw data


Escenario 2


En el escenario 2 vamos a buscar sitios que han sufrido ataques de defacement de contenido. Para ello, utilizaremos el operado http.title:"hacked by"

http.title:"hacked by"

En un ejemplo aleatario, donde requerimos perfilar un grupo o alias delictivo. Veamos desde el portal zone-h, los últimos grupos notificadores de defacement, del cual seleccionaremos JavaGhost

Y buscamos ese alias en shodan, obteniendo 4 resultados

http.title:"hacked by JavaGhost"

Regresando a Shodan CLI, vamos ejecutar el operador http.title:"hacked by", colocando un limit de 100 resultados y almacenando en el archivo hacked

#shodan download --limit 100 hacked 'http.title:"hacked by"'

Del cual si filtramos por el campo http.title, podemos identificar los nombres de grupos o alias


Nos vemos en el próximo capitulo,

Hasta pronto!!!