Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
network-security-snort — Laboratorio de Snort 3 IDS → IPS en Kali. Reglas de detección personalizadas + aplicación de iptables contra reconocimiento ICMP, escaneos SYN de Nmap, fuerza bruta FTP de Hydra y backdoor de vsftpd 2.3.4 (CVE-2011-2523). | Kitploit
Herramientas/GitHubGitHub/taisa456/network-security-snort
Herramientas DefensivasAnálisis de VulnerabilidadesExplotaciónEvasión de IDS/IPSSeguridad de RedesPruebas de PenetraciónDetección de IntrusionesAprendizaje y EducaciónLabs y Práctica

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
GitHubtaisa456/network-security-snort

network-security-snort

Laboratorio de Snort 3 IDS → IPS en Kali. Reglas de detección personalizadas + aplicación de iptables contra reconocimiento ICMP, escaneos SYN de Nmap, fuerza bruta FTP de Hydra y backdoor de vsftpd 2.3.4 (CVE-2011-2523).

Ver Repositorio
6hace 3 mesesAún no revisado
Compartir

Laboratorio de Implementación de Snort IDS/IPS

Un despliegue completo de Snort 3 como Sistema de Detección de Intrusiones (monitoreo pasivo) y como Sistema de Prevención de Intrusiones (bloqueo activo mediante iptables), validado contra cuatro vectores de ataque en una red virtual de tres máquinas sobre Kali Linux.

El laboratorio demuestra la distinción operativa entre detección y prevención ejecutando una cadena de ataque idéntica de cuatro vectores dos veces: primero contra un IDS que registra pero no puede bloquear, y luego contra un IDS + capa IPS con iptables que elimina ataques selectivamente mientras preserva el tráfico legítimo.


Tabla de Contenidos

  • Lab Environment
  • Network Topology
  • Methodology
  • Snort Configuration
  • Custom Detection Rules
  • Stage 1 — IDS Mode
  • Stage 2 — IPS Mode
  • IDS vs IPS — Side-by-Side Results
  • Discussion
  • Architecture Note
  • Repository Structure
  • Reproducing the Lab
  • Ethical Disclaimer
  • License

Entorno del Laboratorio

ComponenteDetalles
Analizador / RouterKali Linux — 3 adaptadores: eth0 WAN (192.168.10.143, NAT), eth1 LAN1 (10.10.10.1, solo anfitrión), eth2 LAN2 (192.168.50.1, solo anfitrión)
AtacanteKali Linux — eth0 en VMnet9 (10.10.10.10) — puerta de enlace predeterminada 10.10.10.1
ObjetivoMetasploitable 2 — eth0 en VMnet10 (192.168.50.10) — puerta de enlace predeterminada 192.168.50.1
Versión de SnortSnort++ 3.12.1.0-0kali1 (instalado en el Analizador)
Herramientas de ataqueNmap 7.99, Hydra v9.6, Metasploit Framework (msfconsole)
VirtualizaciónVMware — VMnet9 = 10.10.10.0/24, VMnet10 = 192.168.50.0/24 (ambos solo anfitrión)

Topología de Red

Todo el tráfico entre el Atacante y Metasploitable se fuerza a través del Analizador, convirtiéndolo en el punto de estrangulamiento natural tanto para el monitoreo como para la aplicación.

root@kitploit:~
                           ┌─────────────────────────┐
                           │   Analizador / Router   │
                           │   Kali + Snort 3        │
                           │                         │
   Atacante Kali ──VMnet9──┤ eth1: 10.10.10.1        │
   10.10.10.10             │                         │
                           │ eth0: 192.168.10.143 ───┼──> WAN (NAT)
                           │                         │
   Metasploitable 2 ─VMnet10┤ eth2: 192.168.50.1     │
   192.168.50.10           │                         │
                           └─────────────────────────┘

Reemplace este boceto ASCII con screenshots/01-network-topology.png una vez que tenga la figura en su lugar: Topology


Metodología

