Instaloader en Kali Linux: Guía

 https://www.onlinetis.com

Instaloader en Kali Linux: Guía

Instaloader es una herramienta de terminal muy potente escrita en Python que sirve para descargar fotos, videos y metadatos de Instagram. Al estar en Kali, ya tienes casi todo lo necesario.


Pasos para la instalación

Sigue estos comandos en tu terminal:

  1. Actualiza tu sistema:

    Es buena práctica asegurarse de que los repositorios estén al día.

    Bash
    sudo apt update
    
  2. Instala el gestor de paquetes de Python (pip):

    Si no lo tienes instalado, ejecútalo así:

    Bash
    sudo apt install python3-pip
    
  3. Instala Instaloader:

    Ahora, descarga e instala la herramienta:

    Bash
    pip3 install instaloader
    

Comandos básicos de uso

Una vez instalado, aquí tienes los comandos más comunes para que empieces a usarlo:

  • Descargar todo el perfil de un usuario:

    Bash
    instaloader nombre_de_usuario
    
  • Descargar solo las "Stories" (requiere iniciar sesión):

    Bash
    instaloader --stories --login tu_usuario nombre_del_objetivo
    
  • Descargar un post específico por su enlace:

    Bash
    instaloader -- -shortcode_del_post
    

    (El shortcode es el código que aparece en la URL del post, por ejemplo: C1Ab23dEFgH).


⚠️ Notas importantes

  • Inicia sesión con precaución: Si vas a descargar mucho contenido o perfiles privados, usa --login. Sin embargo, Instagram es estricto; si haces demasiadas peticiones en poco tiempo, podrían suspender tu cuenta temporalmente. Usa una cuenta secundaria si es posible.

  • Privacidad: Recuerda siempre respetar la privacidad de los demás y usar estas herramientas de forma ética.

Automatizar esto te ahorrará mucho tiempo, especialmente si sigues varias cuentas de interés (como perfiles de ciberseguridad o fotografía).

Aquí tienes un script sencillo en Python que lee una lista de usuarios desde un archivo de texto y descarga sus publicaciones más recientes.


1. Prepara tu lista de objetivos

Crea un archivo llamado usuarios.txt en la misma carpeta donde pondrás el script. Escribe un nombre de usuario por línea:

Plaintext
usuario_ejemplo1
usuario_ejemplo2
coding_magic

2. El Script de Automatización (descargador.py)

Copia este código en un archivo nuevo:

Python
import instaloader

# Inicializamos Instaloader
L = instaloader.Instaloader()

# Opcional: Descomenta la línea de abajo si quieres loguearte (Recomendado)
# L.login("TU_USUARIO", "TU_CONTRASEÑA") 

def descargar_lista():
    try:
        with open("usuarios.txt", "r") as archivo:
            usuarios = archivo.readlines()
            
        for usuario in usuarios:
            nombre = usuario.strip() # Limpiamos espacios o saltos de línea
            if nombre:
                print(f"--- Iniciando descarga de: {nombre} ---")
                try:
                    # Esto descarga el perfil completo
                    L.download_profile(nombre, profile_pic_only=False)
                except Exception as e:
                    print(f"Error con {nombre}: {e}")
                    
    except FileNotFoundError:
        print("Error: No se encontró el archivo usuarios.txt")

if __name__ == "__main__":
    descargar_lista()

3. Cómo ejecutarlo

Desde tu terminal en Kali Linux, simplemente corre:

Bash
python3 descargador.py

💡 Un par de consejos "Pro":

  • Evita el Ban: Instagram detecta comportamientos robóticos. Si vas a descargar muchos perfiles, añade una pausa entre cada uno usando import time y time.sleep(30) (espera 30 segundos) dentro del ciclo for.

  • Filtros: Puedes modificar el script para que solo descargue fotos que tengan más de X cantidad de "likes" o que se hayan publicado después de una fecha específica.

 

Vamos a darle un toque más profesional al script. Le añadiremos un retraso aleatorio (para que Instagram no sospeche que eres un bot) y un filtro por fecha para que no descargues todo el historial cada vez, sino solo lo más reciente.

Script Avanzado: descargador_pro.py

Este script solo descargará publicaciones hechas en los últimos 30 días.

Python
import instaloader
from datetime import datetime, timedelta
import time
import random

# Configuramos Instaloader
L = instaloader.Instaloader()

# --- CONFIGURACIÓN ---
# L.login("tu_usuario", "tu_password") # Recomendado para evitar bloqueos
DIAS_ATRAS = 30
fecha_limite = datetime.now() - timedelta(days=DIAS_ATRAS)

