#!/bin/bash

#LA ruta del la unbidad en el equipo
PATH_FILE="/mnt/dw"


RESUMEN_CSV="$PATH_FILE/resumen_scan.csv"

# Verifica que se haya pasado un archivo como parámetro
if [ $# -ne 1 ]; then
    echo "Uso: $0 <archivo_con_ips>"
    exit 1
fi

INPUT_FILE="$1"

# Verifica que el archivo exista
if [ ! -f "$INPUT_FILE" ]; then
    echo "Error: El archivo '$INPUT_FILE' no existe."
    exit 2
fi

# Verifica que el directorio de salida exista
if [ ! -d "$PATH_FILE" ]; then
    echo "El directorio $PATH_FILE no existe. Creándolo..."
    mkdir -p "$PATH_FILE"
fi

# Inicializa el archivo CSV
echo "IP/Host,Puertos Abiertos,N° Vulnerabilidades" > "$RESUMEN_CSV"

# Recorre cada línea del archivo
while IFS= read -r ip || [[ -n "$ip" ]]; do
    [[ -z "$ip" ]] && continue

    safe_name="${ip//[^a-zA-Z0-9]/_}"
    echo "Escaneando $ip ..."

    # Escaneo de puertos
    PORT_FILE="$PATH_FILE/nmap_result_${safe_name}.nmap"
    nmap -Pn -sS -T4 "$ip" -oN "$PORT_FILE"

    # Escaneo de puertos
    PORT_FILE="$PATH_FILE/nmap_result_${safe_name}.nmap"
    nmap -Pn -sS -T4  -p 1-65535   "$ip"  -oN "$PORT_FILE_alports"

    
    # Escaneo de vulnerabilidades
    NSE_FILE="$PATH_FILE/nmap_result_${safe_name}_NSE.nmap"
    nmap --script vuln "$ip" -oN "$NSE_FILE"

    # Extraer puertos abiertos (solo número/servicio)
    puertos=$(grep -E '^[0-9]+/tcp +open' "$PORT_FILE" | awk '{print $1}' | paste -sd "," -)

    # Contar vulnerabilidades detectadas
    vuln_count=$(grep -c "VULNERABLE:" "$NSE_FILE")

    # Agregar al CSV
    echo "$ip,$puertos,$vuln_count" >> "$RESUMEN_CSV"

done < "$INPUT_FILE"

echo "Escaneo completo. Resumen generado en: $RESUMEN_CSV"
