14 KiB
{% 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
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
SAML Overview
рд╕рд┐рдХреНрдпреЛрд░рд┐рдЯреА рдЕрд╕реЗрд░реНрд╢рди рдорд╛рд░реНрдХрдЕрдк рд▓реИрдВрдЧреНрд╡реЗрдЬ (SAML) рдкрд╣рдЪрд╛рди рдкреНрд░рджрд╛рддрд╛рдУрдВ (IdP) рдХреЛ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛рдУрдВ (SP) рдХреЛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рд┐рдВрдЧрд▓ рд╕рд╛рдЗрди-рдСрди (SSO) рдХреА рд╕реБрд╡рд┐рдзрд╛ рдорд┐рд▓рддреА рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрдИ рд▓реЙрдЧрд┐рди рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдПрдХ рд╣реА рд╕реЗрдЯ рдХреЗ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреЛ рдХрдИ рд╡реЗрдмрд╕рд╛рдЗрдЯреЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ IdPs рдФрд░ SPs рдХреЗ рдмреАрдЪ рдорд╛рдирдХреАрдХреГрдд рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП XML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рдЪрд╛рди рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рд╕реЗрд╡рд╛ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИред
Comparison between SAML and OAuth
- SAML рдХреЛ рдЙрджреНрдпрдореЛрдВ рдХреЛ SSO рд▓реЙрдЧрд┐рди рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рдЕрдзрд┐рдХ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- OAuth рдХреЛ рдЕрдзрд┐рдХ рдореЛрдмрд╛рдЗрд▓-рдлреНрд░реЗрдВрдбрд▓реА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ JSON рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ Google рдФрд░ Twitter рдЬреИрд╕реА рдХрдВрдкрдирд┐рдпреЛрдВ рдХрд╛ рд╕рд╣рдпреЛрдЧрд╛рддреНрдордХ рдкреНрд░рдпрд╛рд╕ рд╣реИред
SAML Authentication Flow
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП https://epi052.gitlab.io/notes-to-self/blog/2019-03-07-how-to-test-saml-a-methodology/ рд╕реЗ рдкреВрд░рд╛ рдкреЛрд╕реНрдЯ рджреЗрдЦреЗрдВред рдпрд╣ рдПрдХ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИ:
SAML рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрдИ рдЪрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдХреАрдорд╛ рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рд╕рдВрд╕рд╛рдзрди рдкрд╣реБрдВрдЪ рдкреНрд░рдпрд╛рд╕: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИред
- SAML рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛: SP рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдПрдХ SAML рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
- IdP рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ IdP рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, SAML рдЕрдиреБрд░реЛрдз рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИред
- IdP рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ: IdP SAML рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
- IdP рдкрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг: IdP рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рддрд╛ рд╣реИред
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдорд╛рдиреНрдпрддрд╛: IdP рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╡реИрдзрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд╣ рдЕрдиреБрд░реЛрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИред
- SAML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рд░реНрдорд╛рдг: IdP рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рд░реНрд╢рди рдХреЗ рд╕рд╛рде SAML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред
- SP рдХреЗ ACS URL рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рди: рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ SP рдХреЗ рдЕрд╕реЗрд░реНрд╢рди рдХрдВрдЬреНрдпреВрдорд░ рд╕рд░реНрд╡рд┐рд╕ (ACS) URL рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
- SAML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд╛рдиреНрдпрддрд╛: ACS SAML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИред
- рд╕рдВрд╕рд╛рдзрди рдкрд╣реБрдВрдЪ рджреА рдЧрдИ: рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдЕрдиреБрд░реЛрдзрд┐рдд рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪ рджреА рдЬрд╛рддреА рд╣реИред
SAML Request Example
рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ https://shibdemo-sp1.test.edu/secure/ рдкрд░ рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрд╕рд╛рдзрди рддрдХ рдкрд╣реБрдВрдЪ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред SP рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдХрдореА рдХреЛ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ рдФрд░ рдПрдХ SAML рдЕрдиреБрд░реЛрдз рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ:
GET /secure/ HTTP/1.1
Host: shibdemo-sp1.test.edu
...
рдХрдЪреНрдЪрд╛ SAML рдЕрдиреБрд░реЛрдз рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<?xml version="1.0"?>
<samlp:AuthnRequest ...
</samlp:AuthnRequest>
Key elements of this request include:
- AssertionConsumerServiceURL: рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ IdP рдХреЛ SAML Response рдХреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рдмрд╛рдж рдХрд╣рд╛рдБ рднреЗрдЬрдирд╛ рдЪрд╛рд╣рд┐рдПред
- Destination: рд╡рд╣ IdP рдХрд╛ рдкрддрд╛ рдЬрд╣рд╛рдБ рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред
- ProtocolBinding: SAML рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рдВрдЪрд░рдг рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
- saml:Issuer: рдЙрд╕ рдЗрдХрд╛рдИ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдиреЗ рдЕрдиреБрд░реЛрдз рд╢реБрд░реВ рдХрд┐рдпрд╛ред
Following the SAML Request generation, the SP responds with a 302 redirect, directing the browser to the IdP with the SAML Request encoded in the HTTP response's Location header. The RelayState parameter maintains the state information throughout the transaction, ensuring the SP recognizes the initial resource request upon receiving the SAML Response. The SAMLRequest parameter is a compressed and encoded version of the raw XML snippet, utilizing Deflate compression and base64 encoding.
SAML Response Example
You can find a full SAML response here. The key components of the response include:
- ds:Signature: рдпрд╣ рдЕрдиреБрднрд╛рдЧ, рдПрдХ XML Signature, рдЖрд╢реНрд╡рд╛рд╕рди рдХреЗ рдЬрд╛рд░реАрдХрд░реНрддрд╛ рдХреА рдЕрдЦрдВрдбрддрд╛ рдФрд░ рдкреНрд░рд╛рдорд╛рдгрд┐рдХрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ SAML рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджреЛ
ds:Signature
рддрддреНрд╡ рд╣реЛрддреЗ рд╣реИрдВ, рдПрдХ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдФрд░ рджреВрд╕рд░рд╛ рдЖрд╢реНрд╡рд╛рд╕рди рдХреЗ рд▓рд┐рдПред - saml:Assertion: рдпрд╣ рднрд╛рдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкрд╣рдЪрд╛рди рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред
- saml:Subject: рдпрд╣ рдЖрд╢реНрд╡рд╛рд╕рди рдореЗрдВ рд╕рднреА рдмрдпрд╛рдиреЛрдВ рдХреЗ рдкреНрд░рдореБрдЦ рд╡рд┐рд╖рдп рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИред
- saml:StatusCode: рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрд░реЛрдз рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рд╕рдВрдЪрд╛рд▓рди рдХреА рд╕реНрдерд┐рддрд┐ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИред
- saml:Conditions: рдЖрд╢реНрд╡рд╛рд╕рди рдХреА рд╡реИрдзрддрд╛ рд╕рдордп рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдЬреИрд╕реА рд╢рд░реНрддреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рджреЗрддрд╛ рд╣реИред
- saml:AuthnStatement: рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ IdP рдиреЗ рдЖрд╢реНрд╡рд╛рд╕рди рдХреЗ рд╡рд┐рд╖рдп рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд┐рдпрд╛ред
- saml:AttributeStatement: рдЖрд╢реНрд╡рд╛рд╕рди рдХреЗ рд╡рд┐рд╖рдп рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред
Following the SAML Response, the process includes a 302 redirect from the IdP. This leads to a POST request to the Service Provider's Assertion Consumer Service (ACS) URL. The POST request includes RelayState
and SAMLResponse
parameters. The ACS is responsible for processing and validating the SAML Response.
After the POST request is received and the SAML Response is validated, access is granted to the protected resource initially requested by the user. This is illustrated with a GET
request to the /secure/
endpoint and a 200 OK
response, indicating successful access to the resource.
XML Signatures
XML Signatures are versatile, capable of signing an entire XML tree or specific elements within it. They can be applied to any XML Object, not just Response elements. Below are the key types of XML Signatures:
Basic Structure of XML Signature
An XML Signature consists of essential elements as shown:
<Signature>
<SignedInfo>
<CanonicalizationMethod />
<SignatureMethod />
<Reference>
<Transforms />
<DigestMethod />
<DigestValue />
</Reference>
...
</SignedInfo>
<SignatureValue />
<KeyInfo />
<Object />
</Signature>
Each Reference
рддрддреНрд╡ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕рд╛рдзрди рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрд┐рд╕реЗ URI рд╡рд┐рд╢реЗрд╖рддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
XML рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░
- Enveloped Signature: рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЙрд╕ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рд╡рдВрд╢рдЬ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╡реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЙрд╕реА XML рд╕рдВрд░рдЪрдирд╛ рдХреЗ рднреАрддрд░ рд╣реЛрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рд╛рдордЧреНрд░реАред
рдЙрджрд╛рд╣рд░рдг:
<samlp:Response ... ID="..." ... >
...
<ds:Signature>
<ds:SignedInfo>
...
<ds:Reference URI="#...">
...
</ds:Reference>
</ds:SignedInfo>
</ds:Signature>
...
</samlp:Response>
Enveloped рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдореЗрдВ, ds:Transform
рддрддреНрд╡ рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ enveloped-signature
рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓рд┐рдкрдЯрд╛ рд╣реБрдЖ рд╣реИред
- Enveloping Signature: Enveloped рд╣рд╕реНрддрд╛рдХреНрд╖рд░реЛрдВ рдХреЗ рд╡рд┐рдкрд░реАрдд, enveloping рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕рдВрд╕рд╛рдзрди рдХреЛ рд▓рдкреЗрдЯрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
<ds:Signature>
<ds:SignedInfo>
...
<ds:Reference URI="#...">
...
</ds:Reference>
</ds:SignedInfo>
<samlp:Response ... ID="..." ... >
...
</samlp:Response>
</ds:Signature>
- Detached Signature: рдпрд╣ рдкреНрд░рдХрд╛рд░ рдЙрд╕ рд╕рд╛рдордЧреНрд░реА рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдпрд╣ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдФрд░ рд╕рд╛рдордЧреНрд░реА рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдореМрдЬреВрдж рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд▓рд┐рдВрдХ рдмрдирд╛рдП рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг:
<samlp:Response ... ID="..." ... >
...
</samlp:Response>
<ds:Signature>
<ds:SignedInfo>
...
<ds:Reference URI="#...">
...
</ds:Reference>
</ds:SignedInfo>
</ds:Signature>
рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ, XML рд╣рд╕реНрддрд╛рдХреНрд╖рд░ XML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЪреАрд▓реЗ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рд╕реЗрд╡рд╛ рдХрд░рддрд╛ рд╣реИред
References
{% 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
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.