def descargar_recientes():
    try:
        with open("usuarios.txt", "r") as f:
            targets = [line.strip() for line in f if line.strip()]

        for username in targets:
            print(f"\n[+] Analizando: {username}")
            try:
                perfil = instaloader.Profile.from_username(L.context, username)
                
                # Iteramos sobre los posts del perfil
                for post in perfil.get_posts():
                    if post.date_utc > fecha_limite:
                        print(f"Descargando post del {post.date_utc}...")
                        L.download_post(post, target=perfil.username)
                    else:
                        # Como los posts vienen ordenados, si uno es viejo, los demás también
                        print(f"[-] Fin de posts recientes para {username}.")
                        break
                
                # Pausa aleatoria entre 20 y 60 segundos para evitar baneos
                espera = random.randint(20, 60)
                print(f"Esperando {espera}s para el siguiente perfil...")
                time.sleep(espera)

            except Exception as e:
                print(f"Error con {username}: {e}")

    except FileNotFoundError:
        print("Archivo 'usuarios.txt' no encontrado.")

if __name__ == "__main__":
    descargar_recientes()

¿Qué hace este script diferente?

  1. Filtro Temporal: Usa la librería datetime para calcular qué fecha fue hace 30 días. Si el post es más antiguo, el script se detiene y pasa al siguiente usuario.

  2. Sigilo (Stealth): La función random.randint(20, 60) hace que el script espere un tiempo distinto cada vez. Esto imita mejor el comportamiento humano y protege tu dirección IP de ser marcada como spam.

  3. Eficiencia: No descarga gigabytes de datos antiguos que probablemente ya tienes, ahorrando espacio en tu disco duro de Kali.


Un último consejo de seguridad en Kali:

Si vas a realizar descargas masivas, considera usar una VPN o la red Tor (usando proxychains). Instagram registra tu IP, y si descargas cientos de perfiles en una hora, podrían bloquear tu acceso temporalmente.

 

Configurar Proxychains con Tor en Kali es el siguiente nivel para cualquier herramienta de recolección de datos (OSINT) como Instaloader. Esto hará que tu conexión rebote por tres nodos alrededor del mundo, ocultando tu dirección IP real de los servidores de Instagram.

Aquí tienes los pasos para dejarlo listo:


1. Instalar y activar Tor

Primero, necesitamos que el servicio de Tor esté corriendo en tu máquina.

Bash
sudo apt update
sudo apt install tor -y
sudo service tor start

Tip: Puedes verificar si está activo con sudo service tor status. Debería decir "active (running)".

2. Configurar Proxychains

Proxychains ya viene preinstalado en Kali, pero debemos asegurarnos de que use el puerto correcto de Tor.

  1. Abre el archivo de configuración:

    Bash
    sudo nano /etc/proxychains4.conf
    
  2. Busca la línea que dice strict_chain y asegúrate de que no tenga un # delante.

  3. Baja hasta el final del archivo (sección [ProxyList]). Debe verse exactamente así:

    Plaintext
    socks5  127.0.0.1 9050
    

    (Si dice socks4, cámbialo a socks5).

  4. Guarda y sal (Ctrl + O, Enter, Ctrl + X).


3. Ejecutar Instaloader a través de Tor

Ahora, para usar tu script o el comando directo de Instaloader de forma anónima, simplemente antepones la palabra proxychains4:

  • Para el script que creamos:

    Bash
    proxychains4 python3 descargador_pro.py
    
  • Para un comando directo:

    Bash
    proxychains4 instaloader nombre_usuario
    

🧪 Cómo saber si está funcionando

Antes de empezar a descargar, haz esta prueba en tu terminal:

Bash
proxychains4 curl ifconfig.me

Si la IP que aparece no es la tuya (sino una de Alemania, EE. UU., etc.), ¡felicidades! Estás navegando a través de Tor.

⚠️ Advertencia de Velocidad

Ten en cuenta que Tor es más lento que tu conexión normal porque cifra los datos y los pasa por varios servidores. Si descargas videos pesados, tardará un poco más, pero tu privacidad estará a salvo.

 

Vamos a crear un script de Bash (un archivo .sh) que automatice todo el proceso. Este "lanzador" se encargará de:

  1. Verificar si el servicio de Tor está encendido (y encenderlo si no lo está).

  2. Lanzar tu script de Python a través de Proxychains.

  3. Limpiar la pantalla y darte un reporte visual de lo que está pasando.


1. Crea el Lanzador (iniciar_descarga.sh)

Copia el siguiente código en un archivo nuevo llamado iniciar_descarga.sh:

Bash
#!/bin/bash

