Knocker: Escaneo de Puertos en Kali

 

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

Knocker: Escaneo de Puertos en Kali

En el ecosistema de Kali Linux, Knocker es una herramienta sencilla pero eficaz diseñada para el escaneo de puertos TCP. A diferencia de gigantes como Nmap, Knocker se centra en ser extremadamente ligero y fácil de usar, ideal para cuando necesitas una respuesta rápida sobre qué puertas están abiertas en un servidor.

¿Qué hace exactamente Knocker?

Básicamente, intenta establecer una conexión con los puertos de una dirección IP específica. Si el puerto responde, Knocker lo marca como "abierto". Es lo que en ciberseguridad llamamos un escaneo de "conexión completa" (TCP Connect Scan).


Cómo usar Knocker en Kali Linux

Si ya tienes Kali, es probable que debas instalarlo primero, ya que es una herramienta clásica que a veces no viene preinstalada en las versiones "light".

  1. Instalación:

    Abre tu terminal y escribe:

    sudo apt update && sudo apt install knocker

  2. Sintaxis básica:

    La estructura para ejecutarlo es muy directa:

    knocker --host [IP o dominio] --port [puerto]

  3. Ejemplos comunes:

ObjetivoComando
Escanear un puerto únicoknocker --host 192.168.1.1 --port 80
Escanear un rango de puertosknocker -H 192.168.1.1 -P 1-1024
Modo silencioso (solo resultados)knocker -H 192.168.1.1 -P 443 --quiet

¿Por qué usar Knocker en lugar de Nmap?

Aunque Nmap es el estándar de la industria, Knocker tiene su encanto:

  • Simplicidad: No tiene cientos de flags complicadas.

  • Velocidad: Para un escaneo rápido de puertos básicos, es casi instantáneo.

  • Aprendizaje: Es excelente para principiantes que están entendiendo cómo funcionan los protocolos de red sin abrumarse con datos técnicos excesivos.

Nota de seguridad: Recuerda siempre usar estas herramientas en entornos controlados o sobre sistemas de los que tengas autorización. Escanear redes ajenas puede ser detectado por sistemas de seguridad (IDS/IPS).


Automatizar esto con un script de Bash te permitirá escanear múltiples objetivos de forma secuencial y guardar los resultados en un archivo de texto para analizarlos después.

Aquí tienes un ejemplo de un script sencillo y funcional:

Script: Multi-Escáner con Knocker

Copia este código en un archivo llamado escaneo.sh:

Bash
#!/bin/bash

# Lista de IPs o dominios a escanear (separados por espacio)
TARGETS="192.168.1.1 192.168.1.5 google.com"

# Rango de puertos a revisar
PORTS="21-443"

echo "--- Iniciando escaneo con Knocker ---"

for HOST in $TARGETS; do
    echo "Analizando: $HOST..."
    # Ejecutamos knocker y guardamos la salida en un log
    knocker --host $HOST --port $PORTS >> resultados_escaneo.txt
    echo "Finalizado: $HOST"
    echo "-------------------------------------" >> resultados_escaneo.txt
done

echo "Escaneo completado. Revisa el archivo 'resultados_escaneo.txt'."

Cómo ponerlo en marcha

Para que el script funcione, sigue estos tres pasos en tu terminal de Kali:

  1. Dar permisos de ejecución: chmod +x escaneo.sh

  2. Ejecutar el script: ./escaneo.sh

  3. Ver los resultados: cat resultados_escaneo.txt

¿Qué hace este script?

  • Bucle for: Recorre cada dirección que pongas en la variable TARGETS.

  • Redirección (>>): En lugar de mostrar todo en pantalla, envía la información al final del archivo resultados_escaneo.txt para que no pierdas nada.

  • Personalización: Puedes cambiar los puertos en la variable PORTS según lo que necesites buscar (por ejemplo, 80,443,8080).

 

Leer los objetivos desde un archivo externo es mucho más profesional y organizado, especialmente si tienes una lista larga de dispositivos o servidores.

1. Preparación de los archivos

Primero, crea un archivo llamado objetivos.txt y escribe las IPs o dominios (uno por línea):

