Qué es Shodan.io

Shodan.io es un motor de búsqueda para el Internet de las Cosas.

Si alguna vez nos hemos preguntado cómo acceder a cámaras públicas o cuántos Pi-Holes son accesibles por todo el mundo, Shodan.io es la respuesta.

Shodan escanea Internet e indexa los servicios que corren en cada dirección IP.

Para algunas prestaciones, será necesario tener una cuenta premium en Shodan.

Encontrando servicios en Shodan.io

Supongamos que estamos realizando un test de penetración en una empresa y queremos encontrar qué servicios corren en sus servidores.

Necesitamos conseguir su dirección IP, cosa que podemos averiguar con ping.

Por ejemplo, podemos hacer ping a tryhackme.com y la respuesta será su dirección IP. Una vez la obtengamos, ponemos esa IP en Shodan para obtener.

IP en Shodan

Podremos ver que Tryhackme corre en Cloudflare, en los Estados Unidos, y que tiene muchos puertos abiertos.

Cloudflare actúa como proxy entre Tryhackme y sus servidores reales. Si estuviéramos haciendo un test de penetración en una gran compañía, esto no nos sería útil. Necesitamos alguna manera de obtener sus direcciones IP.

Eso lo podemos hacer usando ASN, Autonomous System Numbers o Números de Sistema Autónomos.

Los números de sistema autónomos (ASN)

Un número de sistema autónomo (ASN) es un identificador global de un rango de direcciones IP. Si eres una compañía enorme, como Google, probablemente tendrás tu propio ASN para todas las IP’s que posees.

Podemos poder la dirección IP en una herramienta de búsqueda de ASN, como por ejemplo (la herramienta que propone esta habitación ya no está, aparentemente, no al menos sin pagar):

https://hackertarget.com/as-ip-lookup/

Ella nos dice que tienen el ASN AS14061.

Tryhackme no es una megacorporación, así que no tiene su propio ASN. Cuando buscamos en Google AS14061, podemos ver que es un número ASN de Digital Ocean.

En Shodan, podemos buscar usando el filtro ASN. Dicho filtro es:

ASN:número

Donde número en este caso es AS14061.

Si lo hacemos, podemos ver que 6,2 millones de sitios se encuentran en este mismo ASN.

Resultado de ASN en Shodan

Conocer el ASN es útil, porque podemos buscar en Shodan cosas como cafeteras o máquinas vulnerables dentro de nuestro ASN que sabemos que están en nuestra red (si se trata de una gran empresa).

Comenzando con Shodan

Banners

Para sacar el máximo rendimiento a Shodan, es importante entender su sintaxis de peticiones.

Los dispositivos corren servicios y Shodan guarda información sobre ellos. La información es almacenada en un banner. Esta es la parte más fundamental de Shodan.

Un banner de ejemplo podría ser:

{
		"data": "Moxa Nport Device",
		"Status": "Authentication disabled",
		"Name": "NP5232I_4728",
		"MAC": "00:90:e8:47:10:2d",
		"ip_str": "46.252.132.235",
		"port": 4800,
		"org": "Starhub Mobile",
		"location": {
				"country_code": "SG"
		}
 }

Estamos observando el resultado de un solo puerto, que incluye información sobre la IP y detalles de autenticación. En realidad, no vemos esto fuera de la API, así que no profundizaremos.

Filtros

En la página de Shodan.io, podemos hacer clic en «Explore» para ver las peticiones de búsqueda más votadas. La más popular es webcams.

Aquí estamos en un área gris. Es legal ver una webcam públicamente accesible, es ilegal entrar en una protegida por contraseña, usemos la cabeza y la ley.

Una de las búsquedas más votadas también son las bases de datos MySQL.

https://www.shodan.io/search?query=product%3AMySQL

Esa búsqueda es otro filtro. product:MySQL.

Sabiendo esto, podemos combinar 2 búsquedas en 1.

En el ASN de Tryhackme, vamos a tratar de encontrar algunos servidores MySQL.

Para eso, usamos:

asn:AS14061 product:MySQL

De esta manera, tenemos servidores MySQL en el ASn de Tryhackme, que en realidad es el ASN de Digital Ocean.

https://www.shodan.io/search?query=asn%3AAS14061+product%3AMySQL

Shodan tiene filtros muy poderosos. Mi favorito es el filtro vuln, que nos deja buscar direcciones IP vulnerables ante un exploit.

Supongamos que queremos direcciones vulnerables a Eternal Blue. En ese caso, podemos buscar:

vuln:ms17-010

Sin embargo, este filtro solo está disponible para usuarios académicos o de negocios, para evitar que actores maliciosos abusen de esto.

Otros filtros:

  • City
  • Country
  • Geo (coordenadas)
  • Hostname
  • net (basado en IP / CIDR)
  • os (encuentra sistemas operativos)
  • port
  • before/after (periodos de tiempo)

API

Shoda.io tiene una API, que requiere una cuenta, así que se sale un poco de lo que estamos tratando aquí. Si queremos explorarla, este artículo sobre encontrar Pi-Holes nos resultará útil.

https://github.com/beesecurity/How-I-Hacked-Your-Pi-Hole/blob/master/README.md

La API nos deja buscar programáticamente Shodan y recibir una lista de IP’s de vuelta. Si somos una empresa, podemos escribir un script para chequear nuestras direcciones IP para ver si alguna de ellas es vulnerable.

También se puede filtrar automáticamente en Shodan haciendo clic en las opciones de la barra lateral izquierda.

