Resumen

Basic Pentesting es la primera máquina de mi serie Camino a la eJPT. Es un excelente punto de partida porque toca varias áreas que aparecen en el examen: enumeración de servicios (SMB, HTTP), fuzzing de directorios, bruteforce de SSH y crackeo de claves privadas SSH. Si estás empezando con TryHackMe y la eJPT, esta máquina es obligatoria.

AtributoValor
PlataformaTryHackMe
DificultadFácil
OSLinux
SalaBasic Pentesting
SkillsEnum SMB, Fuzzing web, SSH bruteforce, Crackeo de claves SSH

Versión en video

Si prefieres seguir el walkthrough paso a paso, continúa leyendo. El video cubre el mismo proceso en formato visual.

Herramientas usadas

  • nmap — enumeración de puertos y servicios
  • enum4linux — enumeración de SMB
  • gobuster — fuzzing de directorios web
  • hydra — bruteforce de SSH
  • ssh2john + john — extracción y crackeo del hash de la clave SSH

Resumen de la solución

  1. Nmap revela puertos SSH, HTTP, SMB y un puerto adicional
  2. Enumeración SMB con enum4linux revela dos usuarios: jan y kay
  3. Fuzzing web con gobuster descubre un directorio /development con pistas
  4. Bruteforce SSH con hydra sobre el usuario jan obtiene credenciales
  5. Dentro del sistema, se accede al id_rsa de kay (root-equivalent)
  6. La clave está protegida con passphrase, se crackea con john y se obtiene acceso final

Reconocimiento

Verificación de conectividad

ping -c 1 10.X.X.X

TTL=60 → la máquina objetivo es Linux. Esto descarta exploits típicos de Windows como SMB EternalBlue y orienta la estrategia hacia enumeración de servicios Unix.

Escaneo de puertos con Nmap

Primer barrido a todos los puertos TCP:

nmap 10.X.X.X -n -Pn -sS -p- --min-rate=5000 -oG allTCPports

Justificación de los flags:

  • -n evita resolución DNS, hace el escaneo más rápido
  • -Pn asume el host como activo, evita el ping previo (algunos firewalls bloquean ICMP)
  • -sS SYN scan — sigiloso, no completa la conexión TCP
  • --min-rate=5000 fuerza una velocidad mínima de 5000 paquetes/seg
  • -oG salida grepeable, útil para extraer puertos abiertos a otro escaneo

Una vez identificados los puertos abiertos, escaneo dirigido con detección de versiones y scripts default:

nmap 10.X.X.X -n -Pn -sS -sVC -p22,80,139,445,8009,8080 --min-rate=5000 -oN basicscan.txt

Hallazgos clave:

  • 22/tcp — OpenSSH (vector potencial de bruteforce)
  • 80/tcp — Apache (revisar contenido y fuzzing)
  • 139/445 tcp — SMB Samba (enumeración con enum4linux)
  • 8080/tcp — Apache Tomcat (posible login admin)

Enumeración SMB con enum4linux

SMB es uno de los vectores más rentables en máquinas Linux mal configuradas. Usuarios y shares mal protegidos suelen filtrar información sensible.

enum4linux -a 10.X.X.X

Hallazgo crítico: dos usuarios del sistema:

  • jan
  • kay

Esto cambia el plan: ya tenemos nombres de usuario, lo que abre la puerta a bruteforce SSH dirigido.

Enumeración del servicio web

Antes de saltar al bruteforce, revisamos la web por si hay credenciales o pistas en texto plano.

whatweb

whatweb http://10.X.X.X

Identifica el stack: Apache + tecnologías estándar. Sin nada llamativo a primera vista.

Fuzzing con gobuster

gobuster dir -u http://10.X.X.X \
  -w /usr/share/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt \
  -t 50 -x php,txt,html

Hallazgo: directorio /development accesible.

