Translated ['src/pentesting-cloud/aws-security/aws-post-exploitation/aws

This commit is contained in:
Translator
2026-02-12 12:52:30 +00:00
parent de4b9e5155
commit 1dc859a2b9
3 changed files with 155 additions and 55 deletions
@@ -4,7 +4,7 @@
## SES
Daha fazla bilgi için bakınız:
Daha fazla bilgi için bakın:
{{#ref}}
../../aws-services/aws-ses-enum.md
@@ -12,7 +12,7 @@ Daha fazla bilgi için bakınız:
### `ses:SendEmail`
Bir e-posta gönderir.
E-posta gönderir.
```bash
aws ses send-email --from sender@example.com --destination file://emails.json --message file://message.json
aws sesv2 send-email --from sender@example.com --destination file://emails.json --message file://message.json
@@ -21,7 +21,7 @@ Henüz test edilmedi.
### `ses:SendRawEmail`
E-posta gönderir.
Bir e-posta gönderir.
```bash
aws ses send-raw-email --raw-message file://message.json
```
@@ -29,7 +29,7 @@ Henüz test edilmedi.
### `ses:SendTemplatedEmail`
Bir şablona dayalı e-posta gönder.
Bir şablona dayalı e-posta gönderir.
```bash
aws ses send-templated-email --source <value> --destination <value> --template <value>
```
@@ -37,7 +37,7 @@ Henüz test edilmedi.
### `ses:SendBulkTemplatedEmail`
Bir e-postayı birden fazla hedefe gönder
Bir e-postayı birden fazla alıcıya gönderir.
```bash
aws ses send-bulk-templated-email --source <value> --template <value>
```
@@ -45,13 +45,13 @@ Henüz test edilmedi.
### `ses:SendBulkEmail`
Birden fazla hedefe e-posta gönderir.
Bir e-postayı birden çok hedefe gönderir.
```
aws sesv2 send-bulk-email --default-content <value> --bulk-email-entries <value>
```
### `ses:SendBounce`
Alınan bir e-posta üzerinde **bounce e-postası** gönderir (e-postanın alınamadığını bildirir). Bu, e-postayı aldıktan sonra **en fazla 24 saat içinde** yapılabilir.
Alınan bir e-posta üzerine **bounce email** gönderin (e-postanın alınamadığını belirtir). Bu, e-posta alındıktan **sonraki 24 saat içinde** yapılabilir.
```bash
aws ses send-bounce --original-message-id <value> --bounce-sender <value> --bounced-recipient-info-list <value>
```
@@ -59,11 +59,23 @@ Henüz test edilmedi.
### `ses:SendCustomVerificationEmail`
Bu, özelleştirilmiş bir doğrulama e-postası gönderir. Şablon e-postayı oluşturmak için ayrıca izinlere ihtiyaç duyabilirsiniz.
Bu, özelleştirilmiş bir doğrulama e-postası gönderecektir. Şablon e-postayı oluşturmak için ayrıca izinlere ihtiyacınız olabilir.
```bash
aws ses send-custom-verification-email --email-address <value> --template-name <value>
aws sesv2 send-custom-verification-email --email-address <value> --template-name <value>
```
Henüz test edilmedi.
## WorkMail pivot ile SES sandbox'ını atlatma
`ses:GetAccount` hesabın hâlâ SES sandbox'ında olduğunu ve `ses:ListIdentities` hiçbir doğrulanmış gönderici döndürmediğini gösterdiğinde, saldırganlar organizasyonlar oluşturarak, alan adlarını doğrulayarak ve posta kutuları kaydederek hemen göndermek için **pivot to WorkMail** yapabilir (sandbox yok ve daha yüksek varsayılan kotalar).
{{#ref}}
../aws-workmail-post-exploitation/README.md
{{#endref}}
## Kaynaklar
- [Threat Actors Using AWS WorkMail in Phishing Campaigns](https://www.rapid7.com/blog/post/dr-threat-actors-aws-workmail-phishing-campaigns)
{{#include ../../../../banners/hacktricks-training.md}}
@@ -0,0 +1,76 @@
# AWS - WorkMail Post Exploitation
{{#include ../../../../banners/hacktricks-training.md}}
## WorkMail'i kullanarak SES sandbox'ını atlatma
Even if SES is stuck in the **sandbox** (verified-recipient only, ~200 msgs/24h, 1 msg/s), WorkMail has no equivalent restriction. Uzun süreli anahtarlara sahip bir saldırgan geçici mail altyapısı kurup hemen göndermeye başlayabilir:
1. **WorkMail org oluştur (bölgeye özel)**
```bash
aws workmail create-organization --region us-east-1 --alias temp-mail --directory-id <dir-id-if-reusing>
```
2. **Saldırgana ait domainleri doğrulama** (WorkMail, SES API'lerini `workmail.amazonaws.com` olarak çağırır):
```bash
aws ses verify-domain-identity --domain attacker-domain.com
aws ses verify-domain-dkim --domain attacker-domain.com
```
3. **Posta kutusu kullanıcıları oluştur** ve kaydet:
```bash
aws workmail create-user --organization-id <org-id> --name marketing --display-name "Marketing"
aws workmail register-to-work-mail --organization-id <org-id> --entity-id <user-id> --email marketing@attacker-domain.com
```
Notlar:
- AWS tarafından belgelenen varsayılan **recipient cap**: **100,000 external recipients/day per org** (kullanıcılar arasında toplanır).
- Domain doğrulama etkinlikleri CloudTrail'de SES altında görünecektir ancak `invokedBy`: `workmail.<region>.amazonaws.com` ile, bu nedenle SES doğrulama olayları SES kampanyalarından ziyade WorkMail kurulumu ile ilişkili olabilir.
- WorkMail posta kutusu kullanıcıları, IAM kullanıcılarından bağımsız olarak **application-layer persistence** haline gelir.
## Gönderim yolları ve telemetri boşlukları
### Web istemcisi (WorkMail UI)
- CloudTrail'de **`ses:SendRawEmail`** eventleri olarak görünür.
- `userIdentity.type` = `AWSService`, `invokedBy/sourceIPAddress/userAgent` = `workmail.<region>.amazonaws.com`, bu yüzden **gerçek istemci IP'si gizlenir**.
- `requestParameters` yine de sender'ı leak eder (`source`, `fromArn`, `sourceArn`, configuration set) ve yeni doğrulanmış domain/posta kutuları ile korelasyon yapmak için bilgi verir.
### SMTP (en gizli)
- Uç nokta: `smtp.mail.<region>.awsapps.com:465` (SMTP over SSL) ve posta kutusu parolası ile.
- **No CloudTrail data events** SMTP teslimi için oluşturulmaz, SES data events etkin olsa bile.
- İdeal tespit noktaları **org/domain/user provisioning** ve sonraki web üzerinden gönderilen `SendRawEmail` eventlerinde referans verilen SES identity ARN'leridir.
<details>
<summary>Example SMTP send via WorkMail</summary>
```python
import smtplib
from email.message import EmailMessage
SMTP_SERVER = "smtp.mail.us-east-1.awsapps.com"
SMTP_PORT = 465
EMAIL_ADDRESS = "marketing@attacker-domain.com"
EMAIL_PASSWORD = "SuperSecretPassword!"
target = "victim@example.com" # can be unverified/external
msg = EmailMessage()
msg["Subject"] = "WorkMail SMTP"
msg["From"] = EMAIL_ADDRESS
msg["To"] = target
msg.set_content("Delivered via WorkMail SMTP")
with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) as smtp:
smtp.login(EMAIL_ADDRESS, EMAIL_PASSWORD)
smtp.send_message(msg)
```
</details>
## Tespit hususları
- WorkMail gereksizse, organizasyon düzeyinde **SCPs** ile (`workmail:*` deny) engelleyin.
- Provisioning için uyarı oluşturun: `workmail:CreateOrganization`, `workmail:CreateUser`, `workmail:RegisterToWorkMail` ve `invokedBy=workmail.amazonaws.com` ile yapılan SES doğrulamaları (`ses:VerifyDomainIdentity`, `ses:VerifyDomainDkim`).
- Kimlik ARN'lerinin yeni domainlere işaret ettiği ve kaynak IP/UA'nın `workmail.<region>.amazonaws.com` olduğu anormal **`ses:SendRawEmail`** olaylarını izleyin.
## Referanslar
- [Threat Actors Using AWS WorkMail in Phishing Campaigns](https://www.rapid7.com/blog/post/dr-threat-actors-aws-workmail-phishing-campaigns)
- [AWS WorkMail limits](https://docs.aws.amazon.com/workmail/latest/adminguide/limits.html)
{{#include ../../../../banners/hacktricks-training.md}}
@@ -1,20 +1,20 @@
# AWS - IAM, Kimlik Merkezi & SSO Enum
# AWS - IAM, Identity Center & SSO Enum
{{#include ../../../banners/hacktricks-training.md}}
## IAM
**IAM'in tanımını** burada bulabilirsiniz:
Aşağıda IAM için bir **açıklama** bulabilirsiniz:
{{#ref}}
../aws-basic-information/
{{#endref}}
### Enumeration
### Taramalar
Gerekli ana izinler:
- `iam:ListPolicies`, `iam:GetPolicy` ve `iam:GetPolicyVersion`
- `iam:ListPolicies`, `iam:GetPolicy` and `iam:GetPolicyVersion`
- `iam:ListRoles`
- `iam:ListUsers`
- `iam:ListGroups`
@@ -22,9 +22,9 @@ Gerekli ana izinler:
- `iam:ListAttachedUserPolicies`
- `iam:ListAttachedRolePolicies`
- `iam:ListAttachedGroupPolicies`
- `iam:ListUserPolicies` ve `iam:GetUserPolicy`
- `iam:ListGroupPolicies` ve `iam:GetGroupPolicy`
- `iam:ListRolePolicies` ve `iam:GetRolePolicy`
- `iam:ListUserPolicies` and `iam:GetUserPolicy`
- `iam:ListGroupPolicies` and `iam:GetGroupPolicy`
- `iam:ListRolePolicies` and `iam:GetRolePolicy`
```bash
# All IAMs
## Retrieves information about all IAM users, groups, roles, and policies
@@ -88,37 +88,49 @@ aws iam get-account-password-policy
aws iam list-mfa-devices
aws iam list-virtual-mfa-devices
```
### İzinler Kaba Kuvvet
### Kasıtlı hatalar yoluyla gizli izin doğrulama
Kendi izinlerinizle ilgileniyorsanız ancak IAM sorgulamak için erişiminiz yoksa, her zaman bunları kaba kuvvetle elde edebilirsiniz.
When `List*` or simulator APIs are blocked, you can **öngörülebilir doğrulama hataları oluşturarak kalıcı kaynak yaratmadan mutasyon izinlerini doğrulayabilirsiniz**. AWS yine de bu hataları döndürmeden önce IAM'i değerlendirir; bu yüzden hatayı görmek, isteği yapanın ilgili action'a sahip olduğunu kanıtlar:
```bash
# Confirm iam:CreateUser without creating a new principal (fails only after authz)
aws iam create-user --user-name <existing_user> # -> EntityAlreadyExistsException
# Confirm iam:CreateLoginProfile while learning password policy requirements
aws iam create-login-profile --user-name <target_user> --password lower --password-reset-required # -> PasswordPolicyViolationException
```
Bu denemeler yine CloudTrail olayları oluşturur (`errorCode` ayarlı olarak) ancak yeni IAM artefaktları bırakmaktan kaçınır; bu yüzden etkileşimli keşif sırasında **düşük-gürültülü izin doğrulaması** için kullanışlıdır.
### İzinler Brute Force
Kendi izinlerinizi merak ediyorsanız ama IAM sorgulama erişiminiz yoksa, onları her zaman brute-force ile deneyebilirsiniz.
#### bf-aws-permissions
Araç [**bf-aws-permissions**](https://github.com/carlospolop/bf-aws-permissions), belirtilen profili kullanarak **`list*`, `describe*`, `get*`** eylemlerini bulmak için `aws` cli yardım mesajlarını kullanarak çalışacak bir bash betiğidir ve **başarılı yürütmeleri** döndürecektir.
The tool [**bf-aws-permissions**](https://github.com/carlospolop/bf-aws-permissions) is just a bash script that will run using the indicated profile all the **`list*`, `describe*`, `get*`** actions it can find using `aws` cli help messages and **return the successful executions**.
```bash
# Bruteforce permissions
bash bf-aws-permissions.sh -p default > /tmp/bf-permissions-verbose.txt
```
#### bf-aws-perms-simulate
Araç [**bf-aws-perms-simulate**](https://github.com/carlospolop/bf-aws-perms-simulate), **`iam:SimulatePrincipalPolicy`** iznine sahipseniz, mevcut izinlerinizi (veya diğer ilkelerin izinlerini) bulabilir.
Bu araç [**bf-aws-perms-simulate**](https://github.com/carlospolop/bf-aws-perms-simulate), eğer **`iam:SimulatePrincipalPolicy`** iznine sahipseniz mevcut izinlerinizi (veya diğer principal'lerin izinlerini) bulabilir.
```bash
# Ask for permissions
python3 aws_permissions_checker.py --profile <AWS_PROFILE> [--arn <USER_ARN>]
```
#### Perms2ManagedPolicies
Eğer **kullanıcınızın sahip olduğu bazı izinler bulduysanız** ve bunların **yönetilen bir AWS rolü** tarafından verildiğini düşünüyorsanız (veya özel bir rol tarafından değilse). Bulduğunuz **izinleri veren tüm AWS yönetilen rollerini** kontrol etmek için [**aws-Perms2ManagedRoles**](https://github.com/carlospolop/aws-Perms2ManagedPolicies) aracını kullanabilirsiniz.
Eğer kullanıcınızın **sahip olduğu bazı izinleri** keşfettiyseniz ve bunların bir **managed AWS role** (özel bir rol tarafından değil) tarafından verildiğini düşünüyorsanız, sahip olduğunuzu keşfettiğiniz izinleri veren tüm **AWS managed roles**'u kontrol etmek için [**aws-Perms2ManagedRoles**](https://github.com/carlospolop/aws-Perms2ManagedPolicies) aracını kullanabilirsiniz.
```bash
# Run example with my profile
python3 aws-Perms2ManagedPolicies.py --profile myadmin --permissions-file example-permissions.txt
```
> [!WARNING]
> AWS yönetilen bir rol tarafından verilen izinlere sahip olup olmadığınızı "bilmek" mümkündür, eğer **kullanılmayan hizmetler üzerinde izinleriniz olduğunu görüyorsanız** örneğin.
> Örneğin **kullanılmayan hizmetler üzerinde yetkiniz olduğunu** görürseniz, sahip olduğunuz izinlerin AWS tarafından yönetilen bir role verildiğini "bilmek" mümkün olabilir.
#### Cloudtrail2IAM
[**CloudTrail2IAM**](https://github.com/carlospolop/Cloudtrail2IAM) , **AWS CloudTrail günlüklerini analiz eden ve herkesin veya sadece belirli bir kullanıcının veya rolün yaptığı eylemleri özetleyen** bir Python aracıdır. Araç, **belirtilen bucket'tan her cloudtrail günlüğünü ayrıştıracaktır.**
[**CloudTrail2IAM**](https://github.com/carlospolop/Cloudtrail2IAM) bir Python aracıdır; herkesin veya sadece belirli bir kullanıcı veya rolün gerçekleştirdiği eylemleri çıkarmak ve özetlemek için **AWS CloudTrail logs**'ı analiz eder. Araç **belirtilen bucket'taki her cloudtrail logunu parse edecek**.
```bash
git clone https://github.com/carlospolop/Cloudtrail2IAM
cd Cloudtrail2IAM
@@ -126,16 +138,16 @@ pip install -r requirements.txt
python3 cloudtrail2IAM.py --prefix PREFIX --bucket_name BUCKET_NAME --profile PROFILE [--filter-name FILTER_NAME] [--threads THREADS]
```
> [!WARNING]
> Eğer .tfstate (Terraform durum dosyaları) veya CloudFormation dosyaları (genellikle cf-templates ön eki ile bir bucket içinde bulunan yaml dosyalarıdır) bulursanız, aws yapılandırmasını bulmak ve kimin hangi izinlere sahip olduğunu öğrenmek için bunları da okuyabilirsiniz.
> Eğer .tfstate (Terraform state dosyaları) veya CloudFormation dosyaları (genellikle cf-templates önekine sahip bir bucket içinde bulunan yaml dosyaları) bulursanız, bunları okuyarak aws yapılandırmasını ve hangi izinlerin kime atandığını tespit edebilirsiniz.
#### enumerate-iam
Aracı kullanmak için [**https://github.com/andresriancho/enumerate-iam**](https://github.com/andresriancho/enumerate-iam) önce tüm API AWS uç noktalarını indirmeniz gerekir, bu uç noktalardan **`generate_bruteforce_tests.py`** scripti tüm **"list\_", "describe\_", ve "get\_" uç noktalarını alacaktır.** Ve sonunda, verilen kimlik bilgileri ile **erişmeye çalışacak** ve **başarıp başaramadığını belirtecektir.**
Aracı [**https://github.com/andresriancho/enumerate-iam**](https://github.com/andresriancho/enumerate-iam) kullanmak için önce tüm AWS API endpoint'lerini indirmeniz gerekir; bu endpoint'lerden script **`generate_bruteforce_tests.py`** tüm **"list\_", "describe\_", and "get\_" endpoints.** alacaktır. Son olarak verilen kimlik bilgileriyle bunlara **erişmeyi dener** ve **çalışıp çalışmadığını belirtir**.
(Benim deneyimime göre **araç bir noktada takılıyor**, [**bu düzeltmeye göz atın**](https://github.com/andresriancho/enumerate-iam/pull/15/commits/77ad5b41216e3b5f1511d0c385da8cd5984c2d3c) bunu düzeltmeye çalışmak için).
(Benim deneyimime göre **tool bir noktada takılıyor**, [**checkout this fix**](https://github.com/andresriancho/enumerate-iam/pull/15/commits/77ad5b41216e3b5f1511d0c385da8cd5984c2d3c) bunu düzeltmek için).
> [!WARNING]
> Benim deneyimime göre bu araç bir önceki gibi ama daha kötü çalışıyor ve daha az izin kontrol ediyor.
> Benim deneyimime göre bu tool önceki olandan daha kötü çalışıyor ve daha az izin kontrolü yapıyor
```bash
# Install tool
git clone git@github.com:andresriancho/enumerate-iam.git
@@ -154,7 +166,7 @@ python3 enumerate-iam.py --access-key ACCESS_KEY --secret-key SECRET_KEY [--sess
```
#### weirdAAL
Ayrıca [**weirdAAL**](https://github.com/carnal0wnage/weirdAAL/wiki) aracını da kullanabilirsiniz. Bu araç, **birçok yaygın hizmette birkaç yaygın işlemi kontrol edecektir** (bazı enum izinlerini ve ayrıca bazı privesc izinlerini kontrol edecektir). Ancak yalnızca kodlanmış kontrolleri kontrol edecektir (daha fazla şeyi kontrol etmenin tek yolu daha fazla test kodlamaktır).
Bu aracı ayrıca [**weirdAAL**](https://github.com/carnal0wnage/weirdAAL/wiki) kullanabilirsiniz. Bu araç **birçok yaygın serviste birçok yaygın işlemi** kontrol edecektir (bazı enumeration izinlerini ve ayrıca bazı privesc izinlerini kontrol eder). Ancak yalnızca kodlanmış kontrolleri denetler (daha fazla şeyi kontrol etmenin tek yolu daha fazla test kodlamaktır).
```bash
# Install
git clone https://github.com/carnal0wnage/weirdAAL.git
@@ -178,7 +190,7 @@ python3 weirdAAL.py -m recon_all -t MyTarget # Check all permissions
# [+] elbv2 Actions allowed are [+]
# ['DescribeLoadBalancers', 'DescribeAccountLimits', 'DescribeTargetGroups']
```
#### İzinleri BF için Güçlendirme Araçları
#### BF izinleri için Sertleştirme Araçları
{{#tabs }}
{{#tab name="CloudSploit" }}
@@ -208,43 +220,43 @@ steampipe dashboard
#### \<YourTool>
Önceki araçların hiçbiri tüm izinleri kontrol etme kapasitesine sahip değildir, bu yüzden daha iyi bir araç biliyorsanız bir PR gönderin!
Önceki araçların hiçbiri neredeyse tüm izinleri kontrol edebilecek kadar kapsamlı değil; daha iyi bir araç biliyorsanız PR gönderin!
### Kimlik Doğrulaması Olmayan Erişim
### Unauthenticated Access
{{#ref}}
../aws-unauthenticated-enum-access/aws-iam-and-sts-unauthenticated-enum/README.md
{{#endref}}
### Yetki Yükseltme
### Privilege Escalation
Aşağıdaki sayfada **IAM izinlerini kötüye kullanarak yetki yükseltme** yöntemini kontrol edebilirsiniz:
Aşağıdaki sayfada **abuse IAM permissions to escalate privileges** nasıl yapılacağını inceleyebilirsiniz:
{{#ref}}
../aws-privilege-escalation/aws-iam-privesc/README.md
{{#endref}}
### IAM Sonrası İstismar
### IAM Post Exploitation
{{#ref}}
../aws-post-exploitation/aws-iam-post-exploitation/README.md
{{#endref}}
### IAM Sürekliliği
### IAM Persistence
{{#ref}}
../aws-persistence/aws-iam-persistence/README.md
{{#endref}}
## IAM Kimlik Merkezi
## IAM Identity Center
**IAM Kimlik Merkezi** hakkında bir açıklama bulabilirsiniz:
IAM Identity Center açıklamasını şu adreste bulabilirsiniz:
{{#ref}}
../aws-basic-information/
{{#endref}}
### CLI ile SSO üzerinden Bağlanın
### Connect via SSO with CLI
```bash
# Connect with sso via CLI aws configure sso
aws configure sso
@@ -255,18 +267,18 @@ sso_account_id = <account_numbre>
sso_role_name = AdministratorAccess
sso_region = us-east-1
```
### Enumeration
### Enumerasyon
Identity Center'ın ana unsurları şunlardır:
Identity Center'ın ana öğeleri şunlardır:
- Kullanıcılar ve gruplar
- İzin Setleri: Politikalara sahiptir
- AWS Hesapları
- Permission Sets: Politikalar iliştirilir
- AWS Accounts
Daha sonra, kullanıcılar/ gruplar için AWS Hesabı üzerinde İzin Setleri oluşturulur.
Daha sonra, kullanıcılar/grupların AWS Account üzerinde Permission Sets'e sahip olması için ilişkiler oluşturulur.
> [!NOTE]
> Politikalara bir İzin Seti'ne eklemenin 3 yolu olduğunu unutmayın. AWS yönetilen politikalarını eklemek, Müşteri yönetilen politikalarını eklemek (bu politikaların, İzin Seti'nin etki ettiği tüm hesaplarda oluşturulması gerekir) ve orada tanımlanan satır içi politikalar.
> Bir Permission Set'e politika iliştirmenin 3 yolu olduğunu unutmayın: AWS managed policies eklemek, Customer managed policies (bu policies'lerin Permission Set'in etki ettiği tüm hesaplarda oluşturulması gerekir) ve inline policies (Permission Set içinde tanımlananlar).
```bash
# Check if IAM Identity Center is used
aws sso-admin list-instances
@@ -300,9 +312,9 @@ aws identitystore list-group-memberships --identity-store-id <store-id> --group-
## Get memberships or a user or a group
aws identitystore list-group-memberships-for-member --identity-store-id <store-id> --member-id <member-id>
```
### Yerel Enumere Etme
### Yerel Keşif
`$HOME/.aws` klasörü içinde, SSO aracılığıyla erişilebilen profilleri yapılandırmak için config dosyası oluşturmak mümkündür, örneğin:
SSO aracılığıyla erişilebilen profilleri yapılandırmak için `$HOME/.aws` klasörüne config adlı bir dosya oluşturabilirsiniz, örneğin:
```ini
[default]
region = us-west-2
@@ -327,9 +339,9 @@ aws sso login --profile my-sso-profile
# Use dependent-profile
aws s3 ls --profile dependent-profile
```
Bir **SSO profilinin kullanılması** durumunda bazı bilgilere erişmek için, kimlik bilgileri **`$HOME/.aws/sso/cache`** klasörü içindeki bir dosyada **önbelleğe alınır**. Bu nedenle, buradan **okunabilir ve kullanılabilir**.
Bir **SSO profilinin kullanılması**yla bazı bilgilere erişildiğinde, kimlik bilgileri **`$HOME/.aws/sso/cache`** klasörünün içindeki bir dosyada **önbelleğe alınır**. Bu nedenle oradan **okunup kullanılabilirler**.
Ayrıca, **daha fazla kimlik bilgisi** **`$HOME/.aws/cli/cache`** klasöründe saklanabilir. Bu önbellek dizini, IAM kullanıcı kimlik bilgilerini kullanan veya IAM aracılığıyla (SSO olmadan) roller **üstlenen** AWS CLI profilleri ile çalışırken esasen kullanılır. Konfigürasyon örneği:
Ayrıca, **daha fazla kimlik bilgisi** **`$HOME/.aws/cli/cache`** klasöründe saklanabilir. Bu önbellek dizini öncelikle IAM kullanıcı kimlik bilgilerini kullanan veya IAM aracılığıyla rol **üstlenen** (SSO olmadan) AWS CLI profilleri ile çalışırken kullanılır. Konfigürasyon örneği:
```ini
[profile crossaccountrole]
role_arn = arn:aws:iam::234567890123:role/SomeRole
@@ -337,25 +349,25 @@ source_profile = default
mfa_serial = arn:aws:iam::123456789012:mfa/saanvi
external_id = 123456
```
### Kimlik Doğrulaması Olmayan Erişim
### Unauthenticated Access
{{#ref}}
../aws-unauthenticated-enum-access/aws-identity-center-and-sso-unauthenticated-enum/README.md
{{#endref}}
### Yetki Yükseltme
### Privilege Escalation
{{#ref}}
../aws-privilege-escalation/aws-sso-and-identitystore-privesc/README.md
{{#endref}}
### İstismar Sonrası
### Post Exploitation
{{#ref}}
../aws-post-exploitation/aws-sso-and-identitystore-post-exploitation/README.md
{{#endref}}
### Süreklilik
### Persistence
#### Bir kullanıcı oluşturun ve ona izinler atayın
```bash
@@ -363,10 +375,10 @@ external_id = 123456
aws identitystore create-user --identity-store-id <store-id> --user-name privesc --display-name privesc --emails Value=sdkabflvwsljyclpma@tmmbt.net,Type=Work,Primary=True --name Formatted=privesc,FamilyName=privesc,GivenName=privesc
## After creating it try to login in the console using the selected username, you will receive an email with the code and then you will be able to select a password
```
- Bir grup oluşturun ve ona izinler atayın ve kontrol edilen bir kullanıcı belirleyin
- Kontrol edilen bir kullanıcıya veya gruba ek izinler verin
- Varsayılan olarak, yalnızca Yönetim Hesabındaki izinlere sahip kullanıcılar IAM Kimlik Merkezi'ne erişebilecek ve kontrol edebilecektir.
- Bir grup oluşturun, ona izinler atayın ve bir kontrol kullanıcı atayın
- Kontrol bir kullanıcıya veya gruba ekstra izinler verin
- Varsayılan olarak, yalnızca Management Account'tan izinlere sahip kullanıcılar IAM Identity Center'a erişip onu kontrol edebilecek.
Ancak, Farklı bir hesaptan kullanıcıların bunu yönetmesine izin vermek için Delegeli Yönetici aracılığıyla mümkündür. Tam olarak aynı izinlere sahip olmayacaklar, ancak [**yönetim faaliyetlerini**](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) gerçekleştirebilecekler.
Ancak, Delegate Administrator aracılığıyla farklı bir hesaptan kullanıcıların bunu yönetmesine izin vermek mümkündür. Aynı izinlere tam olarak sahip olmayacaklar, ancak [**management activities**](https://docs.aws.amazon.com/singlesignon/latest/userguide/delegated-admin.html) gerçekleştirebilecekler.
{{#include ../../../banners/hacktricks-training.md}}