Plaintext
192.168.1.1
192.168.1.10
google.com
mi-servidor.local

2. El Script Mejorado (escaneo_pro.sh)

Copia este código. Ahora el script es más inteligente: verifica si el archivo existe y te avisa si algo sale mal.

Bash
#!/bin/bash

# Nombre del archivo de entrada
LISTA="objetivos.txt"
# Nombre del archivo de salida
LOG="reporte_final.txt"

# Verificar si el archivo de objetivos existe
if [ ! -f "$LISTA" ]; then
    echo "Error: El archivo $LISTA no existe. Créalo primero."
    exit 1
fi

echo "--- Iniciando Escaneo Masivo ---"
echo "Resultados del $(date)" > $LOG
echo "--------------------------------" >> $LOG

# Bucle para leer el archivo línea por línea
while IFS= read -r HOST || [ -n "$HOST" ]; do
    # Saltamos líneas vacías
    [ -z "$HOST" ] && continue

    echo "Escaneando: $HOST ..."
    echo "Host: $HOST" >> $LOG
    
    # Ejecutamos knocker (puertos comunes 21,22,80,443)
    knocker --host "$HOST" --port 21-443 --quiet >> $LOG
    
    echo "--------------------------------" >> $LOG
    echo "Listo."
done < "$LISTA"

echo "--- Proceso completado. Resultados en $LOG ---"

¿Cómo funciona la lógica de lectura?

El comando while IFS= read -r es la forma más segura en Bash de leer un archivo línea por línea sin que los espacios o caracteres especiales causen errores.

Instrucciones finales:

  1. Permisos: chmod +x escaneo_pro.sh

  2. Ejecución: ./escaneo_pro.sh

  3. Resultado: Al finalizar, tendrás un archivo reporte_final.txt con toda la información limpia y ordenada.

     Añadir una alerta es muy útil cuando tienes una lista larga y quieres hacer otras cosas mientras el script trabaja en segundo plano.

    En Linux, podemos usar un pitido interno (beep) o una notificación visual que aparecerá en tu escritorio de Kali.

    Script con Alertas (escaneo_con_aviso.sh)

    He modificado el bucle para que, al finalizar, te envíe un mensaje a la pantalla y haga un sonido:

    Bash
    #!/bin/bash
    
    LISTA="objetivos.txt"
    LOG="reporte_final.txt"
    
    # Verificación de archivo
    if [ ! -f "$LISTA" ]; then
        echo "Error: No encuentro $LISTA"
        exit 1
    fi
    
    echo "Iniciando escaneo masivo..."
    
    while IFS= read -r HOST || [ -n "$HOST" ]; do
        [ -z "$HOST" ] && continue
        echo "Analizando $HOST..."
        echo "--- Host: $HOST ---" >> $LOG
        knocker --host "$HOST" --port 21-443 --quiet >> $LOG
    done < "$LISTA"
    
    # --- SECCIÓN DE ALERTAS ---
    
    # 1. Alerta visual (Notificación de escritorio)
    if command -v notify-send &> /dev/null; then
        notify-send "Escaneo Completado" "Se han procesado todos los hosts en $LOG" --icon=terminal
    fi
    
    # 2. Alerta sonora (Pitido)
    echo -e "\a" 
    
    # 3. Mensaje final en terminal
    echo "========================================"
    echo "¡PROCESO FINALIZADO CON ÉXITO!"
    echo "Resultados guardados en: $LOG"
    echo "========================================"
    

    Detalles de las alertas:

    1. notify-send: Es el comando estándar en entornos como XFCE (el que usa Kali por defecto). Verás una pequeña ventana emergente en la esquina superior de tu pantalla, similar a cuando conectas un USB.

    2. echo -e "\a": El carácter \a (alert) intenta activar el altavoz de la placa base o el sistema de sonido para dar un toque de atención.

    3. command -v: He añadido esta línea para que el script no falle si por alguna razón no tienes instalado el sistema de notificaciones; simplemente lo saltará y seguirá.

    ¿Cómo probarlo?

    1. Dale permisos: chmod +x escaneo_con_aviso.sh

    2. Ejecútalo: ./escaneo_con_aviso.sh

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