¿Cómo encontramos exploits de Eternal Blue en Shodan?

vuln:17-010

Google y filtrado

Aprendamos a filtrar con Google. Pongamos mucha atención en lo que nos pregunta cada cuestión.

¿Cuál es el sistema operativo Top para los servidores MySQL en el ASN Google?

Vamos paso a paso. Primero, descubrimos la IP de Google con:

ping google.com

Obtenemos: 142.250.200.142

Ahora nos vamos a https://hackertarget.com/as-ip-lookup/ y ponemos la IP obtenida, para conseguir su ASN, que es 15169.

Encontrando el ASN de Google

Ahora, hacemos la siguiente búsqueda con filtros asn y product.

asn:AS15619 product:MySQL 

En la parte izquiera de los resultados nos aparece Top Versions, pero hay un problema, la versión de la respuesta «correcta» de la habitación está desfasada.

Top version de MySQL

Mientras que ahora mismo es 5.7.32.35-log, la que nos acepta como correcta es una más antigua porque la habitación tiene su tiempo:

5.6.40-84.0-log

¿Cuál es el segundo país más popular para servidores MySQL en Shodan? (Este sí coincide)

Netherlands

Bajo el ASN de Google, ¿qué es más popular para Nginx, HTTP o HTTP con SSL?

Para eso, comparo 2 búsquedas de nginx como producto, añadiendo el filtro port, y veo el resultado:

product:nginx asn:as15169 port:80 # busco el puerto http que es el 80
product:nginx asn:as15169 port:443 # busco el puerto https que es el 443

En el primer caso me aparecen, ahora mismo, 227.700 resultados y para el segundo 211.838, así que es HTTP y coincide con lo que era cuando se creó la habitación.

Hypertext Transfer Protocol

¿Cuál es la ciudad más popular bajo el ASN de Google?

En la búsqueda general por ASN solamente me sale que el país top es Estados Unidos, así que busco filtrando por él (con su código de 2 letras US). Así me sale la ciudad top.

Actualmente y con diferencia es Kansas City, pero la respuesta cuando se creó la habitación es otra.

asn:as15169 country:us

Mountain View

Bajo el ASN de Google en Los Ángeles, ¿cuál es el sistema operativo más usado? Es Debian, pero la respuesta que admite la habitación es un desfasado PAN-OS que apenas aparece ya 3 veces, contra 7.724 de Debian, en fin.

asn:as15169 city:"Los Angeles" 

Debian

Usando la búsqueda top Webcam de la página Explore, ¿tiene el ASN de Google alguna webcam? (yay/nay)

Server: SQ-WEBCAM asn:as15169

nay

Shodan Monitor

Shodan Monitor es una aplicación para monitorizar nuestros propios dispositivos en nuestra red. Nos permite saber cuáles están expuestos a Internet, configurar notificaciones, lanzar escaneos y ganar visibilidad completa cuando estás conectado.

Antes, se tenía que hacer vía API, pero ahora se puede usar esta aplicación.

Accedemos en:

https://monitor.shodan.io/dashboard

Y veremos que nos pide un rango de IP’s.

Shodan Monitor

Una vez añadimos una red, la podemos ver en nuestro dashboard.

Shodan Monitor

Si hacemos clic en el icono de settings podemos ver un rango de escaneos que Shodan realiza en nuestra red.

Shodan Monitor

En el momento en que detecta una vulnerabilidad, nos enviará un correo. Si vamos de nuevo al dashboard, podemos ver cómo nos muestra algunas cosas.

Shodan Monitor

Principalmente:

  • Top puertos abiertos (más comunes)
  • Top Vulnerabilidades (cosas que tenemos que arreglar ya mismo)
  • Puertos destacables (que están abiertos y no es habitual que lo estén)
  • Vulnerabilidades potenciales.
  • IP’s destacables (cosas que deberíamos investigar más a fondo).

Lo interesante que es también puedes monitorizar las redes de otros con esto. Para cazar bugs puedes guardar una lista de IP’s y Shodan te enviará un email si encuentra problemas.

Es un producto premium, pero suele haber descuentos importantes en Black Friday.

¿Cuál es la url del monitor de Shodan?

https://monitor.shodan.io/dashboard

Dorking con Shodan

Shodan tiene algunas páginas web con dorks que nos ayudan a encontrar cosas. Algunas divertidas son.

has_screenshot:true encrypted attention

Que usa reconocimiento óptico de caracteres y escritorio remoto para encontrar máquinas comprometidas por ransomware en Internet.

Shodan Dorking

screenshot.label:ics

Shodan Dorking

vuln:CVE-2014-0160

Máquinas conectadas a Internet y vulnerables a heartbleed. La búsqueda por CVE está limitada a usuarios de negocios y académicos.

Ataque a la cadena de suministro de Solar Winds usando favicons.

http.favicon.hash:-1776962843

Se pueden encontrar más dorks de Shodan en Github.

¿Qué dork nos deja ver PC’s infectados por ransomware?

has_screenshot:true encrypted attention

La extensión Shodan

Shodan tiene una extensión para Chrome.

Cuando la instalas, puedes hacer clic en ella y te dice la IP del servidor que está corriendo, qué puertos están abiertos, dónde está y si tiene problemas de seguridad.

Interesante para los cazadores de bugs, de manera que puedan, rápidamente, decir si un sistema es vulnerable o no, basado en el resultado de Shodan.

Extensión de Shodan