Dentro encontramos dev.txt con un mensaje firmado por dos personas, J y K — coincide con los usuarios encontrados por SMB. Las notas mencionan que J está usando una contraseña débil.

Razonamiento: este es el patrón clásico de “información que el equipo de desarrollo deja por error”. La pista está clara: jan tiene contraseña débil → bruteforce SSH dirigido a ese usuario.


Explotación

Vector de ataque

Con los hallazgos anteriores, el plan es:

  1. Bruteforce SSH al usuario jan con hydra y un wordlist común
  2. Una vez dentro, pivotear hacia kay (probablemente el usuario con más privilegios, según la firma del documento)

Bruteforce SSH con Hydra

hydra -l jan -P /usr/share/wordlists/rockyou.txt ssh://10.X.X.X -t 4

Justificación de los flags:

  • -l jan usuario único (no -L que sería lista de usuarios)
  • -P rockyou.txt el wordlist más común para passwords débiles
  • -t 4 4 tareas en paralelo (más alto puede causar bloqueos del servidor SSH)

Credenciales obtenidas: jan:armando

Acceso inicial vía SSH

ssh jan@10.X.X.X

Ya dentro del sistema con permisos limitados de jan.


Post-explotación

Identidad y contexto

id
uname -a
hostname
uid=1001(jan) gid=1001(jan) groups=1001(jan)
Linux basic-pentesting 4.4.0-...

jan es un usuario estándar sin grupos privilegiados visibles. Toca enumerar el sistema en busca del camino hacia kay o root.

Enumeración del sistema

Revisión de directorios home y archivos accesibles:

ls -la /home/
ls -la /home/kay/
ls -la /home/kay/.ssh/

Hallazgo crítico: la carpeta .ssh de kay tiene permisos de lectura para otros usuarios, lo que nos permite leer el id_rsa (clave privada SSH).

cat /home/kay/.ssh/id_rsa

Copio la clave completa a mi máquina atacante para procesarla.


Escalada de privilegios

Vector identificado

La clave privada de kay está accesible, pero está protegida con passphrase. Si logro crackear la passphrase, tendré acceso SSH directo como kay. Esto es una escalada lateral, pero kay tiene permisos elevados que jan no tiene (lo confirmaremos después).

Extracción del hash con ssh2john

john no puede atacar directamente claves SSH cifradas; primero necesitamos extraer el hash en un formato que entienda:

ssh2john id_rsa > kay_hash

Crackeo con John the Ripper

john --wordlist=/usr/share/wordlists/rockyou.txt kay_hash

Passphrase obtenida: beeswax

Acceso final como kay

chmod 600 id_rsa
ssh -i id_rsa kay@10.X.X.X

Al ingresar la passphrase, obtenemos shell como kay.

Captura del flag

cat /home/kay/pass.bak

Flag final: [contenido de pass.bak]


Lecciones aprendidas

  • SMB es oro en máquinas Linuxenum4linux debería ser de tus primeros movimientos cuando aparezcan los puertos 139/445. La lista de usuarios obtenida cambió todo el plan.
  • Las pistas en archivos .txt son intencionales — En CTFs, archivos como dev.txt, notes.md, todo.txt siempre contienen información clave. No los pases por alto.
  • Permisos mal configurados en .ssh — Una clave privada legible por otros usuarios es una vulnerabilidad común en entornos reales mal administrados. Siempre revisa /home/*/.ssh/.
  • Las passphrases de claves SSH se crackeanssh2john + john es la combinación estándar. Una passphrase débil derrota completamente la protección del cifrado de la clave.

Para la eJPT

Esta máquina ejercita habilidades directamente evaluadas en la eJPT:

  • Enumeración con Nmap (sintaxis y flags clave)
  • Enumeración SMB con enum4linux
  • Fuzzing de directorios con gobuster
  • Bruteforce con hydra
  • Manipulación de hashes y crackeo con john

Tiempo aproximado de resolución: 30-45 minutos para alguien familiarizado con las herramientas.


Referencias