En esta guía
Una convención de la serie: en los writeups verás dos etiquetas. GENERAL marca un principio transferible (sirve en cualquier máquina). LAB marca una heurística o convención de laboratorio (propia de HTB o del entorno), que no es una regla universal. La idea es clara: lo que resolvió una máquina no siempre funciona igual fuera de ella. Los marcadores entre
<...>, las IP y los nombres de ejemplo se reemplazan antes de ejecutar. Los comandos de Kali van en su terminal; los de Windows en la consola indicada. Consulta las convenciones de placeholders para distinguir marcadores, variables y payloads.
Entorno y versiones documentadas
- Kali Linux y VirtualBox: versiones no especificadas en la guía original.
- Análisis: BloodHound CE; versión exacta no indicada.
Las versiones indicadas provienen del texto original. La fecha de edición identifica la revisión de esta página; no implica que se haya repetido el laboratorio.
01 · ENTORNO & CONEXIÓN
Qué necesitas
Cuenta en Hack The Box (VIP para máquinas retiradas), Kali Linux funcionando (aquí, sobre VirtualBox), y paciencia para atascarte. Atascarse es el proceso, no un fallo del proceso.
Conectarse a la VPN
Descarga tu .ovpn del panel de la máquina en HTB y conéctate. La terminal se queda colgada mostrando logs: eso es correcto, no la cierres. Trabaja en una terminal nueva.
sudo pkill openvpn # mata cualquier VPN previa (una a la vez)
sudo openvpn ~/htb/tu_archivo.ovpn # espera "Initialization Sequence Completed"
ip a show tun0 # debe existir con IP 10.10.x.x
ping -c 3 <IP_OBJETIVO> # confirma línea con la máquinatun1 (porque tun0 sigue ocupada) y aparecen errores route ... File exists. Siempre sudo pkill openvpn antes de reconectar.Problemas típicos de VPN
Cada error dice una cosa distinta. Aprender a leerlos es media batalla:
Desplaza la tabla horizontalmente. Con teclado, enfócala y usa las flechas ← →.
| Lo que ves | Qué significa | Qué hacer |
|---|---|---|
TLS handshake / key negotiation timed out | Tus paquetes salen, nadie responde. Típico de UDP tras una VM/red restrictiva. | Protocolo TCP 443, baja un .ovpn nuevo. |
Connection refused (TCP) | Tu paquete llegó y el destino dijo "no". Ese servidor no acepta ahora. | Cambia de servidor VPN. |
Destination Host Unreachable | El gateway de HTB no encuentra el host. | La IP de la máquina cambió: verifícala en la web. |
Diagnóstico de abajo hacia arriba: antes de culpar a la VPN, confirma que Kali tiene internet (ping 8.8.8.8) y DNS (ping google.com). Si ambos van, el problema es de la VPN; si ninguno va, es la red de la VM.
02 · METODOLOGÍA
Una carpeta por máquina
Desde el día uno: cada máquina, su carpeta; todo guardado, nada suelto. Y en nmap, guardar siempre con -oA, nunca escanees sin dejar registro.
mkdir -p ~/htb/<maquina>/nmap && cd ~/htb/<maquina>Mide antes de tocar
Cuando algo falle, no cambies cinco cosas a la vez esperando que una funcione. Haz una prueba, lee el resultado, y deja que el resultado te diga qué cambiar. Un error que cambia cuando tocas algo es buena señal: significa que tu cambio tuvo efecto y estás cercando el problema.
Anota las tasks a medida
Si resuelves en Guided Mode, copia cada respuesta apenas la marcas, no al final. Muchas tasks se resuelven tempranísimo (los puertos con el primer nmap) y se olvidan al llegar al cierre. Anotar sobre la marcha hace que tu writeup salga completo solo.
Higiene de herramientas
Un dominio por análisis en BloodHound (limpia la base antes de cargar otro lab, o los grafos se contaminan). Limpia entradas viejas de /etc/hosts entre labs. Ordena para no confundirte a ti mismo.
03 · RECONOCIMIENTO
El TTL: una pista del SO, no una prueba
El ping da una pista temprana del sistema operativo. El TTL suele partir en un valor por SO y baja 1 por salto de red. Es una heurística frecuente en labs, no una identificación fiable: el TTL se puede modificar y depende de los saltos. Confírmalo siempre con el fingerprint:
Desplaza la tabla horizontalmente. Con teclado, enfócala y usa las flechas ← →.
| TTL que ves | SO que sugiere (a confirmar) |
|---|---|
~63 (parte en 64) | Linux / Unix |
~127 (parte en 128) | Windows |
El flujo de nmap
Dos pasos: primero un barrido de todos los puertos, luego un escaneo detallado solo de los que salieron abiertos.
nmap -p- --min-rate 1000 -oA nmap/allports <IP> # los 65535 puertos, rápido, guardado
nmap -sCV -p <PUERTOS_ABIERTOS> -oA nmap/detail <IP> # versión (-sV) + scripts (-sC)-p- no se salta puertos raros; --min-rate 1000 acelera; -oA guarda en tres formatos; -sCV es tu radar: qué servicio y versión corre cada puerto.
Elegir por dónde entrar
Piensa en cada puerto como una puerta y pregúntate cuánta superficie ofrece. Regla que se repite en toda la serie: atacas por donde puedes hacer algo, no por donde estás bloqueado. SSH/WinRM sin credenciales están cerrados con llave (los guardas para después); la web (HTTP) suele ser la superficie más rica para empezar.
04 · REFLEJOS DEL OFICIO
Desplaza la tabla horizontalmente. Con teclado, enfócala y usa las flechas ← →.
| Situación | Reflejo |
|---|---|
Encuentro una versión de software específica y rara (-dev, beta, RC) | Buscar de inmediato si tiene vulnerabilidad/CVE pública conocida. Una versión de desarrollo en producción es bandera roja. |
| La web no muestra nada obvio al navegarla | Mirar lo que hay por debajo: cabeceras HTTP con curl -I revelan servidor, SO y versiones. |
| Consigo unas credenciales en un servicio | Probarlas en todos los demás servicios (password reuse). La gente reutiliza contraseñas; casi siempre pagan. |
| Voy a ejecutar un exploit descargado | Leerlo antes (cat). Entender qué hace = separar entender de copiar. Nunca a ciegas. |
| Tengo un binario poco común con permisos (SUID/sudo/capabilities) | Buscarlo en GTFOBins, usando la sección del permiso que TENGO (Sudo ≠ Capabilities ≠ SUID). |
| Consigo un hash de contraseña | Crackearlo offline (silencioso, ilimitado). john si no hay GPU; hashcat con GPU. rockyou como diccionario. |
| Estoy en una máquina de Active Directory | Kerberos necesita resolver el nombre del dominio; si tu Kali no usa el DNS del DC, se mapea en /etc/hosts (común en labs, no un requisito inherente de AD). Enumerar anónimo antes que nada. |
| Consigo credenciales nuevas en AD | Validarlas (netexec), ver dónde entran (SMB/WinRM), y mapear el dominio con BloodHound para el camino a Domain Admin. |
05 · ARSENAL POR PROPÓSITO
Desplaza la tabla horizontalmente. Con teclado, enfócala y usa las flechas ← →.
| Fase | Herramienta | Para qué sirve · cuándo |
|---|---|---|
| RECON | nmap | Descubrir puertos y servicios. Siempre el primer paso frente a una IP. |
| RECON | curl -I | Leer cabeceras HTTP de una web. Cuando la página no da pistas a la vista (fingerprinting de versiones). |
| ENUM | netexec (ex-crackmapexec) | Hablar SMB/WinRM/LDAP con o sin credenciales. Enumerar usuarios anónimos, validar credenciales, ver si dan shell (Pwn3d!). |
| ENUM | rpcclient | Consultar el dominio por RPC vía sesión nula. Alternativa para enumerar usuarios cuando SMB no basta. |
| ENUM (AD) | bloodhound-ce-python + BloodHound CE | Recolectar y dibujar el dominio como grafo. Calcula el camino más corto a Domain Admin. La herramienta estrella de AD. |
| EXPLOIT | searchsploit / Exploit-DB | Buscar exploits públicos para una versión concreta. Tras identificar software vulnerable. |
| EXPLOIT | GTFOBins | Cómo abusar de un binario de Linux con permisos especiales (SUID/sudo/capabilities). En la escalada, usando la sección del permiso correcto. |
| EXPLOIT (AD) | impacket-GetNPUsers | AS-REP Roasting: pedir el hash de usuarios sin pre-autenticación de Kerberos. Tras enumerar usuarios. |
| ACCESO | nc (netcat) | Ponerse a la escucha para recibir una reverse shell (nc -lvnp). La "navaja suiza" de red. |
| ACCESO | ssh | Shell remota en Linux con credenciales. El destino a donde llegas tras encontrar usuario+contraseña. |
| ACCESO (Win) | evil-winrm | Shell remota PowerShell en Windows (el "SSH de Windows"). Con credenciales o con hash (-H, Pass-the-Hash). |
| CRACKING | john / hashcat | Romper hashes offline con diccionario. john en VM sin GPU (autodetecta el tipo); hashcat con GPU. |
| POST (AD) | PowerView (PowerShell) | Enumerar y manipular AD desde dentro: grupos, ACLs. Abusar de GenericAll/WriteDacl. |
| POST (AD) | impacket-secretsdump | DCSync: volcar todos los hashes del dominio abusando de la replicación. Tras conseguir derechos de replicación. |
| ANÁLISIS | Wireshark | Leer capturas de tráfico (PCAP). Filtrar protocolos sin cifrar (FTP, HTTP) para cazar credenciales en texto plano. |
La mayoría vienen en la instalación estándar de Kali, aunque según la versión y los metapaquetes alguna puede requerir instalarse aparte. Para CE, usa el recolector bloodhound-ce-python; bloodhound-python es la alternativa legacy con su analizador correspondiente. Registra las versiones. La URL y las credenciales iniciales de CE proceden del bootstrap o la configuración de tu despliegue, no de una contraseña universal. La suite impacket-* agrupa muchas herramientas de red Windows/AD; netexec es el sucesor de crackmapexec, quizá lo veas con el nombre viejo.
06 · CONCEPTOS BASE
$ = usuario normal; # = root (superusuario).¿Quieres más profundidad por técnica? El GLOSARIO y el knowledge base cubren cada área con prerequisitos, detección y mitigación.