Docly Child

2.4.1. KAMERKA: OSINT Shodan

Tabla de contenidos:

OSINT para "el internet de las cosas"

Kamerka es una herramienta realizada en Python3 por wow-ciech para realizar OSINT sobre  el Internet de las Cosas, pudiendo listar a través de un mapa los resultados exactos de una búsqueda operativa en la plataforma Shodan, todo ello implementado a través de una interface web de fácil uso. Hasta finales del 2021 la herramienta ha recibido actualizaciones, siendo el único inconveniente que requiere tener una cuenta de pago de Shodan (que no es barata). A pesar de ello, vale la pena mencionarla y explicar un poco su funcionamiento. El repositorio de proyecto puede hallarse en:

https://github.com/woj-ciech/Kamerka-GUI

2.4.1.1. Funcionamiento de filtros Shodan y cuentas de usuario

La plataforma Shodan (https://www.shodan.io/) ya ha sido presentada en otra sección. No obstante, su uso, opciones de  búsqueda y valor de los resultados obtenidos están sujeto a los diferentes tipos de cuenta, que van desde usuario registrado a corporación, pasando por opciones de menos a más modestas. Cabe destacar, que entre las diferentes características entre cuentas, algunas de las diferencias principales son:

  1. El uso de filtros y etiquetas (tags) exclusivos.
  2. Créditos para realizar un determinado número de escaneos en profundidad (querys).

Estas dos cuestiones impiden poder aprovechar de esta herramienta de forma eficaz si no se tiene una cuenta de pago. A pesar de ello, conviene destacar que merece la pena crear una cuenta de usuario registrado pues permite acceder al uso de filtros exclusivos que sin esta no se podrían hacer (por puerto, país, etc.).

¿El por qué? Desde la sección de Explorar (https://www.shodan.io/explore), la herramienta nos proporciona información sobre los tipos de búsqueda que pueden realizarse, convenientemente ordenados:

Shodan Explore

Una búsqueda básica sin filtros, empleará el motor de búsqueda en función del texto introducido, viendo a través de la URL un resultado que tiene esta forma y diferentes resultados sin filtrar y con diferentes opciones de filtro al lado:

https://www.shodan.io/search?query=<texto_insertado>

Búsqueda básica en Shodan

No obstante, si se intenta añadir un filtro cualquiera sin estar loginado, como los que están al lado que indican país y puerto, Shodan inmediatamente advertirá de la condición:

Resultado sin loginar empleando filtros en Shodan

Así pues, la diferencia entre tener o no una cuenta (aunque sea la gratuita, de registro) es grande si se prueba a realizar la búsqueda, ahora sí, empleando filtros básicos. En estos casos, el motor de búsqueda de Shodan realiza el siguiente formato de búsqueda a través de la URL (enmascarando los caracteres especiales):

https://shodan.io/search?query=<texto1>+<texto2>+<filtro1>:»<valor_filtro1>»+<filtro2>:»<valor_filtro2>»+…

Resultado loginado empleando filtros en Shodan

Existe tanto en internet como en la página principal de Shodan ejemplos de estos filtros, que están debidamente inventariados y son propuestos al realizar la búsqueda básica (https://www.shodan.io/search/filters):

Referencia de filtros básicos en Shodan

El usuario registrado también obtiene algunas ventajas como el Dashboard común (https://www.shodan.io/dashboard), aunque las opciones evidentemente son abismales respecto a los otros tipos de cuenta (https://account.shodan.io/billing):

Shodan Dashboard y características cuentas

2.4.1.2. Instalación y uso de KAMERKA

Sistema operativo: Kali Linux

Instalación: Es una herramienta diseñada por woj-ciech en Python3, que emplea la configuración de claves de API de cuentas de usuarios de diferentes plataformas, principalmente Shodan y Google Maps. Se recomienda su instalación y descarga de archivos en un directorio que pueda acceder un usuario que no sea root. El orden mostrado difiere ligeramente del expuesto en GitHub:

1. Realizar los comandos de descarga de paquete de GitHub, acceder a la carpeta e instalar requerimientos:

				
					git clone https://github.com/woj-ciech/Kamerka-GUI.git
cd Kamerka-GUI
pip3 install –r requirements.txt

				
			

2. Instalar el paquete de software de redis, que es un motor de base de datos en memoria:

				
					apt-get update && apt-get install redis
				
			

3. Incorporar y guardar las claves API en el fichero json que se encuentra en la carpeta de GitHub descargada. Antes de seguir con el arranque del software, ver la sección siguiente (en esta misma página) sobre cómo encontrar las claves:

Claves API para Kamerka

Arranque: Para iniciar la herramienta, deben seguirse los siguientes pasos, estando en el directorio Kamerka-GUI i abriendo 3 pestañas diferentes en la consola de comandos (todas ellas en el directorio indicado)

1. Pestaña 1: Realizar la siguiente serie de comandos para iniciar el servidor principal de la aplicación:

				
					python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py runserver

				
			
Inicio arranque Kamerka

2. Pestaña 2: Inicio del software celery de Python3. Celery es un gestor de tareas o servicios. Inicialmente, aparecerán errores hasta que no se haga el tercer paso en la 3ª pestaña:

				
					celery --ap kamerka worker
				
			
Inicio celery para Kamerka

3. Pestaña 3: Iniciar redis.

				
					redis-server
				
			
Inicio redis Kamerka

4. Ahora sí, ya finalmente con un navegador de internet se accede a la siguiente URL local: localhost:8000

Desde el navegador, la aplicación nos ofrece ya de entrada la posibilidad de realizar diferentes tipos de búsqueda por ámbitos, cada uno con diferentes filtros predefinidos que son los que se emplean en Shodan:

Aplicación Kamerka

No obstante, los resultados sin una cuenta de pago de Shodan no son satisfactorios, pues como indica ya los créditos en Shodan, que son informados a través de la API, en este ejemplo son 0. La consola principal mostraría los diferentes resultados a través de mapas y menús. Desde el repositorio principal en GitHub se muestran ejemplos:

Dashboard Kamerka

Como se ha mostrado, la herramienta de Kamerka requiere de la configuración de claves de API de usuario para diferentes aplicaciones, siendo las principales y obligatorias las de Shodan y Google Maps. Resumiendo mucho, una API es una interfaz de programación de aplicaciones que permite que dos programas o software diferentes puedan comunicarse a través archivos de biblioteca que contienen funciones específicas.

Para el caso que ocupa, además, la clave API es el elemento de interacción principal con la API de un usuario no programador, en este caso nosotros que estamos empleando Kamerka, y que a su vez esta hace uso de la API de Shodan y Google Maps para consumir sus recursos. La función de la clave es acceder a la cuenta de usuario sin tener que revelar la contraseña e indicar su categoría. Estas claves API suele encontrarse en la sección de personalización del usuario registrado, por ejemplo en Shodan a través de la sección Account una vez loginado:

API Key de usuario Shodan

Para el caso de Google Maps, es más complejo pero pueden seguirse las siguientes indicaciones (https://maplink.global/blog/es/como-obtener-google-maps-api-key/) , teniendo en cuenta que a la hora de registrar la clave API no van a cobrar nada (aunque por como informa Google lo parece…):

API Key de Google Maps

Comentar también, que se pueden configurar claves de API para las herramientas Binaryedge (https://www.binaryedge.io/) y Whoisxmlapi (https://www.whoisxmlapi.com). Mientras que la primera es una aplicación similar a Shodan, la otra permite es escaneo de información basada en consultas de dominios e IP, ofreciendo servicios importantes para empresas dedicadas a la ciberseguridad.