Track Windows  /  Teoría
00 Cimientos · Cómo funciona Windows

Fundamentos de Windows

Antes de atacar Windows hay que entenderlo. Quién manda (SYSTEM), dónde viven las contraseñas (SAM/LSASS), qué son los privilegios de un token y por qué ciertos privilegios equivalen a ser administrador. Este módulo es el mapa mental que hace que todo lo demás tenga sentido.

🧠El mapa: kernel, userland, procesos y servicios

Windows separa el kernel (modo núcleo, acceso total al hardware) del userland (donde corren tus programas). Cada programa es un proceso con uno o más hilos, y cada proceso lleva un token de acceso que dice QUIÉN es y QUÉ puede hacer.

Serviciosprocesos que arrancan solos en segundo plano, a menudo como SYSTEM. Mal configurados = tu vía a SYSTEM.
SYSTEM (NT AUTHORITY\SYSTEM)la cuenta más poderosa de la máquina, por encima del Administrador. Tu objetivo al escalar.
Administratorsgrupo con control total; aún así, muchas acciones necesitan subir a SYSTEM o saltar UAC.
Registro (registry)la base de datos de configuración del sistema: HKLM (máquina) y HKCU (usuario). Lleno de secretos y de vectores.
SAM / LSA / LSASSla SAM guarda los hashes de las cuentas LOCALES; LSASS es el proceso que maneja credenciales en memoria. Las dos joyas.
SYSVOLrecurso compartido del dominio (en AD) con políticas y a veces contraseñas en scripts. Enumerar siempre.

🔑NTFS y permisos (ACL / ACE)

Cada fichero y carpeta tiene una ACL (lista de control de acceso) formada por ACE (entradas: quién puede leer/escribir/ejecutar). En la escalada, lo que buscas es un sitio donde TÚ puedas escribir algo que luego ejecuta alguien con más privilegios.

Owner (propietario)quien es dueño de un objeto puede cambiarle los permisos (clave en SeTakeOwnership).
Herencialos permisos bajan de la carpeta a lo que hay dentro; un directorio mal puesto contamina todo su árbol.
icacls / Get-Aclherramientas para LEER permisos: icacls C:\ruta te dice quién puede escribir.
ADS (Alternate Data Streams)NTFS deja ocultar datos en 'flujos' alternos (fichero.txt:oculto). Truco de ocultación.

👥Cuentas, grupos, SID y RID

Cada identidad tiene un SID (identificador único). El último trozo es el RID (500 = Administrador, 501 = Invitado, 1000+ = usuarios). Hay cuentas locales (en la SAM) y, en dominio, cuentas de dominio (en el DC).

Hay grupos que, aunque no sean "Administrators", te dan el control igual — grupos privilegiados:

Backup OperatorsSeBackup/SeRestore -> leer/escribir cualquier fichero -> dumpear la SAM = game over.
Server Operatorsgestionar servicios en un DC -> reconfigurar un servicio a tu payload.
Account Operatorscrear/modificar usuarios del dominio (excepto admins).
DnsAdminscargar una DLL en el servicio DNS (corre como SYSTEM en el DC).
Print OperatorsSeLoadDriver -> cargar driver vulnerable (BYOVD).
Hyper-V / Remote Management Usersaccesos que amplían tu superficie; enumerar siempre la pertenencia a grupos.

⚡Privilegios de token: el mapa 'privilegio -> ser SYSTEM'

Un token lleva privilegios. Ver los tuyos: whoami /priv. Varios de ellos, aunque estés como usuario raso, equivalen a administrador porque permiten engañar al sistema. Memoriza este mapa: es el 80% de la escalada local en Windows.

