Shodan, se define a sí mismo como un buscador de dispositivos conectados a Internet. Si bien lo es, en su definición general, me gustaría agregar (sobre todo para los que no lo conocen o usaron), que también se pueden identificar servicios y puertos en los que corren, además de poder analizar cierta metadata, encabezados y banners entre otras cosas.
Básicamente, shodan se divide de la siguiente manera:
Versión web
Hola que tal Shodan Soy un Curioso
Mira mamá uso otro buscasdor se llama Shodan
Mi nuevo amigo Shodan me enseña a ser mas Cuidadoso
Api
Shodan me prepara para ser el ultimo Samurai
Versión CLI, que es la que profundizaremos en este post. Utilizaré kali como sistema operativo, pero pueden usar el que deseen (debe tener python).
Para utilizar la versión CLI, necesitamos instalar una librería de python, para ello ejecutamos “pip install shodan” para instalar la librería.
Si no poseen pip y no quieren instalarlo, pueden usar como alternativa “easy_install shodan”
Con correr un “shodan –help” ya debería funcionar. Sin embargo, en una de las máquinas en que realicé la instalación, me produjo el siguiente error:
Esto se produce porque le falta permisos. Por favor, no ejecuten un “chmod 777” para ésto (si no conocen aún sobre permisos en linux, te recomiendo que lo investigues), con un “chmod +x” y el path donde se encuentra es suficiente.
Ahora si, “shodan -h” o “--help” y ya debería funcionar.
Si ejecutamos ahora una consulta, nos va a devolver un error.
Esto se da porque debemos setear la api_key. Para obtener la key, debemos loguearnos en el sitio: Shodan.io - Login
Deben loguearse con user y pass, en el caso de que no posean, es posible crear una clickeando en el botón de arriba a la derecha Create an Account y colocando algunos pocos datos.
Una vez logueados, buscamos la Api Key, un string de 33 caracteres o bien, leer el código QR que aparece abajo que les dará el mismo string.
Cuando tengamos la api key, volvemos a la consola y ejecutamos “shodan init tu_api_key"
Si hasta acá salió todo bien, podemos comenzar a probar las opciones que nos brinda en CLI de shodan.
Como ya vimos, con “-h” podemos visualizar la ayuda.
Veamos algunos ejemplos:
1- Queremos obtener info de un host.
Podemos utilizar el parámetro host de la siguiente manera: “shodan host DirecciónIP”
2- Queremos saber cuántos webserver hay en la red con Apache Tomcat 1.1.
Podemos usar el parámetro count de la siguiente manera: “shodan count tomcat 1.1”
Ya que vimos algunas cosas básicas, hagamos algo un poco más elaborado y divertido. Obtengamos un listado de webservers IIS con versión 6.1.
Para éste caso, podemos usar el la opción download, de la siguiente manera: “shodan download Nombre ‘StringParaBuscar’”
Para lograr visualizar de manera entendible el archivo que en este caso se llama IIEv6 con extensión .json.gz, podemos usar la opción parse: “shodan parse –fields Campos NombreDelArchivo”
Otros campos para parsear, pueden verlos en el json o en la documentación que se encuentra en Documentación de Shodan.
Se pueden realizar muchas cosas más, todo depende de la imaginación, necesidad y capacidad de cada uno. Los output pueden concatenarse con algo de shell scripting para por ejemplo correr un script de nmap sobre determinadas ip que resulten interesantes.
Por último, dejo algunos links de referencia, aunque como ya saben, pueden preguntar por aquí que veremos la forma de darles una mano.
Saludos.
@balderramaeric