Volver al laboratorio ~/iphobiuss/guias/00-setup

Fundamentos & setup

SETUP KALI METODOLOGÍA ARSENAL GLOSARIO

La base común de toda la serie de writeups. Antes de meterte en Cap, Knife o Forest, esto es lo que se repite en cada máquina: cómo montar el entorno, la metodología, los reflejos que se aplican una y otra vez, y el arsenal explicado por propósito: no la sintaxis, sino cuándo usar cada herramienta y por qué. Si empiezas de cero, léela primero. Si ya estás en una máquina, úsala como referencia.

Mi cuadernoFavoritos y lectura guardados solo en este navegador.El punto de lectura se actualiza al desplazarte.Cuaderno opcional no disponible.
En esta guía
Qué NO es esto: no es un cheatsheet de comandos para copiar. Para eso está la sección CHEATSHEET del knowledge base. Aquí lo que importa es el porqué y el cuándo: el criterio que hace que un comando sirva. Los writeups traen los comandos en contexto; esta guía trae el andamiaje que los une.

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

El primer muro real de todo principiante: llegar a la máquina.

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.

Comandos / terminal
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áquina
UNA VPN A LA VEZSi levantas una segunda VPN sin cerrar la anterior, Linux crea tun1 (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 vesQué significaQué hacer
TLS handshake / key negotiation timed outTus 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 UnreachableEl 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.

LA IP NO ES ETERNALa IP de una máquina de HTB cambia si la reinicias, si cambias de servidor VPN, o entre sesiones. Antes de atacar, confirma siempre la IP actual en la web. Nunca la asumas de memoria.
▚

02 · METODOLOGÍA

Los hábitos que separan a quien entiende de quien copia comandos.

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.

Comandos / terminal
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 primer movimiento de todo pentest: qué puertas hay abiertas.

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 vesSO 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.

Comandos / terminal
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.

MUCHOS PUERTOS = DOMAIN CONTROLLER2-3 puertos es una Linux típica. 20+ puertos con Kerberos (88) + LDAP (389/636) + SMB (445) + DNS (53) juntos = un Domain Controller de Active Directory. La explosión de puertos es, en sí misma, una pista.
▚

04 · REFLEJOS DEL OFICIO

Patrones que se aplican una y otra vez, máquina tras máquina.

Desplaza la tabla horizontalmente. Con teclado, enfócala y usa las flechas ← →.

SituaciónReflejo
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 navegarlaMirar lo que hay por debajo: cabeceras HTTP con curl -I revelan servidor, SO y versiones.
Consigo unas credenciales en un servicioProbarlas en todos los demás servicios (password reuse). La gente reutiliza contraseñas; casi siempre pagan.
Voy a ejecutar un exploit descargadoLeerlo 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ñaCrackearlo offline (silencioso, ilimitado). john si no hay GPU; hashcat con GPU. rockyou como diccionario.
Estoy en una máquina de Active DirectoryKerberos 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 ADValidarlas (netexec), ver dónde entran (SMB/WinRM), y mapear el dominio con BloodHound para el camino a Domain Admin.
▚

05 · ARSENAL POR PROPÓSITO

Qué es cada herramienta y CUÁNDO usarla, no la sintaxis.

Desplaza la tabla horizontalmente. Con teclado, enfócala y usa las flechas ← →.

FaseHerramientaPara qué sirve · cuándo
RECONnmapDescubrir puertos y servicios. Siempre el primer paso frente a una IP.
RECONcurl -ILeer cabeceras HTTP de una web. Cuando la página no da pistas a la vista (fingerprinting de versiones).
ENUMnetexec (ex-crackmapexec)Hablar SMB/WinRM/LDAP con o sin credenciales. Enumerar usuarios anónimos, validar credenciales, ver si dan shell (Pwn3d!).
ENUMrpcclientConsultar el dominio por RPC vía sesión nula. Alternativa para enumerar usuarios cuando SMB no basta.
ENUM (AD)bloodhound-ce-python + BloodHound CERecolectar y dibujar el dominio como grafo. Calcula el camino más corto a Domain Admin. La herramienta estrella de AD.
EXPLOITsearchsploit / Exploit-DBBuscar exploits públicos para una versión concreta. Tras identificar software vulnerable.
EXPLOITGTFOBinsCó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-GetNPUsersAS-REP Roasting: pedir el hash de usuarios sin pre-autenticación de Kerberos. Tras enumerar usuarios.
ACCESOnc (netcat)Ponerse a la escucha para recibir una reverse shell (nc -lvnp). La "navaja suiza" de red.
ACCESOsshShell remota en Linux con credenciales. El destino a donde llegas tras encontrar usuario+contraseña.
ACCESO (Win)evil-winrmShell remota PowerShell en Windows (el "SSH de Windows"). Con credenciales o con hash (-H, Pass-the-Hash).
CRACKINGjohn / hashcatRomper 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-secretsdumpDCSync: volcar todos los hashes del dominio abusando de la replicación. Tras conseguir derechos de replicación.
ANÁLISISWiresharkLeer 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

El vocabulario mínimo que verás en cada writeup.
Shell
Acceso a la línea de comandos de la máquina objetivo. Pasar de "mirar desde afuera" a "estar adentro".
Reverse shell
Conseguir una shell sin credenciales haciendo que la víctima te llame de vuelta a tu IP+puerto (no al revés).
Foothold
El primer acceso conseguido en una máquina, normalmente como un usuario de pocos privilegios.
Privesc
Escalada de privilegios: pasar de usuario común a administrador total (root en Linux, Administrator/Domain Admin en Windows).
Hash
Huella de una sola vía de una contraseña: se calcula fácil en un sentido, pero no se descifra de vuelta (no es cifrado). No es la contraseña; se intenta adivinar comparando huellas (crackear offline) o, en Windows, se usa el hash directo (Pass-the-Hash).
User / Root flag
Los dos "trofeos" de una máquina HTB: user.txt (usuario normal) y root.txt (administrador). Prueban el compromiso.
$ vs #
El prompt te dice quién eres en Linux: $ = usuario normal; # = root (superusuario).
RCE
Remote Code Execution: ejecutar tus comandos en un servidor remoto explotando una vulnerabilidad.
IDOR
Acceder a objetos ajenos cambiando un ID predecible en una URL, porque la app no verifica permisos.
Password reuse
Reutilización de la misma contraseña en varios servicios. Un par de credenciales puede abrir varias puertas.
Pass-the-Hash
Autenticarse en Windows con el hash NTLM de una cuenta, sin conocer la contraseña en texto.
DCSync
Abusar de la replicación entre Domain Controllers para pedirle al DC todos los hashes del dominio.

¿Quieres más profundidad por técnica? El GLOSARIO y el knowledge base cubren cada área con prerequisitos, detección y mitigación.

▚

CHECKLIST DE ARRANQUE

Antes de cada máquina, recorre esto.