#!/bin/bash # DESC: fallos y vulnerabilidades # Nombre del archivo HTML OUTPUT_FILE="reporte_seguridad.html" # Crear el archivo HTML e iniciar el contenido echo "" > $OUTPUT_FILE echo "
Fecha: $(date)
" >> $OUTPUT_FILE # 1. Verificar si el usuario está ejecutando el script como root if [[ $EUID -ne 0 ]]; then echo "Error: Por favor, ejecuta este script como root" echo "Error: Por favor, ejecuta este script como root
" >> $OUTPUT_FILE echo "" >> $OUTPUT_FILE exit 1 fi # 2. Revisar actualizaciones de seguridad pendientes echo "1. Verificando actualizaciones de seguridad pendientes..." echo "Hay actualizaciones de seguridad pendientes. Ejecuta 'apt-get upgrade' para instalarlas.
" >> $OUTPUT_FILE else echo "El sistema está actualizado." echo "El sistema está actualizado.
" >> $OUTPUT_FILE fi rm /tmp/updates.txt # 3. Comprobar servicios innecesarios echo "2. Comprobando servicios innecesarios..." echo "Algunos servicios abiertos:
" >> $OUTPUT_FILE
cat /tmp/services.txt >> $OUTPUT_FILE
echo "" >> $OUTPUT_FILE
else
echo "No se detectaron servicios innecesarios abiertos."
echo "No se detectaron servicios innecesarios abiertos.
" >> $OUTPUT_FILE fi rm /tmp/services.txt # 4. Buscar permisos inseguros en archivos importantes echo "3. Buscando archivos con permisos inseguros..." echo "Se encontraron archivos con permisos 777 (inseguros):
" >> $OUTPUT_FILE
cat /tmp/permissions.txt >> $OUTPUT_FILE
echo "" >> $OUTPUT_FILE
else
echo "No se encontraron archivos con permisos inseguros."
echo "No se encontraron archivos con permisos inseguros.
" >> $OUTPUT_FILE fi rm /tmp/permissions.txt # 5. Comprobar si existen usuarios con privilegios echo "4. Comprobando usuarios con privilegios de root..." echo "Usuarios con privilegios de root:
" >> $OUTPUT_FILE
awk -F: '$3 == 0 { print $1 }' /etc/passwd | tee /tmp/superusers.txt
cat /tmp/superusers.txt >> $OUTPUT_FILE
echo "" >> $OUTPUT_FILE
rm /tmp/superusers.txt
# 6. Comprobación básica de fail2ban o firewall activo
echo "5. Comprobando si fail2ban o firewall están activos..."
echo "fail2ban está activo
" >> $OUTPUT_FILE else echo "fail2ban no está activo" echo "fail2ban no está activo
" >> $OUTPUT_FILE fi if systemctl is-active --quiet ufw; then echo "El firewall (ufw) está activo" echo "El firewall (ufw) está activo
" >> $OUTPUT_FILE else echo "El firewall (ufw) no está activo" echo "El firewall (ufw) no está activo
" >> $OUTPUT_FILE fi # 7. Verificar si hay usuarios conectados echo "6. Comprobando si hay usuarios conectados..." echo "Usuarios conectados actualmente:
" >> $OUTPUT_FILE
who >> $OUTPUT_FILE
echo "" >> $OUTPUT_FILE
else
echo "No hay usuarios conectados en este momento."
echo "No hay usuarios conectados en este momento.
" >> $OUTPUT_FILE fi # Finalizar el HTML echo "