Logo

Mi Blog con Emacs y Esteroides

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

mybloggingnotes@gmail.com


20/03/2025

Botnets, Antibotnets y un Script en Bash para Detección de Botnets en Linux

Introducción

En este artículo exploraremos qué son las botnets, cómo operan y qué medidas podemos tomar para minimizar el riesgo de ser víctimas de estos ataques. Además, proporcionaremos un script en Bash que utiliza Nmap para detectar actividad sospechosa en la red y bloquear posibles amenazas.

¿Qué es una Botnet?

Una botnet es una red de dispositivos infectados (bots o zombies) controlados de manera remota por un atacante (botmaster). Estas redes suelen utilizarse para ataques de denegación de servicio (DDoS), envío masivo de spam, robo de datos y otros fines maliciosos.

Funcionamiento de una Botnet

  1. Infección: Los dispositivos son infectados mediante malware, exploits o ingeniería social.
  2. Conexión al C&C: Los bots se conectan a un servidor de comando y control (C&C) del atacante.
  3. Ejecución de ataques: El atacante emite órdenes, como lanzar ataques DDoS o robar información.
  4. Propagación: La botnet busca infectar más dispositivos, aumentando su tamaño y efectividad.

Cómo minimizar el riesgo de infección

Para evitar que nuestros dispositivos sean parte de una botnet, debemos:

  • Mantener el sistema operativo y software actualizados.
  • Usar firewalls y listas de control de acceso (ACLs) para restringir tráfico sospechoso.
  • Configurar correctamente servicios como SSH y RDP, evitando contraseñas débiles.
  • Escanear la red regularmente en busca de actividad sospechosa.

Detección y bloqueo de Botnets con Bash y Nmap

A continuación, presentamos un script en Bash que escanea la red en busca de actividad sospechosa y bloquea dispositivos potencialmente infectados.

#!/bin/bash
# Script Antibotnet con Nmap
# Autor: M. Castillo
# Fecha: 2025-03-20

LOGFILE="/var/log/antibotnet.log"
NETWORK="192.168.1.0/24"
PORTS="23,445,8080,1080,6667,22"

# Verifica permisos de root
if [[ $EUID -ne 0 ]]; then
    echo "Este script debe ejecutarse como root." >&2
    exit 1
fi

# Escanea la red en busca de puertos abiertos usados por botnets
scan_network() {
    echo "[+] Escaneando la red..." | tee -a $LOGFILE
    nmap -p $PORTS --open -oG - $NETWORK | awk '/open/ {print $2}' > /tmp/suspicious_ips.txt

    if [[ ! -s /tmp/suspicious_ips.txt ]]; then
        echo "[+] No se detectó actividad sospechosa." | tee -a $LOGFILE
    else
        echo "[*] Se detectaron IPs sospechosas:" | tee -a $LOGFILE
        cat /tmp/suspicious_ips.txt | tee -a $LOGFILE
    fi
}

# Bloquea las IPs sospechosas
block_hosts() {
    while read -r ip; do
        echo "[!] Bloqueando IP sospechosa: $ip" | tee -a $LOGFILE
        iptables -A INPUT -s $ip -j DROP
    done < /tmp/suspicious_ips.txt
}

scan_network
block_hosts

exit 0

Uso del Script

  1. Guardar el script y otorgarle permisos de ejecución:

    chmod +x antibotnet.sh
    
  2. Ejecutarlo como root:

    sudo ./antibotnet.sh
    
  3. Revisar el log en /var/log/antibotnet.log para analizar los resultados.

Conclusión

Este script ayuda a identificar y bloquear dispositivos sospechosos en la red, reduciendo el riesgo de infección por botnets. Sin embargo, la seguridad debe abordarse desde múltiples ángulos, combinando medidas preventivas y herramientas de detección.

Referencias

Categoría: botnet antibotnet ciberseguridad script linux

Suscribirse al Feed RSS | Mapa del Sitio

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

Visit counter For Websites