Logo

Mi Blog con Emacs y Esteroides

Emacs, IA y Linux: Poder y Simplicidad en tu Flujo de Trabajo

mybloggingnotes@gmail.com


19/03/2025

Scripts de Bash para Ciberseguridad en Linux: Detección y Automatización

1. Introducción

En el ámbito de la ciberseguridad, la automatización de tareas mediante scripts es una habilidad crucial. Los scripts de Bash en Linux ofrecen una poderosa herramienta para realizar análisis de seguridad, detección de amenazas y auditorías de sistemas. En este post, exploraremos varios scripts de Bash diseñados para mejorar la seguridad y automatizar procesos de detección en entornos Linux.

2. Script 1: Detección Básica de Ciberataques

Este script realiza una serie de comprobaciones básicas para detectar posibles indicios de un ciberataque en un sistema Linux.

#!/bin/bash

echo "Iniciando detección básica de ciberataques..."

# Verificar intentos de acceso no válidos
echo "Comprobando intentos de acceso no válidos..."
invalid_attempts=$(grep "Invalid user" /var/log/auth.log | wc -l)
echo "Se han detectado $invalid_attempts intentos de acceso no válidos."

# Verificar conexiones de red sospechosas
echo "Comprobando conexiones de red sospechosas..."
suspicious_connections=$(netstat -tuln | grep ESTABLISHED | wc -l)
echo "Hay $suspicious_connections conexiones de red establecidas."

# Buscar archivos modificados recientemente
echo "Buscando archivos modificados en las últimas 24 horas..."
modified_files=$(find /etc -mtime -1 -type f | wc -l)
echo "Se han modificado $modified_files archivos en /etc en las últimas 24 horas."

# Verificar procesos sospechosos
echo "Comprobando procesos sospechosos..."
suspicious_processes=$(ps aux | grep -E '(nc|netcat|nmap)' | grep -v grep | wc -l)
echo "Se han encontrado $suspicious_processes procesos potencialmente sospechosos."

# Verificar cambios en archivos críticos del sistema
echo "Verificando integridad de archivos críticos..."
if [ -f /etc/passwd.bak ] && ! cmp -s /etc/passwd /etc/passwd.bak; then
    echo "¡Alerta! El archivo /etc/passwd ha sido modificado."
else
    echo "El archivo /etc/passwd no muestra cambios."
fi

echo "Detección básica completada. Revise los resultados para identificar posibles amenazas."

Este script realiza las siguientes comprobaciones:

  1. Busca intentos de acceso no válidos en el archivo de registro auth.log.
  2. Verifica el número de conexiones de red establecidas.
  3. Busca archivos modificados en el directorio /etc en las últimas 24 horas.
  4. Comprueba la presencia de procesos potencialmente sospechosos.
  5. Verifica si ha habido cambios en el archivo crítico /etc/passwd.

3. Script 2: Análisis de Intentos de Acceso No Válidos

Este script se enfoca en analizar los intentos de acceso no válidos en un archivo de registro específico.

#!/bin/bash

echo -n "¿Qué archivo deseas consultar?: "
read -e LOG

if [ -e $LOG ] ; then
    grep -E 'Invalid user' $LOG | tee invalid_users.log
    COUNT=$(wc -l invalid_users.log | cut -d" " -f1)
    echo "Hay un total de $COUNT intentos desde usuarios no válidos."
else
    echo "No se ha encontrado el fichero de log."
fi

Este script:

  1. Solicita al usuario el nombre del archivo de registro a analizar.
  2. Verifica la existencia del archivo.
  3. Busca líneas que contienen "Invalid user" y las guarda en un archivo separado.
  4. Cuenta y reporta el número total de intentos de acceso no válidos.

4. Script 3: Detección de Equipos en la Red Local

Este script utiliza el comando ping para detectar equipos activos en la red local.

#!/bin/bash

echo "Detectando equipos en la red local..."

# Obtener la dirección IP base
ip_base=$(ip addr | grep 'inet ' | grep -v '127.0.0.1' | awk '{print $2}' | cut -d'/' -f1 | sed 's/\.[0-9]*$/./')

for i in {1..254}
do
   ping -c 1 $ip_base$i | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" &
done

echo "Escaneo completado."

Este script:

  1. Determina automáticamente la dirección IP base de la red local.
  2. Realiza un ping a todas las posibles direcciones IP en esa red.
  3. Muestra las direcciones IP de los equipos que responden al ping.

5. Consideraciones de Seguridad

Al utilizar estos scripts, es importante tener en cuenta:

  1. Permisos: Asegúrate de tener los permisos necesarios para ejecutar estos scripts y acceder a los archivos de sistema.
  2. Uso Ético: Utiliza estos scripts solo en sistemas y redes sobre los que tengas autorización explícita.
  3. Falsos Positivos: Los resultados pueden incluir falsos positivos. Siempre verifica manualmente los hallazgos importantes.
  4. Actualizaciones: Mantén los scripts actualizados para adaptarse a nuevas amenazas y cambios en el sistema.
post_diagram.png
post_diagram.png

6. Conclusión

Los scripts de Bash son herramientas poderosas para la automatización de tareas de seguridad en Linux. Desde la detección básica de amenazas hasta el análisis de redes, estos scripts pueden mejorar significativamente la eficiencia de las auditorías de seguridad y la respuesta a incidentes. Sin embargo, es crucial utilizarlos de manera responsable y en conjunto con otras prácticas de seguridad robustas.

7. Referencias

  1. Centro de Investigaciones Sociológicas (CIS). (2024). Barómetro mensual. https://www.cis.es/
  2. RedesZone. (2017). Security Bash Scripts, un repositorio con scripts de seguridad y pentesting. https://www.redeszone.net/2017/02/20/security-bash-scripts-un-repositorio-con-scripts-de-seguridad-y-pentesting/
  3. iEspai. (2023). Explorando la Seguridad: Un Script Bash para Analizar Intentos de Acceso No Válidos en Archivos de Registro. https://www.iespai.com/2023/10/10/explorando-la-seguridad-un-script-bash-para-analizar-intentos-de-acceso-no-validos-en-archivos-de-registro/
  4. LinkedIn Learning. (2024). Seguridad ofensiva: Bash para pentesting. https://es.linkedin.com/learning/seguridad-ofensiva-bash-para-pentesting/creacion-de-scripts-de-bash-para-la-explotacion-de-vulnerabilidades-especificas
Categoría: ciberseguridad tutoriales bash script linux

Suscribirse al Feed RSS | Mapa del Sitio

© 2025 M.Castillo | Hecho con ❤️ en Emacs y org-static-blog

Visit counter For Websites