SeImpersonatePrivilegesuplantar el token de otro cliente -> familia POTATO -> SYSTEM. El rey; típico en cuentas de servicio.
SeAssignPrimaryTokenPrivilegeasignar token primario a un proceso; se combina con SeImpersonate en los Potato.
SeBackupPrivilegeleer CUALQUIER fichero saltando ACL -> copiar SAM+SYSTEM -> hashes.
SeRestorePrivilegeescribir CUALQUIER fichero/clave -> sobrescribir binarios de servicio, DLLs, registro.
SeTakeOwnershipPrivilegeapropiarte de cualquier objeto -> darte permisos -> modificarlo.
SeDebugPrivilegeabrir procesos de otros (incl. LSASS) -> volcar credenciales / inyectar / robar token.
SeLoadDriverPrivilegecargar un driver en el kernel -> BYOVD (driver vulnerable) -> SYSTEM.
SeManageVolumePrivilegeacceso de bajo nivel al volumen -> escribir donde no debes -> abuso.
SeTcbPrivilege / SeCreateTokenPrivilege'actuar como el sistema' / crear tokens arbitrarios -> SYSTEM directo.
SeRelabelPrivilegecambiar el nivel de integridad de objetos; abuso específico.

Regla: si al hacer whoami /priv ves uno de estos en estado Enabled (o activable), ya tienes el vector. Cada uno tendrá su máquina-reto dedicada.

🛡Niveles de integridad y UAC

Windows etiqueta procesos con un nivel de integridad: Low, Medium, High, System. Un usuario normal corre en Medium; un admin "real" necesita High (elevado). UAC (Control de Cuentas) es lo que hace que, aunque seas admin, tu sesión normal sea Medium hasta que apruebas el "¿permitir?". Saltarlo (UAC bypass) te lleva de Medium-admin a High sin el aviso.

Diferencia clave: "ser admin" (estar en el grupo) no es lo mismo que "estar elevado" (High). A veces el reto es pasar de admin-Medium a High/SYSTEM.

🔐Autenticación: NTLM, hashes y Kerberos (conceptos)

No necesitas la contraseña en claro: con el hash NT muchas veces basta (Pass-the-Hash).

Hash LM / NTla SAM guarda el hash NT de cada cuenta local. LM es antiguo e inseguro (casi extinto).
NetNTLMv1 / v2lo que viaja por la red al autenticar por NTLM; capturable y crackeable/relayeable.
Pass-the-Hash (PtH)usar el hash NT directamente para autenticarte, sin romper la clave.
Kerberos (TGT / TGS)el protocolo de AD: pides un TGT con tu clave, y TGS para cada servicio (por su SPN).
SPN (Service Principal Name)nombre del servicio en AD; la base de Kerberoasting (lo verás en AD-2).

🛠Herramientas base que debes dominar

Antes de las de hacking, las del propio sistema (living off the land):

cmd / PowerShellPS es el estándar; aprende a ejecutarlo saltando políticas (-ep bypass) y en una línea.
WMI / wmicconsultar el sistema a fondo: servicios, software, procesos, usuarios.
sc / netsc query, sc config; net user, net localgroup.
regleer/escribir el registro: reg query HKLM\...\.
schtasks / tasklisttareas programadas y procesos en marcha (con /svc ves qué servicio es qué PID).
"Soy Administrator pero no puedo leer la SAM / tocar C:\Windows"
Estás en Medium integrity por UAC. Necesitas una consola ELEVADA (High) o SYSTEM: salta UAC o escala. Ser del grupo no es estar elevado.
"whoami /priv me sale casi vacío"
Un usuario muy limitado tiene pocos privilegios. Enumera por otras vías (servicios, ficheros escribibles, tareas) — no todo es token.
"No sé si soy local o de dominio"
whoami te dice el dominio\usuario; si el 'dominio' es el nombre del equipo, eres local; si es un dominio AD, estás en el dominio.
🔎 No memorices comandos. Ten el Arsenal abierto en otra pestaña y busca ahí el comando exacto cuando lo necesites. Entiende el POR QUÉ aquí; el COMANDO lo copias del Arsenal.
Abrir Arsenal