Explotación de ACLs vulnerables
Last updated
Last updated
Para que nos se sobreponga una informacion con otra, vamos a borrar la base de datos del BloodHound
y vamos a volver a descargar con la herramienta de BloodHound
en Windows
la base de datos para cargarla de 0, primero tendremos que hacer un cambio en el DC
y sera añadir al grupo de Proyect Management
el grupo llamado Accounting
, despues añadimos al grupo Proyect Management
el grupo Office Admins
, tambien vamos añadir a 4 usuarios al grupo de Accounting
, uno de ellos tiene que llevar en la descripcion su contraseña en este caso Passw0rd5
, resetearle la contraseña a esa misma y una vez echo eso, nos descargamos la base de datos para el BloodHound
.
Esto lo hacemos por que en un caso real puede ser asi perfectamente ya que muchos usuarios tienen en la descripcion su contraseña para que el otro que venga sepa cual es, pero es una mala practica que muchas empresas siguen.
Nos pasamos el ZIP
al kali
y antes de cargarlo borramos la base de datos:
Una vez borrada, cargamos el ZIP
y buscamos lo siguiente.
Por lo que veremos algo asi:
Pongamos que en el grupo que estamos viendo de Accounting
nos esta desglosando los 7 usuarios que estan dentro de dicho grupo, pero pongamos que tenemos comprometida la maquina del usuario Annice
que esta dentro del grupo Accounting
, podremos hacer lo siguiente para escalar privilegios.
Pero si por ejemplo queremos utilizar otro grupo por que este script te genera todo de forma aleatoria, podremos hacerlo con otro, como por ejemplo con el grupo SALES
, imaginemos que de ese grupo tenemos comprometida la maquina del usuario Kettie
podremos hacer diversas cosas, pero vamos a volver a donde estabamos con el de Accounting
pongamos que tenemos esta estructura de permisos:
Si vemos que permisos tienen los grupos sobre el grupo de Project Management
, veremos lo siguiente:
Entre ellos esta Accounting
que puede hacer un GenericWrite
a dicho grupo.
Por lo que vamos a intentar convertir el usuario Annice
del grupo de Accounting
en un usuario Administrador
.
Como sabemos que su contraseña es Passw0rd5
ya que lo tiene apuntado, podremos acceder a dicho usuario, sabemos que este usuario actualmente no tiene ningun privilegio de administrador, pero vamos a intentar escalar de la siguiente forma.
Mas adelante explotaremos el privilegio de GenericWrite
, por lo que podemos ver el grupo Accounting
tambien tiene el privilegio de WriteOwner
, por lo que vamos a explotar dicho privilegio.
Si no os aparece WriteOwner
tendremos que hacer lo siguiente en un PowerShell
del DC
:
Info:
Sabiendo la ruta absoluta, pondremos el siguiente script en .ps1
.
Y si comprobamos los permisos...
Info:
Vemos efectivamente que tiene el GenericWrite
y el WriteOwner
.
Por lo que si importamos de nuevo la base de datos al BloodHound
veremos algo asi:
Ahora veremos 2 lineas apuntando al Project Managment
una siendo GenericWrite
y la otra OwnerWrite
.
Por lo que vamos a ver como explotar la vulnerabilidad de WriteOwner
.
Lo que vamos hacer primeramente es saber como acceder a la cuenta de otro usuario cuando ya previamente estamos en la cuenta de un usuario en un equipo de Windows
como por ejemplo puede ser empleado1
y queremos acceder a la cuenta de Annice
.
Lo que vamos hacer es buscar C:\Windows\System32\WindowsPowerShell\v1.0
en la carpeta y en el ejecutable de PowerShell.exe
le daremos a Shift
+ Click derecho y nos aparecera esto:
Le daremos a Ejecutar como otro usuario
.
Metemos como usuario annice.mable
y la contraseña que era Passw0rd5
.
Y vemos que estamos con dicho usuario:
Si por ejemplo no tubieramos acceso a la interfaz grafica y solo por terminal, podremos hacer lo mismo pero de la siguiente forma:
Y se nos abrira un powershell
como el usuario que especificamos como podremos ver.
Pero no podremos listar los archivo del empleado1
ya que no tenemos permiso, por lo que recomiendo hacer lo siguiente ya que tenemos el script en dicho usuario, podremos hacer que este usuario annice
tenga permisos para ello en el escritorio del empleado1
para que asi podamos cargar el script bajo el TOKEN
del usuario annice
.
Esto nos abrira la terminal bajo el usuario annice
y si probamos a listar los archivos...
Info:
Vemos que ahora si nos deja, por lo que vamos a cargar el script de PowerView
para utilizarlo.
Lo que vamos hacer es que mediante una vulnerabilidad con el WriteOwner
hagamos que el usuario anncie
sea del grupo Project Managment
.
Si nosotros nos vamos a la informacion de lo que puede hacer este permiso:
Y si nos vamos a la pestaña Windows Abuse
podremos ver como abusar de estos permisos para poder conseguir nuestro objetivo dandonos varias opciones de comandos.
Antes de ejecutar el comando para abusar de estos permisos, vamos a enumerar los grupos del dominio con el PowerShell
del empleado1
de la siguiente forma:
Info:
Lo que vamos hacer ahora es intentar meternos nosotros como Owners
del grupo Project management
que estamos identificando en la informacion del anterior comando gracias a ese privilegio que tenemos del WriteOwner
que tenemos desde el grupo Accounting
.
Por lo que vamos a utilizar el siguiente comando en la PowerShell
de Annice
:
Aqui le estamos diciendo que nos meta un nuevo Owner
en el grupo Project management
en concreto le especificamos que sea al usuario Annice
.
Y cuando lo ejecutemos no nos mostrara nada de informacion, ningun error ni nada, eso significa que se realizo correctamente.
Ahora para comprobarlo si nos vamos a nuestro DC
y nos vamos a donde estan las ACLs
y los grupos en el grupo de Project management
, vamos a seguridad
y en las opciones avanzadas
donde estan todos estos permisos, si antes era el Owner
Admins. del dominio
ahora tendremos que ver que es Annice
:
Vemos como se cambio correctamente, siendo un usuario sin ningun privilegio.
Ahora lo que vamos hacer es crear una ACL
que nos permita escribir/añadir un miembro dentro del grupo Project management
:
Esto igual no deberia de dar ningun error y ningun resultadom, pero si ahora nos volvemos a ir a nuestro DC
tendremos que ver la nueva ACL
en el grupo de Project management
.
Vemos que se ha creado correctamente, por lo que ahora si ponemos el siguiente comando para añadir un miembro a dicho grupo que sera el de annice
nuestro usuario ya que añadimos una ACL
que nos permite hacer eso, veremos que podremos añadirlo de forma correcta.
Antes de darle a ejecutar, vemos que si en nuestro DC
nos vamos a ver el usuario annice
de que grupo es, vemos que solo es de Domains Users
y Accounting
, pero cuando ejecutemos ese comando, tendremos que ver que se añadie el de Project management
:
Antes de ejecutar el comando:
Despues de ejecutar el comando:
Vemos que ha funcionado correctamente.
Ahora vamos a explotar la vulnerabilidad del permiso GenericWrite
del grupo Project management
al de Office Admins
.
Para ello el que no lo tenga configurado de esa forma, tendremos que ejecutar lo siguiente para que sea asi en el DC
:
Info:
Vemos que se configuro todo de forma correcta y si volvemos a cargar nuestra base de datos en BloodHound
veremos esto asi:
Por lo que se podra explotar ese GenericWrite
de la siguiente forma.
Esto lo que nos permite hacer es añadir directamente miembros en un grupo, que en este caso seria en el de Office Admin
.
Tendremos que cerrar la consola de Annice
y volverla abrir como hicimos antes.
Y si no nos salio ningun error y ningun resultado significa que fue todo bien, por lo que si vamos al DC
y vemos si se configuro de forma correcta...
Vemos que esta añadida correctamente, por lo que ya pertenecemos al grupo Office Admin
.
Como dentro de este grupo hereda los privilegios de Administradores de empresa
no haria falta que hicieramos nada, pero si llegamos a Administradores de empresa
para poder llegar a Admins del dominio
veremos que esta con permisos de WriteDacl
y vamos a ver como explotar esto, pero si no lo tuvierais asi configurado, se haria de la siguiente forma en el DC
:
Info:
Y en el BloodHound
se tendra que ver algo asi:
Lo que nos permite hacer este WriteDacl
es añadir una DACL
directamente al grupo DOMAIN ADMINS
por lo que haremos lo siguiente.
Tendremos que reiniciar la consola como hicimos antes...
Y si no nos salio ningun error y ningun resultado significa que fue todo bien, ahora si lo comprobamos en nuestro DC
tendremos que ver lo siguiente:
Veremos que se añadio correctamente, por lo que podremos hacer lo siguiente.
Nos vamos añadir a nosotros mismo al grupo de Domain Admins
ya que añadimos una ACL
en la cual podemos hacer eso.
Y si no nos salio ningun error y ningun resultado significa que fue todo bien, si vamos a comprobarlo en nuestro DC
veremos lo siguiente:
Vemos que funciono correctamente y ahora este usuario es Admin del dominio
por lo que tendremos el control total del dominio.