El laboratorio se ejecuta en dos etapas con una cadena de ataque idéntica de cuatro vectores en cada una:

  1. Reconocimiento ICMP — ping para descubrimiento de host
  2. Escaneo SYN de Nmap — nmap -sS para enumeración de puertos (1000 puertos)
  3. Ataque de fuerza bruta FTP con Hydra — ataque de credenciales contra el servicio vsftpd
  4. Puerta trasera vsftpd 2.3.4 — exploit de Metasploit para CVE-2011-2523

Etapa 1 (IDS) ejecuta Snort pasivamente en el Analizador con cinco reglas personalizadas — observe las alertas en tiempo real, confirme que la explotación continúa de todos modos.

Etapa 2 (IPS) combina Snort con una capa de aplicación de iptables utilizando reglas de descarte quirúrgicas — confirme que los ataques son bloqueados mientras que el ping ICMP y el inicio de sesión FTP legítimo permanecen funcionales.

Configuración previa al despliegue

  1. Configure el Analizador con tres NICs en VMware (dos solo anfitrión, una NAT/puente).
  2. Habilite el reenvío de IP y agregue reglas MASQUERADE + FORWARD para que el Analizador enrute entre subredes y hacia la WAN — consulte scripts/router_config.sh.
  3. Verifique la conectividad integral desde cada VM con scripts/ping_check.sh antes de instalar Snort.

Configuración de Snort

Snort se instala a través del administrador de paquetes de Kali (sudo apt install snort -y) y se configura en /etc/snort/snort.conf:

root@kitploit:~
HOME_NET = "10.10.10.0/24,192.168.50.0/24"
EXTERNAL_NET = "any"

ips = {
    enable_builtin_rules = true,
    include = "/etc/snort/rules/local.rules",
    variables = default_variables
}

alert_fast = { file = true, packet = false }

HOME_NET cubre ambas subredes internas para que Snort trate todo el tráfico entre subredes en el Analizador como digno de inspección. alert_fast produce alertas compactas de una línea (el registro por paquete generaría un volumen excesivo).

Validación de configuración:

root@kitploit:~
sudo snort -T -c /etc/snort/snort.conf
# Resultado: 652 reglas cargadas (5 personalizadas de texto + 647 integradas), 0 advertencias

Reglas de Detección Personalizadas

Cinco reglas en /etc/snort/rules/local.rules (archivo completo en scripts/local.rules):

SIDNombreDisparador
1000001ICMP Ping DetectadoCualquier tráfico ICMP en cualquier dirección — captura pings de reconocimiento
1000002Intento de Conexión FTPCualquier conexión TCP al puerto 21 — captura tráfico legítimo y de fuerza bruta
1000003Posible Escaneo SYN de NmapPaquetes TCP con solo el flag SYN establecido (flags:S) — la firma de un escaneo de media apertura
1000004Intento de Puerta Trasera VSFTPD 2.3.4content:":)" en el puerto FTP 21 — la cadena exacta de activación de CVE-2011-2523
1000005Posible Shellcode de Metasploit`content:"

Etapa 1 — Modo IDS

Snort se ejecuta en modo pasivo en ambas interfaces internas:

root@kitploit:~
sudo snort -c /etc/snort/snort.conf -i eth1 -i eth2 \
    -A alert_fast -l /var/log/snort/

# Observe las alertas en una segunda terminal:
sudo tail -f /var/log/snort/alert_fast.txt

La salida de inicio confirma pcap DAQ configured to passive — Snort ve cada paquete pero no puede descartar ni modificar ninguno.

Resultados del IDS

Después de ejecutar scripts/attack_simulator.sh desde el Atacante:

AtaqueDetecciónResultado
Reconocimiento ICMP✅ SID 1000001 — alertas bidireccionalesPing completado
Escaneo SYN de Nmap✅ SID 1000003 — miles de alertas en <1 segundo23 puertos abiertos enumerados
Fuerza bruta FTP con Hydra✅ SID 1000002 — alertas repetidas de conexión FTPCredenciales msfadmin:msfadmin descifradas
Puerta trasera vsftpd 2.3.4✅ SID 1000004 — coincidencia de contenido :) disparadaShell Meterpreter como root obtenida

El IDS detectó todo y no detuvo nada. Esta es la lección central de la Etapa 1: un IDS funcional sin aplicación es un sistema de alarma, no una cerradura. Para cuando un analista de SOC lee las alertas, el atacante ya es root.

Una observación secundaria: las reglas integradas de Snort (116:408, 116:414) se disparan con tráfico de difusión DHCP — no es malicioso, pero en un despliegue de producción necesitarían reglas de supresión para mantener el registro de alertas accionable.


Etapa 2 — Modo IPS

La capa IPS se despliega con scripts/ips_setup.sh, que:

  1. Vacía las reglas existentes de iptables
  2. Vuelve a habilitar el reenvío de IP y reaplica el enrutamiento base
  3. Aplica cuatro reglas de descarte quirúrgicas dirigidas a firmas de ataque específicas
  4. Lanza Snort en modo demonio (-D) para registro continuo

Reglas de iptables

ReglaLo que hace
ACCEPT icmpPermite explícitamente todo ICMP — preserva las verificaciones de conectividad
DROP tcp dpt:21 STRING ":)"Descarta paquetes que contienen el disparador de la puerta trasera vsftpd 2.3.4 en el puerto 21
ACCEPT tcp --syn -m limit --limit 10/s --limit-burst 20Permite apretones de manos TCP normales dentro del límite de velocidad
DROP tcp --syn (después del límite)Descarta inundaciones SYN que excedan 10/s — derrota escaneos SYN de Nmap
DROP tcp dpt:21 -m connlimit --connlimit-above 5 --connlimit-mask 32Bloquea > 5 conexiones FTP concurrentes por origen — derrota el paralelismo de Hydra
ACCEPT eth1→eth0, ACCEPT eth2→eth0Enrutamiento de salida normal
ACCEPT -m conntrack --ctstate RELATED,ESTABLISHEDStateful — preserva sesiones establecidas

Resultados del IPS

El mismo script de ataque se volvió a ejecutar desde el Atacante:

AtaqueResultado de la Etapa 2
Reconocimiento ICMP✅ Permitido (intencional)
Escaneo SYN de Nmap❌ Bloqueado — 1000 puertos tcp filtrados (sin respuesta), el escaneo tomó 21.71 s en lugar de <1 s
Fuerza bruta FTP con Hydra❌ Bloqueado — todos los hijos fueron deshabilitados debido a demasiados errores de conexión — 0 contraseñas válidas encontradas
Puerta trasera vsftpd❌ Bloqueado — Rex::ConnectionTimeout — Exploit completado, pero no se creó ninguna sesión

Tráfico normal preservado

Dos verificaciones manuales confirmaron la aplicación selectiva:

  • ping -c 4 192.168.50.10 → 4 paquetes transmitidos, 4 recibidos, 0% pérdida
  • ftp 192.168.50.10 con msfadmin:msfadmin → 220 (vsFTPd 2.3.4) … 230 Login successful

Prueba cuantitativa de los contadores de paquetes de iptables durante la ejecución: 2051 paquetes aceptados, 12 paquetes descartados por la regla connlimit de FTP, 808 paquetes ICMP aceptados — aplicación selectiva en números.

Registro continuo de Snort

Incluso en modo IPS, Snort continuó disparando alertas SID 1000002 / 1000003 en paquetes que llegaron a su punto de inspección pasiva antes de que iptables descartara los posteriores — lo que significa que iptables proporciona aplicación mientras Snort proporciona registro de auditoría, operando en conjunto.


IDS vs IPS — Resultados Comparativos

Ataque / TráficoEtapa 1 (solo IDS)Etapa 2 (IDS + iptables IPS)
Ping ICMPDetectado ✅Permitido ✅ (intencional)
Escaneo SYN de NmapDetectado — 23 puertos abiertos encontradosBloqueado — 1000 filtrados
Fuerza bruta FTP con HydraDetectado — msfadmin:msfadmin descifradoBloqueado — 0 contraseñas encontradas
Exploit vsftpd 2.3.4Detectado — Shell Meterpreter como rootBloqueado — tiempo de espera de conexión
Inicio de sesión FTP legítimon/aPreservado (230 Login successful)

Discusión

¿Fueron detectados todos los ataques simulados en modo IDS?

Sí — cada uno de los SIDs 1000001–1000004 se dispararon correctamente durante la simulación de ataque:

  • Ping ICMP (1000001) — alertas bidireccionales para cada eco/respuesta.
  • Escaneo SYN de Nmap (1000003) — inundación de alertas en milisegundos, aleatorización característica del puerto de origen.
  • Fuerza bruta FTP (1000002) — rastro de auditoría limpio de los intentos de conexión paralelos de Hydra con marcas de tiempo exactas.
  • Puerta trasera vsftpd (1000004) — la coincidencia de contenido :) atrapó la secuencia exacta de bytes del exploit.

Pero detección ≠ prevención. El exploit de vsftpd abrió un shell Meterpreter como root mientras cada alerta se disparaba. Un analista de SOC observando el IDS en tiempo real habría visto el compromiso — pero con el atacante ya siendo root en segundos, la alerta por sí sola no es suficiente. Este es el núcleo operativo de por qué existe el IPS.

¿Qué tan efectivo fue el IPS para bloquear ataques sin romper el tráfico normal?

La implementación logró una mitigación completa de ataques con cero impacto observable en el tráfico legítimo. La efectividad proviene del diseño quirúrgico de reglas — cada regla de iptables apunta a una firma de comportamiento, no a un protocolo amplio:

  • Límite de velocidad SYN rompe el patrón de inundación de escaneos de puertos sin afectar apretones de manos normales.
  • connlimit por origen bloquea el paralelismo de herramientas de fuerza bruta sin romper FTP de sesión única.
  • Coincidencia STRING descarta la carga útil exacta del exploit sin filtrar tráfico legítimo de inicio de sesión FTP.

Una limitación reconocida: ICMP está completamente permitido, lo que significa que un atacante aún puede confirmar que Metasploitable está activo mediante ping. En un entorno de mayor seguridad, esto se limitaría en velocidad o se restringiría a fuentes confiables. En este laboratorio, ICMP es el mecanismo principal de verificación de conectividad, por lo que permanece abierto.

Máquina Snort dedicada vs. complemento pfSense/OPNsense

Este laboratorio utiliza una máquina Snort dedicada. En comparación con ejecutar Snort como un complemento dentro de un dispositivo de firewall como pfSense u OPNsense:

Ventajas del enfoque dedicado:

  • Aislamiento de rendimiento — CPU y RAM completos disponibles exclusivamente para inspección de paquetes; sin contención con enrutamiento, DHCP, VPN, DNS.
  • Flexibilidad de posicionamiento — el IDS/IPS puede colocarse en línea, en un puerto SPAN/mirror, o en un límite de segmento interno para monitorear tráfico este-oeste que nunca llega al firewall perimetral.
  • Control total de configuración — cada preprocesador, configuración DAQ, complemento de salida y programación de actualización de reglas es configurable a través de CLI. pfSense expone solo un subconjunto a través de su GUI.
  • Resiliencia — la máquina IDS/IPS puede fallar-abierto o fallar-cerrado independientemente del router. En pfSense, un fallo de Snort derriba tanto el enrutamiento como la detección a la vez.

Compensaciones:

  • Curva de aprendizaje más pronunciada — requiere competencia en CLI y gestión directa del conjunto de reglas.
  • Sobrecarga de mantenimiento — actualizaciones de reglas, mejoras de versión, rotación de registros, todo manual.

Snort dedicado es la opción correcta para entornos empresariales que necesitan rendimiento, posicionamiento y personalización. El enfoque del complemento pfSense/OPNsense tiene más sentido para entornos de pequeñas empresas o laboratorios domésticos que priorizan la facilidad de uso.


Nota de Arquitectura

La Etapa 2 es técnicamente Snort pasivo + aplicación con iptables, no Snort ejecutándose en modo en línea verdadero — Snort mismo registra (pcap DAQ configured to passive), e iptables realiza el descarte basado en límites de velocidad, coincidencias de cadenas y conteos de conexiones.

Este es un patrón de despliegue legítimo y común (así es como funcionan muchas pilas IDS/IPS basadas en Linux en el mundo real). Un seguimiento natural sería migrar la Etapa 2 a una configuración en línea verdadera usando snort --daq nfq (o afpacket en modo en línea) con acciones de reglas reject / drop de Snort, para que Snort mismo realice el descarte basado en la coincidencia completa de firmas en lugar de delegar en iptables.


Estructura del Repositorio

root@kitploit:~
snort-ids-ips-lab/
├── README.md                       ← este archivo
├── report/
│   ├── Snort-IDS-IPS-Report.pdf    ← informe completo del laboratorio
│   └── Snort-IDS-IPS-Report.docx   ← fuente editable
├── scripts/
│   ├── router_config.sh            ← reenvío de IP + enrutamiento iptables
│   ├── ping_check.sh               ← verificación de conectividad
│   ├── attack_simulator.sh         ← cadena de ataque de 4 vectores
│   ├── ips_setup.sh                ← reglas iptables de IPS + demonio Snort
│   └── local.rules                 ← 5 reglas personalizadas de Snort (SID 1000001-1000005)
├── screenshots/                    ← figuras del informe
├── .gitignore
└── LICENSE

Reproduciendo el Laboratorio

⚠️ Solo para uso en laboratorio. Estos scripts ejecutan exploits reales y herramientas de fuerza bruta contra un objetivo deliberadamente vulnerable. No los ejecute contra ningún sistema que no posea y para el cual no tenga autorización explícita por escrito para probar.

  1. Construya tres VMs en VMware según la topología anterior (VMnet9 y VMnet10 como solo anfitrión).
  2. En el Analizador: ejecute scripts/router_config.sh, luego scripts/ping_check.sh para confirmar la conectividad total.
  3. Instale Snort 3 en el Analizador:
    root@kitploit:~
    sudo apt update && sudo apt install snort -y
    
  4. Coloque scripts/local.rules en /etc/snort/rules/local.rules y configure HOME_NET = "10.10.10.0/24,192.168.50.0/24" en /etc/snort/snort.conf.
  5. Valide: sudo snort -T -c /etc/snort/snort.conf — espere 652 reglas cargadas, 0 advertencias.
  6. Etapa 1 — IDS:
    root@kitploit:~
    sudo snort -c /etc/snort/snort.conf -i eth1 -i eth2 -A alert_fast -l /var/log/snort/
    # En otra terminal:
    sudo tail -f /var/log/snort/alert_fast.txt
    
    En el Atacante: sudo ./scripts/attack_simulator.sh — observe las alertas disparándose y el shell Meterpreter.
  7. Etapa 2 — IPS: en el Analizador, ejecute sudo ./scripts/ips_setup.sh, luego vuelva a ejecutar la cadena de ataque en el Atacante. Confirme los bloqueos, luego pruebe manualmente:
    root@kitploit:~
    ping -c 4 192.168.50.10        # debería tener éxito
    ftp 192.168.50.10              # msfadmin / msfadmin — debería tener éxito
    

Descargo de Responsabilidad Ético

Todas las actividades documentadas en este repositorio se llevaron a cabo exclusivamente dentro de un entorno de laboratorio virtual autónomo de VMware con fines académicos supervisados. No se atacaron, escanearon ni afectaron de ninguna manera sistemas externos, de producción o del mundo real. Metasploitable 2 es una máquina virtual intencionalmente vulnerable diseñada específicamente para capacitación en seguridad.

Este material no debe utilizarse para replicar estas actividades contra ningún sistema real sin autorización explícita por escrito del propietario del sistema. El escaneo de puertos no autorizado, los ataques de credenciales o la explotación de servicios de red son ilegales en la mayoría de las jurisdicciones.


Licencia

MIT — consulte LICENSE. El informe del laboratorio en sí se proporciona como referencia educativa.

Descargar herramienta