# Colores para que se vea profesional en la terminal de Kali
VERDE='\033[0;32m'
AZUL='\033[0;34m'
ROJO='\033[0;31m'
NC='\033[0m' # No Color

echo -e "${AZUL}[*] Iniciando el entorno de descarga anónima...${NC}"

# 1. Comprobar si Tor está corriendo
STATUS=$(service tor status | grep "active (running)")

if [ -z "$STATUS" ]; then
    echo -e "${ROJO}[!] Tor no está activo. Iniciando servicio...${NC}"
    sudo service tor start
    sleep 2
else
    echo -e "${VERDE}[V] Servicio Tor detectado y activo.${NC}"
fi

# 2. Verificar conexión anónima rápida
echo -e "${AZUL}[*] Verificando IP anónima...${NC}"
IP_ANON=$(proxychains4 curl -s ifconfig.me)
echo -e "${VERDE}[V] Tu IP actual (Tor): $IP_ANON${NC}"

# 3. Ejecutar el script de Python
echo -e "${AZUL}[*] Lanzando Instaloader con Proxychains...${NC}"
proxychains4 python3 descargador_pro.py

echo -e "${VERDE}[+] Proceso finalizado con éxito.${NC}"

2. Dale permisos de ejecución

Para que Kali te deje ejecutar este archivo como un programa, abre la terminal y escribe:

Bash
chmod +x iniciar_descarga.sh

3. Cómo usarlo de ahora en adelante

Ya no necesitas escribir comandos largos. Cada vez que quieras descargar tus perfiles de forma segura, solo escribe:

Bash
./iniciar_descarga.sh

💡 Estructura final de tu carpeta

Para que todo funcione perfectamente, asegúrate de tener estos 3 archivos en la misma carpeta:

  1. usuarios.txt (Tu lista de nombres de usuario).

  2. descargador_pro.py (El script de Python con el filtro de fecha).

  3. iniciar_descarga.sh (El lanzador que acabamos de crear).

Nota de experto: Si notas que la conexión falla, a veces es porque los nodos de salida de Tor están saturados. Simplemente cierra el script y vuelve a ejecutarlo; proxychains intentará una ruta nueva.

 

Para que tu sistema de Kali Linux trabaje por ti mientras duermes, utilizaremos Cron, que es el administrador de tareas programadas en sistemas Linux.

Configuraremos una tarea (llamada cronjob) para que el script se ejecute automáticamente todos los domingos a medianoche.


1. Preparar el entorno

Cron no sabe dónde están tus archivos ni qué usuario eres, así que lo más seguro es usar rutas completas.

Primero, averigua la ruta de tu carpeta actual escribiendo esto en la terminal:

Bash
pwd

(Supongamos que el resultado es /home/kali/instagram_bot).

2. Editar el Crontab

Escribe el siguiente comando para abrir el editor de tareas:

Bash
crontab -e

Si es la primera vez que lo usas, elige la opción 1 (nano) que es la más sencilla.

3. Añadir la tarea programada

Ve al final del archivo y pega la siguiente línea (ajustando la ruta a la tuya):

Plaintext
0 0 * * 0 cd /home/kali/instagram_bot && ./iniciar_descarga.sh >> log_descargas.txt 2>&1

¿Qué significa cada parte?

  • 0 0 * * 0: Significa "Minuto 0, Hora 0, cualquier día del mes, cualquier mes, el día 0 de la semana (Domingo)".

  • cd /home/kali/instagram_bot: Entra en tu carpeta antes de hacer nada.

  • && ./iniciar_descarga.sh: Si entró bien a la carpeta, ejecuta el lanzador.

  • >> log_descargas.txt 2>&1: Guarda todo lo que pase (errores y mensajes) en un archivo llamado log_descargas.txt para que puedas revisarlo el lunes por la mañana.


4. Guardar y Verificar

  1. Presiona Ctrl + O, luego Enter para guardar.

  2. Presiona Ctrl + X para salir.

  3. Verifica que se guardó correctamente con:

    Bash
    crontab -l
    

💡 Un detalle importante sobre Sudo

Como el script de bash usa sudo service tor start, Cron podría pedirte contraseña y quedarse bloqueado. Para evitar esto en Kali, tienes dos opciones:

  1. Dejar Tor siempre encendido: sudo systemctl enable tor && sudo service tor start.

  2. Configurar sudo sin contraseña: (Solo recomendado si es una máquina de pruebas/aprendizaje).


Resumen de tu herramienta OSINT:

  • Anónima: Gracias a Tor y Proxychains.

  • Inteligente: Solo baja contenido de los últimos 30 días.

  • Sigilosa: Tiene esperas aleatorias para evitar bloqueos.

  • Automática: Se ejecuta sola cada semana.

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux