Cerrar los puertos innecesarios
El servidor del Magazzino Verdi «siempre ha funcionado así». Cuantos más servicios escuchan, a más puertas puede llamar alguien. Descubre qué está abierto en esta máquina, compáralo con el inventario de servicios autorizados y ve a escuchar qué dice el servicio que no debería estar.
Laboratorio 5 de 6 de la ruta Blue Team / Defensa. Si te atascas tienes 3 pistas, de la más vaga a la más precisa: cuestan 0, 40 y 100 XP.
Qué aprendes
Los objetivos se completan solos mientras trabajas en el terminal; cada uno vale puntos de experiencia:
- Escanear los puertos abiertos con nmap (80 XP)
- Leer el inventario de servicios autorizados (80 XP)
- Encontrar dónde está configurado el servicio en claro (grep -r) (100 XP)
- Leer el banner del servicio olvidado (nc) (140 XP)
Temas: defense, hardening, nmap, superficie.
Los comandos que usarás
El terminal es simulado y entiende unos cuarenta comandos de Linux. En este laboratorio te servirán sobre todo estos:
cat: muestra el contenido de un archivo: la forma más directa de leer configuraciones, notas y registros.nmap: descubre los hosts activos de una red y los puertos abiertos de una máquina, con servicios y versiones. Quien defiende lo usa para comparar la red real con el inventario.grep: busca las líneas que contienen una palabra, incluso en carpetas enteras con -r. Es la herramienta principal para analizar texto y registros.nc: netcat abre una conexión en bruto hacia un puerto y muestra lo que responde el servicio, incluido su mensaje de bienvenida (banner).
El entorno simulado
Trabajas en una shell de Linux simulada, en la carpeta personal del usuario runner: archivos y carpetas inventados, ningún objetivo en red.
Además de la carpeta personal hay un sistema simulado completo, con archivos de configuración, registros, usuarios y permisos que examinar.
En la máquina también funcionan servicios locales:
- FTP: la vieja transferencia de archivos que envía credenciales y datos en claro; hoy se sustituye por SFTP.
- SSH: el acceso remoto cifrado a la línea de comandos; se protege con claves en lugar de contraseñas y sin inicio de sesión directo como root.
- Web (HTTP): un servidor web con páginas, API o paneles de gestión: la parte más expuesta de casi cualquier organización.
- Telnet: el acceso remoto sin cifrado: contraseñas y comandos viajan en claro y cualquiera en la red puede leerlos.
- Base de datos: una base de datos (MySQL, MariaDB o PostgreSQL), que solo debería responder a los servicios que la usan y nunca a toda la red.
La lección de defensa
Con el laboratorio resuelto, el informe explica qué falló y cómo protegerse:
Cada servicio que escucha es superficie de ataque: hay que justificarlo o apagarlo. Un inventario de servicios autorizados (y un nmap periódico para compararlo con la realidad) saca a la luz los olvidos: un viejo telnet en un puerto inusual, un FTP superado por SFTP, una base de datos abierta a toda la red en lugar de a 127.0.0.1. Telnet y FTP envían las contraseñas en claro: cualquiera en la red las lee. Defensa: apagar lo que no hace falta, hacer que los servicios internos escuchen solo en localhost, filtrar los puertos con un cortafuegos y quitar los banners que cuentan demasiado.
Antes y después de este laboratorio
Para abrirlo debes haber resuelto:
- Banners de los servicios (Recon & Scanning, fácil)
- Endurecer SSH (Blue Team / Defensa, medio)
Después de este laboratorio puedes pasar a:
- Respuesta a un incidente (Blue Team / Defensa, difícil)
La ruta Blue Team / Defensa
Blue Team / Defensa es la ruta de quien protege. Lees los registros de acceso, cuentas los intentos fallidos para descubrir quién está forzando un inicio de sesión, reconstruyes la cronología de un incidente, comparas una configuración SSH con la recomendada, cierras los servicios inútiles y gestionas una respuesta a incidentes en cuatro tiempos: detectar, contener, limpiar, documentar. Los comandos son los mismos de las otras rutas, pero usados con los ojos de quien debe entender qué pasó e impedir que vuelva a pasar.