2 abr 2020

La churrera 2.0 con conchas Shodan y su CLI

¡Hola a todos!

¿Necesitas consultar un alto volumen de activos en Shodan? ¿Eres un sysadmin de los buenos pero con alergia a Python? Si es así, o si simplemente estás habituado al shell script y quieres conocer una manera simple y non-developer friendly de automatizar consultas a la API de Shodan, te presento Shodan CLI.

Recordando mis viejos tiempos de sysadmin, y el consejo de un antiguo profesor de la carrera ("no reinventes la rueda, busca y si ya está implementado, úsalo"), me dispuse a probar las lindezas que esta solución prometía. Lo cierto es que a los 3 minutos ya estaba volcando los resultados que necesitaba. Si os parece, vamos a dar un breve repaso a cómo configurar la herramienta y algunas pinceladas sobre su uso.


En mi caso, el setup inicial lo realicé en una distro Kali Linux, que por defecto ya cuenta con las librerías oficiales de Shodan para Python (sí, la herramienta está hecha en Python), pero no temáis mis amigos alérgicos, no tendremos que pelearos con Python. Lo que si tenemos que hacer es configurar nuestra API Key de Shodan, tarea tan sencilla como usar el comando init seguido de nuestra key:



Ya tenemos la herramienta lista para jugar con Shodan desde nuestra todopoderosa consola bash. Por cierto, quien no tenga cuenta en Shodan que esté atento a las ofertas, ya que todos los años hay alguna para conseguir cuenta de 100 créditos mensuales por precios que son casi un regalo.

¿Os acordáis de la vulnerabilidad de SMB (CVE-2020-0796) que se conoció por un descuido de Microsoft a primeros de Marzo? Os recomiendo la lectura del post que publicó nuestro compañero @chflorest contándonos entre otras cosas como detectarla en los sistemas de nuestra organización. Volviendo a la herramienta... ¿cuántos Windows con versión de compilación potencialmente vulnerable y SMB publicado nos encontramos en internet?. Shodan CLI nos da la respuesta con el comando count:



Nada menos que más de 38000 resultados únicos. Ésta búsqueda la podéis adaptar perfectamente limitando el resultado a vuestra organización, o lanzándola contra el direccionamiento de vuestra empresa. Pero la herramienta da mucho más de sí y nos permite descargar los resultados a un cómodo JSON comprimido con el comando download:



Los comandos search y download consumen créditos de vuestra cuenta, por lo que debéis de tener cuidado y afinar la búsqueda si no queréis quedaros sin balas en la recámara. Si no se especifica otro límite, por defecto descarga 1000 resultados.

Pero ésto no es todo, Shodan CLI también nos proporciona una funcionalidad para poder tratar el JSON de manera simple sin necesidad de usar otros desarrollos para ello (véase jq). Lo primero es conocer los identificadores de los campos que queremos mostrar, así que podemos usar jq para navegar por el JSON en busca de los identificadores que nos interesan:



Una vez escogidos los identificadores, podemos usar el comando parse para recorrer el JSON y mostrar los que nos interesen. Aquí os dejo un ejemplo del comando parse, en el que mostramos varios campos (ip,ptotocolo de transporte, puerto, organización, país, so) separados por el caracter ‘|’.



Shodan también guarda registro de sus escaneos de vulnerabilidades conocidas, por lo que podemos consultar cuantos de los resultados que hemos guardado todavía siguen siendo vulnerables. Para ello parseamos el JSON mostrando el campo vulns.CVE-2020-0796.verified, que nos indicará si shodan ha detectado el sistema como vulnerable.



De las 1500 entradas en nuestro JSON, 1423 son sistemas todavía vulnerables y sólo 77 son sistemas ya parcheados. ¿Dónde quedaron las políticas de parcheo?

No hemos cubierto todas las funcionalidades de la herramienta, pero creo que hemos visto lo suficiente como para confirmar que cumple con lo que prometía: simple, fácil de usar y efectiva. Si queréis investigar más, os recuerdo que invocando cualquier comando con el argumento -h obtendréis una escueta pero más que suficiente ayuda. Si queréis que ampliemos detalles sobre alguna otra funcionalidad, comentadlo y os contamos entre otras cosas un truquito para gastar menos créditos ;-)

Cuidaos, y recordad: #StayHomeAndHack

Good Hunt!!

No hay comentarios:

Publicar un comentario