Máquina
Toolsh1
- script personalizado
- ip
- exiftool
- hydra
Pasosh1
1. Obtener la IP de la máquina vulnerableh2
ip -4 -o addr show | awk '{print $2, $4, $6}'
ip -4 -o addr show sirve para:h3
✔ Mostrar solamente direcciones IPv4
✔ En una sola línea por interfaz
✔ Con formato ideal para automatización
✔ Incluye IP + CIDR + Broadcast
✔ $2 → nombre de la interfaz
✔ $4 → dirección IP + máscara CIDR
✔ $6 → dirección de broadcast
El comando anterior nos permite obtener una visión compacta de las interfaces de red activas en nuestro Kali Linux y sus datos esenciales IPv4. Específicamente:
Ahora tenemos que obtener la IP de la máquina que queremos vulnerar. Para ello corremos el script personalizado que definimos en TOOLS/Escaneo de redes.
Una vez obtenida la IP de la máquina objetivo, procedemos a realizar la enumeración de los puertos expuestos, así como las versiones de los servicios y el sistema operativo.
2. Escaneo de puertosh2
Para ello realizamos el siguiente comando con el “nmap”:
sudo nmap -sS -sV --version-intensity 5 -O -T3 -p- 172.17.0.2
Dado que estamos operando en un ambiente controlado, pero si se estuviera en un ambiente real, tendríamos que tener en cuenta lo siguiente:
| Nivel | Nombre | Velocidad | Sigilo |
|---|---|---|---|
| T0 | paranoid | extremadamente lento | altísimo |
| T1 | sneaky | muy lento | muy alto |
| T2 | polite | lento-moderado | alto |
| T3 | normal | normal | estándar |
| T4 | aggressive | rápido | ruidoso |
| T5 | insane | extremo | detectadísimo |
sS — SYN Scan (Stealth)h2
- Sigue siendo sigiloso, no completa el 3-way handshake.
sV — Enumeración de versionesh2
- Permite identificar servicio + versión (OpenSSH 7.6p1, Apache 2.4.29, MySQL 5.7, etc.).
- Ajustado con: —version-intensity 5
¿Qué significa?h3
- La intensidad va del 0 (muy superficial) al 9 (muy agresiva).
- 5 es el punto medio recomendado en pentesting profesional:
- suficiente para identificar versiones
- sin generar tantos probes como niveles altos
- menor riesgo de activar reglas de IDS
O — Detección del sistema operativoh2
- Nmap envía pruebas ligeras para identificar el sistema operativo.
- No es completamente sigiloso, pero sigue siendo estándar en reconocimiento equilibrado.
Por qué T2 es “equilibrio”:h3
- No se ve como un ataque masivo.
- No es tan lento como T0/T1.
- IDS basados en volumen difícilmente lo marcan.
-p- — Escaneo completo de puertos (1–65535)h2
- Se mantiene para obtener máxima visibilidad.
- Con
T2, este escaneo sigue siendo razonable (minutos, no horas).
3. Análisis de puertosh2
🔸 Puerto 22 — SSHh2
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u2✔️ Versión reciente → Exploits directos poco probables.
✔️ Aun así, un Red Team buscaría:
- Credenciales débiles
- Reutilización de contraseñas (movimiento lateral)
- User-enum si está mal configurado
- Service misconfigurations
⚠️ SSH no es un objetivo directo, pero sí un vector para post-explotación si conseguimos credenciales.
🔸 Puerto 80 — HTTPh2
80/tcp open http Apache httpd 2.4.59 ((Debian))Aquí es donde pondremos la mayoría del esfuerzo de enumeración.
Un servicio web puede contener:
- rutas ocultas
- paneles de login
- inyecciones (SQLi, LFI, RCE)
- uploads vulnerables
- frameworks desactualizados
- Descubrir si hay virtual hosts
- Buscar metadatos en respuestas HTTP
4. Descubrimiento de rutas, directorios y archivosh2
Al acceder a http://172.17.0.2/ vemos lo siguiente:
Por las dudas corremos gobuster para ver si hay archivos, directorios que nos puedan interesar:
Vemos que solamente esta la imagen.jpeg. Vamos a descargar para analizar y revisar que no tenga alguna pista.
5. Análisis de imagenh2
Para ver los metadatos de la imagen vamos a utilizar la herramienta exiftool
exiftool imagen.jpeg
Vemos que en los metadatos hay un usuario llamado borazuwarah para loguearnos via SSH
6. SSHh2
💡 NOTAh3
Con el uso de hydra, pudimos encontrar el password de mario, que es “chocolate”. Cabe resaltar que como esto se trata de un laboratorio en un entorno controlado, el uso de hydra levanta alarmas.
Incluso con -t 1, este comando NO es sigiloso y en la gran mayoría de escenarios activaría alertas.
Reducir los hilos a “1” disminuye la velocidad y la carga en el sistema, pero no elimina las características de un patrón de ataque de fuerza bruta.
¿Qué sistemas defensivos lo detectarían?h3
✔ A. Logs del servidor SSHh3
Cada intento fallido se registra con entradas como:
- “Failed password for …”
- “Invalid user …”
- Authentication failure”
En ataques Hydra típicos, estas entradas aparecen decenas/centenas de veces por minuto.
✔ B. Sistemas de bloqueo automático (Fail2ban, PAM, SSHD)h3
Muchos servidores tienen reglas como:
nintentos fallidos → bloquear IP
Hydra activaría estos mecanismos casi de inmediato.
✔ C. IDS/IPS (Snort, Suricata, Zeek)h3
Detectan patrones como:
- Intentos múltiples sobre el mismo puerto
- Tráfico repetitivo con el mismo payload
- Firmas conocidas de herramientas automáticas
Estos sistemas están diseñados literalmente para detectar lo que hace Hydra.
✔ D. SIEM / SOCh3
Los módulos de correlación detectarían:
- Eventos repetidos en milisegundos
- Intentos fallidos al mismo usuario
- Volumen inusual en logs de autenticación
- Trafico SSH constante desde un host único
✔ E. Firewalls de Aplicación / Firewall perimetralh3
¿Por qué un Red Team profesional no hace esto?h3
En un Red Team corporativo, se priorizan:
- contraseñas encontradas en la web interna
- credenciales filtradas
- ingeniería social controlada
- password-spraying muy limitado
- técnicas post-explotación
- recolección de tokens y claves desde servicios ya comprometidos
La fuerza bruta es el último recurso, y casi nunca se usa. En nuestro caso, la vamos a utilizar asi que corremos el siguiente comando:
De esta forma, ya podemos acceder con usuario y su password:
7. Escalamiento de privilegiosh2
sudo -l es esencial en pentesting y hardening porque identifica vectores de escalada de privilegios. A veces un usuario tiene permitido:
- ejecutar un editor como root,
- leer archivos críticos,
- reiniciar servicios,
- lanzar binarios mal configurados.
Todo esto puede usarse para escalar.
El comando sudo -l analiza:
/etc/sudoers- Archivos en
/etc/sudoers.d/ - Alias de comandos, usuarios y grupos
- Reglas de host, runas y cmnd
Internamente, aplica el mismo motor de reglas que usa sudo al ejecutar un comando real. Al correr ese comando vemos lo siguiente:
🔸 Línea 1: (ALL : ALL) ALLh3
Significa:
El usuario puede ejecutar cualquier comando como cualquier usuario y cualquier grupo.
Esto ya es una configuración extremadamente permisiva.
🔸 Línea 2: (ALL) NOPASSWD: /bin/bashh3
Esta es la parte crítica:
El usuario puede ejecutar /bin/bash como root SIN contraseña.
Traducción para el equipo:h3
- No necesita autenticarse.
- No tiene restricciones.
- Puede lanzar una shell privilegiada.
- Esto equivale a acceso root directo.
Ya tenemos control del equipo.
- DONE