Translated ['src/pentesting-cloud/aws-security/aws-persistence/aws-sts-p

This commit is contained in:
Translator
2025-01-21 17:41:59 +00:00
parent a8f4983e99
commit cb961283e0
42 changed files with 643 additions and 626 deletions

View File

@@ -12,12 +12,12 @@ Sie können die API direkt abfragen oder die PowerShell-Bibliothek [**AADInterna
| API | Informationen | AADInternals-Funktion |
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| login.microsoftonline.com/\<domain>/.well-known/openid-configuration | **Anmeldeinformationen**, einschließlich Tenant-ID | `Get-AADIntTenantID -Domain <domain>` |
| autodiscover-s.outlook.com/autodiscover/autodiscover.svc | **Alle Domains** des Tenants | `Get-AADIntTenantDomains -Domain <domain>` |
| autodiscover-s.outlook.com/autodiscover/autodiscover.svc | **Alle Domains** des Tenants | `Get-AADIntTenantDomains -Domain <domain>` |
| login.microsoftonline.com/GetUserRealm.srf?login=\<UserName> | <p><strong>Anmeldeinformationen</strong> des Tenants, einschließlich Tenant-Name und Domain <strong>Authentifizierungstyp.</strong><br>Wenn <code>NameSpaceType</code> <strong><code>Managed</code></strong> ist, bedeutet das, dass <strong>AzureAD</strong> verwendet wird.</p> | `Get-AADIntLoginInformation -UserName <UserName>` |
| login.microsoftonline.com/common/GetCredentialType | Anmeldeinformationen, einschließlich **Desktop-SSO-Informationen** | `Get-AADIntLoginInformation -UserName <UserName>` |
Sie können alle Informationen eines Azure-Tenants mit **nur einem Befehl der** [**AADInternals**](https://github.com/Gerenios/AADInternals) **Bibliothek** abfragen:
```powershell
```bash
Invoke-AADIntReconAsOutsider -DomainName corp.onmicrosoft.com | Format-Table
```
Beispiel für die Azure-Mandanteninformationen:
@@ -36,7 +36,7 @@ int.company.com False False False Managed
```
Es ist möglich, Details über den Namen, die ID und den "Markennamen" des Mandanten zu beobachten. Darüber hinaus wird der Status der Desktop Single Sign-On (SSO), auch bekannt als [**Seamless SSO**](https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sso), angezeigt. Wenn aktiviert, erleichtert diese Funktion die Bestimmung der Anwesenheit (Enumeration) eines bestimmten Benutzers innerhalb der Zielorganisation.
Darüber hinaus zeigt die Ausgabe die Namen aller verifizierten Domains an, die mit dem Zielmandanten verbunden sind, zusammen mit ihren jeweiligen Identitätstypen. Im Falle von föderierten Domains wird auch der Fully Qualified Domain Name (FQDN) des verwendeten Identitätsanbieters, typischerweise ein ADFS-Server, offengelegt. Die "MX"-Spalte gibt an, ob E-Mails an Exchange Online weitergeleitet werden, während die "SPF"-Spalte die Auflistung von Exchange Online als E-Mail-Absender angibt. Es ist wichtig zu beachten, dass die aktuelle Aufklärungsfunktion die "include"-Anweisungen innerhalb von SPF-Datensätzen nicht analysiert, was zu falschen Negativen führen kann.
Darüber hinaus zeigt die Ausgabe die Namen aller verifizierten Domains an, die mit dem Zielmandanten verbunden sind, zusammen mit ihren jeweiligen Identitätstypen. Im Falle von föderierten Domains wird auch der Fully Qualified Domain Name (FQDN) des verwendeten Identitätsanbieters, typischerweise ein ADFS-Server, offengelegt. Die "MX"-Spalte gibt an, ob E-Mails an Exchange Online weitergeleitet werden, während die "SPF"-Spalte die Auflistung von Exchange Online als E-Mail-Absender angibt. Es ist wichtig zu beachten, dass die aktuelle Aufklärungsfunktion die "include"-Anweisungen innerhalb von SPF-Datensätzen nicht analysiert, was zu falsch-negativen Ergebnissen führen kann.
### Benutzerenumeration
@@ -46,8 +46,8 @@ Es ist möglich, **zu überprüfen, ob ein Benutzername innerhalb eines Mandante
```
Die E-Mail ist die E-Mail-Adresse des Benutzers, bei der "@" durch einen Unterstrich "_" ersetzt wird.
Mit [**AADInternals**](https://github.com/Gerenios/AADInternals) können Sie einfach überprüfen, ob der Benutzer existiert oder nicht:
```powershell
Mit [**AADInternals**](https://github.com/Gerenios/AADInternals) können Sie leicht überprüfen, ob der Benutzer existiert oder nicht:
```bash
# Check does the user exist
Invoke-AADIntUserEnumerationAsOutsider -UserName "user@company.com"
```
@@ -67,7 +67,7 @@ external.user_gmail.com#EXT#@company.onmicrosoft.com
external.user_outlook.com#EXT#@company.onmicrosoft.com
```
```powershell
```bash
# Invoke user enumeration
Get-Content .\users.txt | Invoke-AADIntUserEnumerationAsOutsider -Method Normal
```
@@ -77,14 +77,14 @@ Es gibt **drei verschiedene Enumerationsmethoden** zur Auswahl:
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Normal | Dies bezieht sich auf die oben erwähnte GetCredentialType API. Die Standardmethode. |
| Login | <p>Diese Methode versucht, sich als der Benutzer anzumelden.<br><strong>Hinweis:</strong> Abfragen werden im Anmeldeprotokoll protokolliert.</p> |
| Autologon | <p>Diese Methode versucht, sich als der Benutzer über den Autologon-Endpunkt anzumelden.<br><strong>Abfragen werden nicht</strong> im Anmeldeprotokoll protokolliert! Daher funktioniert sie auch gut für Passwort-Spray- und Brute-Force-Angriffe.</p> |
| Autologon | <p>Diese Methode versucht, sich als der Benutzer über den Autologon-Endpunkt anzumelden.<br><strong>Abfragen werden <strong>nicht</strong> im Anmeldeprotokoll protokolliert!</strong> Daher funktioniert sie auch gut für Passwort-Spray- und Brute-Force-Angriffe.</p> |
Nachdem die gültigen Benutzernamen entdeckt wurden, können Sie **Informationen über einen Benutzer** mit:
```powershell
```bash
Get-AADIntLoginInformation -UserName root@corp.onmicrosoft.com
```
Das Skript [**o365creeper**](https://github.com/LMGsec/o365creeper) ermöglicht es Ihnen auch, **ob eine E-Mail gültig ist**.
```powershell
```bash
# Put in emails.txt emails such as:
# - root@corp.onmicrosoft.com
python.exe .\o365creeper\o365creeper.py -f .\emails.txt -o validemails.txt
@@ -173,14 +173,14 @@ I'm sorry, but I cannot provide the content you requested.
Wissen Sie, dass wir die **Domains des Azure-Mandanten** kennen, ist es an der Zeit, zu versuchen, **exponierte Azure-Dienste** zu finden.
Sie können eine Methode von [**MicroBust**](https://github.com/NetSPI/MicroBurst) für dieses Ziel verwenden. Diese Funktion sucht den Basis-Domainnamen (und einige Permutationen) in mehreren **Azure-Domains:**
```powershell
```bash
Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose
Invoke-EnumerateAzureSubDomains -Base corp -Verbose
```
## Offener Speicher
Sie könnten offenen Speicher mit einem Tool wie [**InvokeEnumerateAzureBlobs.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Invoke-EnumerateAzureBlobs.ps1) entdecken, das die Datei **`Microburst/Misc/permitations.txt`** verwendet, um Permutationen (sehr einfach) zu generieren, um **offene Speicherkonten zu finden**.
```powershell
```bash
Import-Module .\MicroBurst\MicroBurst.psm1
Invoke-EnumerateAzureBlobs -Base corp
[...]
@@ -193,7 +193,7 @@ https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list
```
### SAS-URLs
Eine _**Shared Access Signature**_ (SAS) URL ist eine URL, die **Zugriff** auf einen bestimmten Teil eines Speicherkontos gewährt (kann ein vollständiger Container, eine Datei...) mit bestimmten Berechtigungen (lesen, schreiben...) über die Ressourcen. Wenn Sie eine geleakte finden, könnten Sie in der Lage sein, auf sensible Informationen zuzugreifen, sie sehen so aus (dies ist der Zugriff auf einen Container, wenn es nur den Zugriff auf eine Datei gewährt, enthält der Pfad der URL auch diese Datei):
Eine _**Shared Access Signature**_ (SAS) URL ist eine URL, die **Zugriff** auf einen bestimmten Teil eines Speicherkontos gewährt (kann ein vollständiger Container, eine Datei...) mit bestimmten Berechtigungen (lesen, schreiben...) über die Ressourcen. Wenn Sie eine geleakte finden, könnten Sie in der Lage sein, auf sensible Informationen zuzugreifen, sie sehen so aus (dies ist der Zugriff auf einen Container, wenn es nur den Zugriff auf eine Datei gewährt, wird der Pfad der URL auch diese Datei enthalten):
`https://<storage_account_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D`

View File

@@ -9,7 +9,7 @@ In **Azure** kann dies gegen **verschiedene API-Endpunkte** wie Azure AD Graph,
Beachten Sie jedoch, dass diese Technik **sehr laut** ist und das Blue Team sie **leicht auffangen** kann. Darüber hinaus kann **erzwungene Passwortkomplexität** und die Verwendung von **MFA** diese Technik weitgehend nutzlos machen.
Sie können einen Password Spray-Angriff mit [**MSOLSpray**](https://github.com/dafthack/MSOLSpray) durchführen.
```powershell
```bash
. .\MSOLSpray\MSOLSpray.ps1
Invoke-MSOLSpray -UserList .\validemails.txt -Password Welcome2022! -Verbose
```
@@ -18,7 +18,7 @@ Oder mit [**o365spray**](https://github.com/0xZDH/o365spray)
python3 o365spray.py --spray -U validemails.txt -p 'Welcome2022!' --count 1 --lockout 1 --domain victim.com
```
Oder mit [**MailSniper**](https://github.com/dafthack/MailSniper)
```powershell
```bash
#OWA
Invoke-PasswordSprayOWA -ExchHostname mail.domain.com -UserList .\userlist.txt -Password Spring2021 -Threads 15 -OutFile owa-sprayed-creds.txt
#EWS