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
- Infección: Los dispositivos son infectados mediante malware, exploits o ingeniería social.
- Conexión al C&C: Los bots se conectan a un servidor de comando y control (C&C) del atacante.
- Ejecución de ataques: El atacante emite órdenes, como lanzar ataques DDoS o robar información.
- 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
Guardar el script y otorgarle permisos de ejecución:
chmod +x antibotnet.sh
Ejecutarlo como root:
sudo ./antibotnet.sh
- 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.