Automatización de Tareas con Expect en Kali

 

https://www.onlinetis.com

Automatización de Tareas con Expect en Kali

En Kali Linux (y en Linux en general), Expect es una herramienta de automatización diseñada para interactuar con programas que requieren una respuesta del usuario a través de la terminal.

Es extremadamente útil en pruebas de penetración (pentesting) para automatizar tareas repetitivas como inicios de sesión SSH, cambios de contraseña (passwd) o cualquier herramienta que haga preguntas interactivas.


1. Conceptos Básicos

Expect funciona bajo un esquema de "diálogo":

  1. Spawn: Inicia el programa que queremos controlar.

  2. Expect: Espera a que el programa imprima un texto específico (ej. "Password:").

  3. Send: Envía la respuesta automática (ej. "mi_clave123").

  4. Interact: Devuelve el control al usuario (opcional).


2. Instalación en Kali Linux

Aunque suele venir preinstalado, puedes asegurarte con:

Bash
sudo apt update && sudo apt install expect

3. Ejemplo Práctico: Automatizar un SSH

Imagina que quieres conectarte por SSH a una máquina de pruebas sin tener que escribir la contraseña manualmente cada vez.

Crear el script

Crea un archivo llamado auto_ssh.exp:

Bash
#!/usr/bin/expect -f

# Definir variables
set timeout 10
set host "192.168.1.50"
set user "kali"
set pass "kali"

# 1. Iniciar el proceso
spawn ssh $user@$host

# 2. Reaccionar a lo que pida la terminal
expect {
    "yes/no" { 
        send "yes\r"
        exp_continue 
    }
    "password:" { 
        send "$pass\r" 
    }
}

# 3. Dejar la sesión abierta para el usuario
interact

Ejecutar el script

Dale permisos y ejecútalo:

Bash
chmod +x auto_ssh.exp
./auto_ssh.exp

4. Herramientas Útiles Incluidas

Kali incluye variantes de expect que ya vienen configuradas para tareas comunes:

  • autoexpect: Graba una sesión real de terminal que tú hagas y genera automáticamente el script de expect por ti. Es ideal si el proceso interactivo es muy largo.

  • autopasswd: Automatiza el cambio de contraseñas.

  • unbuffer: Permite volcar la salida de un programa interactivo a un archivo de log sin que se pierda información por el búfer.


5. Cuándo usarlo en Pentesting

  • Brute Forcing Local: Cuando una herramienta no permite pasar la contraseña por parámetros.

  • Post-Explotación: Para automatizar la elevación de privilegios si conoces una contraseña (ej. sudo -S).

  • Movimiento Lateral: Para saltar entre máquinas rápidamente usando scripts predefinidos.

Nota de seguridad: Guardar contraseñas en texto plano dentro de scripts de expect es un riesgo. Úsalo solo en entornos controlados o usa variables de entorno para pasar las credenciales.

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