Docly Child

2.3.2. Instagram

Tabla de contenidos:

OSINT Instagram

Instagram (https://www.instagram.com/) es principalmente una plataforma en la que los usuarios pueden insertar algunos datos en su perfil y subir fotografías con comentarios que contienen algunos metadatos (localización, fecha de la publicación, etc.). No hay que esperar mucho más, aunque siempre es interesante obtener una información para trazar un perfil que pueda ser explotable mediante técnicas de ingeniería social. 

Para realizar búsquedas de información de un usuario concreto de Instagram, es necesario disponer del nombre de perfil de usuario. Pueden realizarse búsquedas de perfiles por Google, con el buscador que se encuentra en la cabecera principal estando loginado o también  con otras herramientas con sistemas de búsqueda de información en Instagram.

Instagram buscar perfiles

El nombre de usuario se encontrará siempre en la URL, en la parte que sigue al dominio principal: instagram.com/<nombre_usuario>. Los perfiles de los usuarios pueden ser públicos o privados. A la hora de obtener información, suele ser necesario tener algún tipo de cuenta para configurar en los programas que automatizan la extracción de datos, sobre todo al intentar acceder a la información de perfiles privados.

2.3.2.1. Instaloader

Introducción Instaloader

Sistema operativo: Kali Linux

Descripción: Instaloader es una de las herramientas clásicas para la obtención de información en Instagram por fuerza bruta (es decir, descargando todo lo que pueda incluyendo fotos, comentarios, etc.). Está desarrollada en el  lenguaje de programación Python y emplea JSON para obtener los datos. La página principal es un repositorio de proyecto de GitHub y en ella se encuentra extensa información sobre su uso y varias opciones de filtros que aquí no se explicarán en detalle: https://instaloader.github.io/ . Permite realizar búsquedas de perfiles públicos o perfiles privados  empleando una cuenta propia.

Instalación: Se introduce en la línea de comandos (comando pip3 para la gestión de paquetes de software escritos en Python, ya viene incorporado en Kali Linux):

				
					pip3 install instaloader
				
			

Funcionamiento Instaloader

Como se ha indicado, Instaloader realiza una descarga del perfil y las publicaciones. Puede emplearse el siguiente comando para ver la estructura de la línea de comandos y sus opciones para ejecutar esta aplicación:

				
					instaloader --help
				
			
Operaciones básicas instaloader

Hay que tener en cuenta a la hora de ejecutar los comandos para extraer información:

  • Es recomendable usar la opción de introducir el usuario de una cuenta de Instagram propia (–login) para acceder a la información de los perfiles privados y evitar también que el servidor de Instagram bloquee las peticiones múltiples que se realizan. Una vez ejecutado el comando con el login, la aplicación solicitará la contraseña y guardará la ID de la sesión iniciada en Instagram contenida en la cookie. Estos datos se guardarán para posteriores ejecuciones de Instaloader en el directorio /root/.config/instaloader/session-<login_name>.
  • Instaloader generará un directorio con el nombre del usuario para el cual se ha realizado la búsqueda, descargando los contenidos en la carpeta creada. Si no se especifica mediante algunas de las opciones de comando se descargaran en el directorio en que esté operando la consola de comandos.

Aunque instaloader permite muchas opciones, para hacer operativas las búsquedas se proponen dos ejemplos básicos:

1. Descarga de la información de los perfiles:

  • Con el siguiente comando (puede incluirse n usuarios, separados por espacios):
				
					instaloader --login <usuario_propio> --profile <usuario_perfil>
				
			
Descarga del perfil de Instagram
  • La información descargada es la id de usuario de Instagram, la fotografía de perfil y una serie de datos del usuario extraídos en formato .JSON (debe descomprimirse el fichero .JSON.xz).
  • El fichero .JSON puede contener en ocasiones información valiosa. Se puede ordenar la información contenido en él mediante aplicaciones web como por ejemplo https://codeshack.io/json-sorter/.
Fichero JSON ordenado con información de perfil

2. Descargar imágenes, publicaciones e información de ubicación contenida:

  • Recomendable hacerlo para un solo perfil. La información se descargada por fechas (más reciente primero), por lo que si el número de publicaciones de un usuario es muy extenso se puede detener la descarga con el comando CTRL + C:
				
					instaloader --geotags --login <usuario_propio> <usuario_perfil>
				
			
Descarga completa información instaloader con localización

·        La información queda contenida en la nueva carpeta de perfil. Se recomienda ordenar la información por nombre para hacer agrupaciones. Como se observa, cada publicación tiene la imagen, el texto de la publicación, información adicional en formato JSON y la ubicación:

Información localización instaloader

2.3.2.2. Insta.py

2.3.2.2.1. Introducción insta.py

Sistema operativo: Kali Linux

Descripción: insta.py es una herramienta escrita en Python2 por Wow-Ciech y se puede encontrar en GitHub. A la hora de escribir esto todavía era posible descargar los paquetes auxiliares de Python2 requeridos sin demasiados problemas. Proporciona información de etiquetas de fotografías, localizaciones, etc. de forma resumida, sin tener que descargar todo el contenido de un perfil a diferencia de instaloader. Es una herramienta más entre las muchas que hay en GitHub de este tipo para realizar OSINT sobre redes sociales, pero servirá como muestra.

2.3.2.2.2. Instalación y ejecución de insta.py

1. Descargar los paquetes de software para Python2 moviepy, InstagramApi, geopy:

				
					pip2 install moviepy, InstagramApi, geopy
				
			

2. Ir a la dirección del repositorio del script en Github y copiar todo el código Python (139 líneas): https://github.com/woj-ciech/OSINT/blob/master/insta/insta.py

Código insta.py

3. Insertar y guardar todo el código en un fichero que se guarda con el nombre py con cualquier herramienta de edición de texto. La extensión .py indica que es un script para ejecutar con Python. En la línea 18 se debe insertar el nombre de una cuenta de usuario y password de Instagram para hacer uso de la API que devolverá la información:

Configuración cuenta insta.py

Para ejecutar la herramienta, se debe introducir el siguiente formato de instrucción en la consola, donde se ubica el fichero insta.py. Se debe introducir la ID de usuario de Instagram, que se puede obtener mediante Instaloader:

				
					python2 insta.py <id_usuario_instagram>
				
			
Ejemplo insta.py

2.3.2.3. OSINTGRAM

2.3.2.3.1. Introducción OSINTGRAM

Sistema operativo: Kali Linux

Descripción: OSINTGRAM es una herramienta escrita en Python3 por Giuseppe Criscione y se puede encontrar en GitHub. Es una herramienta de reciente creación, fácil y clara de  utilizar.

2.3.2.3.1. Instalación y ejecución de OSINTGRAM

Instalación: Siguiendo las instrucciones del creador, ejecutar los siguientes comandos como usuario administrador (poniendo delante sudo en caso de no estar empleando el usuario root) en el directorio deseado desde la consola de comandos:

				
					#Instalación de software para crear entorno de proyecto de Python (necesario):
apt-get update && apt-get install python3-venv

#Descarga de la carpeta de proyecto en GitHub: 
git clone https://github.com/Datalux/Osintgram.git

#Acceder al repositorio descargado
cd Osintgram

#Crear y activar el entorno Python que se llamará venv:
python3 -m venv venv
source venv/bin/activate

#Instalar requerimientos:  
pip3 install -r requirements.txt

#Configuración de las credenciales de una cuenta de Instagram con un editor de texto (vi en el ejemplo):
vi config/credentials.ini

				
			
Credenciales para OSINTGRAM

Uso: El uso la aplicación es muy sencillo. Una vez hecha la configuración de las credenciales, se ejecuta el fichero principal en Python3 (main.py) tal y como indica la siguiente sintaxis:

				
					python3 main.py <nombre_cuenta_usuario> 
				
			

1. La aplicación proporciona información de la ID de la cuenta y si se es seguidor o no. A continuación, introduciendo list se mostrará la serie de comandos que se puede emplear para obtener información del perfil introducido de inicio:

Comando list OSINTGRAM

2. Por ejemplo, indicando info, proporcionará información sobre el perfil, aunque existen muchas otras opciones interesantes.

Comando info OSINTGRAM