mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 14:47:17 -07:00
Translated ['src/pentesting-cloud/aws-security/aws-post-exploitation/aws
This commit is contained in:
+20
-8
@@ -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}}
|
||||
|
||||
+76
@@ -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 kontrollü kullanıcı atayın
|
||||
- Kontrollü 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}}
|
||||
|
||||
Reference in New Issue
Block a user