mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 03:16:37 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-p
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
# AWS - SSM Perssitence
|
||||
# AWS - SSM Persistencija
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## SSM
|
||||
|
||||
Za više informacija proverite:
|
||||
Za više informacija pogledajte:
|
||||
|
||||
{{#ref}}
|
||||
../aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md
|
||||
@@ -12,7 +12,7 @@ Za više informacija proverite:
|
||||
|
||||
### Korišćenje ssm:CreateAssociation za persistenciju
|
||||
|
||||
Napadač sa dozvolom ssm:CreateAssociation može kreirati State Manager Association da automatski izvršava komande na EC2 instancama kojima upravlja SSM. Ove asocijacije se mogu konfigurisati da se izvršavaju u fiksnim intervalima, što ih čini pogodnim za persistenciju sličnu backdoor-u bez interaktivnih sesija.
|
||||
Napadač sa dozvolom **`ssm:CreateAssociation`** može kreirati State Manager Association kako bi automatski izvršavao komande na EC2 instancama koje upravlja SSM. Ove asocijacije se mogu konfigurisati da se izvršavaju u fiksnim intervalima, što ih čini pogodnim za persistenciju sličnu backdoor-u bez interaktivnih sesija.
|
||||
```bash
|
||||
aws ssm create-association \
|
||||
--name SSM-Document-Name \
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
## SSM
|
||||
|
||||
Za više informacija o SSM proverite:
|
||||
Za više informacija o SSM, proverite:
|
||||
|
||||
{{#ref}}
|
||||
../aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/
|
||||
@@ -47,12 +47,12 @@ aws ssm start-session --target "$INSTANCE_ID"
|
||||
> [!CAUTION]
|
||||
> Da biste započeli sesiju, potrebno je da imate instaliran **SessionManagerPlugin**: [https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html](https://docs.aws.amazon.com/systems-manager/latest/userguide/install-plugin-macos-overview.html)
|
||||
|
||||
**Potencijalni uticaj:** Direktno privesc na EC2 IAM uloge povezane sa aktivnim instancama sa SSM agentima.
|
||||
**Potencijalni uticaj:** Direktno privesc do EC2 IAM uloga povezanih sa aktivnim instancama sa SSM Agentima.
|
||||
|
||||
#### Privesc na ECS
|
||||
#### Privesc do ECS
|
||||
|
||||
Kada **ECS zadaci** rade sa **`ExecuteCommand` omogućeno**, korisnici sa dovoljno dozvola mogu koristiti `ecs execute-command` da **izvrše komandu** unutar kontejnera.\
|
||||
Prema [**dokumentaciji**](https://aws.amazon.com/blogs/containers/new-using-amazon-ecs-exec-access-your-containers-fargate-ec2/), to se postiže kreiranjem sigurnog kanala između uređaja koji koristite za iniciranje komande “_exec_” i ciljnog kontejnera sa SSM Session Manager-om. (SSM Session Manager Plugin je neophodan za ovo)\
|
||||
Kada **ECS zadaci** rade sa **`ExecuteCommand` omogućenim**, korisnici sa dovoljno dozvola mogu koristiti `ecs execute-command` da **izvrše komandu** unutar kontejnera.\
|
||||
Prema [**dokumentaciji**](https://aws.amazon.com/blogs/containers/new-using-amazon-ecs-exec-access-your-containers-fargate-ec2/), to se postiže kreiranjem sigurnog kanala između uređaja koji koristite za iniciranje komande “_exec_” i ciljnog kontejnera sa SSM Session Managerom. (SSM Session Manager Plugin je neophodan za ovo)\
|
||||
Stoga, korisnici sa `ssm:StartSession` moći će da **dobiju shell unutar ECS zadataka** sa tom opcijom omogućenom jednostavno pokretanjem:
|
||||
```bash
|
||||
aws ssm start-session --target "ecs:CLUSTERNAME_TASKID_RUNTIMEID"
|
||||
@@ -72,11 +72,11 @@ aws ssm describe-sessions
|
||||
aws ssm resume-session \
|
||||
--session-id Mary-Major-07a16060613c408b5
|
||||
```
|
||||
**Potencijalni uticaj:** Direktno privesc do EC2 IAM uloga povezanih sa aktivnim instancama sa SSM agentima i prekinutim sesijama.
|
||||
**Potencijalni uticaj:** Direktno privesc na EC2 IAM uloge povezane sa aktivnim instancama sa SSM agentima i prekinutim sesijama.
|
||||
|
||||
### `ssm:DescribeParameters`, (`ssm:GetParameter` | `ssm:GetParameters`)
|
||||
|
||||
Napadač sa pomenutim dozvolama će moći da nabroji **SSM parametre** i **pročita ih u čistom tekstu**. U ovim parametrima često možete **pronaći osetljive informacije** kao što su SSH ključevi ili API ključevi.
|
||||
Napadač sa pomenutim dozvolama će moći da prikaže **SSM parametre** i **pročita ih u čistom tekstu**. U ovim parametrima često možete **pronaći osetljive informacije** kao što su SSH ključevi ili API ključevi.
|
||||
```bash
|
||||
aws ssm describe-parameters
|
||||
# Suppose that you found a parameter called "id_rsa"
|
||||
@@ -87,7 +87,7 @@ aws ssm get-parameter --name id_rsa --with-decryption
|
||||
|
||||
### `ssm:ListCommands`
|
||||
|
||||
Napadač sa ovom dozvolom može da prikaže sve **komande** koje su poslate i nada se da će pronaći **osetljive informacije** u njima.
|
||||
Napadač sa ovom dozvolom može da prikaže sve **komande** koje su poslate i nadati se da će pronaći **osetljive informacije** u njima.
|
||||
```
|
||||
aws ssm list-commands
|
||||
```
|
||||
@@ -105,9 +105,23 @@ aws ssm get-command-invocation --command-id <cmd_id> --instance-id <i_id>
|
||||
```
|
||||
**Potencijalni uticaj:** Pronaći osetljive informacije unutar izlaza komandnih linija.
|
||||
|
||||
### Korišćenje ssm:CreateAssociation
|
||||
|
||||
Napadač sa dozvolom **`ssm:CreateAssociation`** može kreirati Asocijaciju menadžera stanja kako bi automatski izvršavao komande na EC2 instancama koje upravlja SSM. Ove asocijacije mogu biti konfigurisane da se izvršavaju u fiksnim intervalima, što ih čini pogodnim za postojanost sličnu zadnjim vratima bez interaktivnih sesija.
|
||||
```bash
|
||||
aws ssm create-association \
|
||||
--name SSM-Document-Name \
|
||||
--targets Key=InstanceIds,Values=target-instance-id \
|
||||
--parameters commands=["malicious-command"] \
|
||||
--schedule-expression "rate(30 minutes)" \
|
||||
--association-name association-name
|
||||
```
|
||||
> [!NOTE]
|
||||
> Ova metoda postojanosti funkcioniše sve dok je EC2 instanca upravljana od strane Systems Manager-a, SSM agent radi, i napadač ima dozvolu da kreira asocijacije. Ne zahteva interaktivne sesije ili eksplicitne ssm:SendCommand dozvole. **Važno:** Parametar `--schedule-expression` (npr., `rate(30 minutes)`) mora poštovati minimalni interval AWS-a od 30 minuta. Za trenutnu ili jednokratnu izvršavanje, potpuno izostavite `--schedule-expression` — asocijacija će se izvršiti jednom nakon kreiranja.
|
||||
|
||||
### Codebuild
|
||||
|
||||
Takođe možete koristiti SSM da uđete u projekat codebuild koji se gradi:
|
||||
Možete takođe koristiti SSM da uđete u codebuild projekat koji se gradi:
|
||||
|
||||
{{#ref}}
|
||||
aws-codebuild-privesc.md
|
||||
|
||||
@@ -12,7 +12,7 @@ aws-vpc-and-networking-basic-information.md
|
||||
|
||||
## EC2
|
||||
|
||||
Amazon EC2 se koristi za pokretanje **virtuelnih servera**. Omogućava konfiguraciju **bezbednosti** i **mrežne infrastrukture** i upravljanje **skladištem**. Fleksibilnost Amazon EC2 je očigledna u njegovoj sposobnosti da skalira resurse kako naviše, tako i naniže, efikasno se prilagođavajući promenama zahteva ili porastima popularnosti. Ova funkcija smanjuje potrebu za preciznim predikcijama saobraćaja.
|
||||
Amazon EC2 se koristi za pokretanje **virtuelnih servera**. Omogućava konfiguraciju **bezbednosti** i **mreže** i upravljanje **skladištem**. Fleksibilnost Amazon EC2 je očigledna u njegovoj sposobnosti da skalira resurse kako naviše, tako i naniže, efikasno se prilagođavajući promenama zahteva ili porastima popularnosti. Ova funkcija smanjuje potrebu za preciznim predikcijama saobraćaja.
|
||||
|
||||
Zanimljive stvari za enumeraciju u EC2:
|
||||
|
||||
@@ -20,7 +20,7 @@ Zanimljive stvari za enumeraciju u EC2:
|
||||
- SSH ključevi
|
||||
- Podaci o korisnicima
|
||||
- Postojeći EC2/AMI/snapshoti
|
||||
- Mreža
|
||||
- Mreženje
|
||||
- Mreže
|
||||
- Podmreže
|
||||
- Javne IP adrese
|
||||
@@ -29,13 +29,13 @@ Zanimljive stvari za enumeraciju u EC2:
|
||||
|
||||
### Instance Profiles
|
||||
|
||||
Korišćenje **rola** za dodeljivanje dozvola aplikacijama koje se pokreću na **EC2 instancama** zahteva malo dodatne konfiguracije. Aplikacija koja se pokreće na EC2 instanci je apstrahovana od AWS-a putem virtuelizovanog operativnog sistema. Zbog ove dodatne separacije, potrebna je dodatna faza za dodeljivanje AWS uloge i njenih povezanih dozvola EC2 instanci i njihovo dostupnost aplikacijama.
|
||||
Korišćenje **rola** za dodeljivanje dozvola aplikacijama koje rade na **EC2 instancama** zahteva malo dodatne konfiguracije. Aplikacija koja radi na EC2 instanci je apstrahovana od AWS-a putem virtuelizovanog operativnog sistema. Zbog ove dodatne separacije, potrebna je dodatna faza za dodeljivanje AWS role i njenih povezanih dozvola EC2 instanci i njihovo dostupnost aplikacijama.
|
||||
|
||||
Ova dodatna faza je **kreiranje** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) vezanog za instancu. **Instance profile sadrži ulogu i** može obezbediti privremene akreditive uloge aplikaciji koja se pokreće na instanci. Ti privremeni akreditive se zatim mogu koristiti u API pozivima aplikacije za pristup resursima i za ograničavanje pristupa samo onim resursima koje uloga specificira. Imajte na umu da **samo jedna uloga može biti dodeljena EC2 instanci** u isto vreme, i sve aplikacije na instanci dele istu ulogu i dozvole.
|
||||
Ova dodatna faza je **kreiranje** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) vezanog za instancu. **Instance profile sadrži ulogu i** može pružiti privremene akreditive uloge aplikaciji koja radi na instanci. Ti privremeni akreditive se zatim mogu koristiti u API pozivima aplikacije za pristup resursima i za ograničavanje pristupa samo onim resursima koje uloga specificira. Imajte na umu da **samo jedna uloga može biti dodeljena EC2 instanci** u isto vreme, a sve aplikacije na instanci dele istu ulogu i dozvole.
|
||||
|
||||
### Metadata Endpoint
|
||||
|
||||
AWS EC2 metapodaci su informacije o Amazon Elastic Compute Cloud (EC2) instanci koje su dostupne instanci u vreme izvršavanja. Ovi metapodaci se koriste za pružanje informacija o instanci, kao što su njen ID instance, dostupna zona u kojoj se pokreće, IAM uloga povezana sa instancom, i ime hosta instance.
|
||||
AWS EC2 metapodaci su informacije o Amazon Elastic Compute Cloud (EC2) instanci koje su dostupne instanci u vreme izvršavanja. Ovi metapodaci se koriste za pružanje informacija o instanci, kao što su njen ID instance, dostupna zona u kojoj se pokreće, IAM uloga povezana sa instancom i ime hosta instance.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
@@ -149,13 +149,13 @@ Na sledećoj stranici možete proveriti kako da **zloupotrebite EC2 dozvole za e
|
||||
|
||||
## EBS
|
||||
|
||||
Amazon **EBS** (Elastic Block Store) **snapshots** su u suštini statični **backup-ovi** AWS EBS volumena. Drugim rečima, to su **kopije** **diskova** povezanih sa **EC2** instancom u određenom trenutku. EBS snapshots se mogu kopirati između regiona i naloga, ili čak preuzeti i pokrenuti lokalno.
|
||||
Amazon **EBS** (Elastic Block Store) **snapshots** su u suštini statički **backup-ovi** AWS EBS volumena. Drugim rečima, to su **kopije** **diskova** povezanih sa **EC2** instancom u određenom trenutku. EBS snapshots se mogu kopirati između regiona i naloga, ili čak preuzeti i pokrenuti lokalno.
|
||||
|
||||
Snapshots mogu sadržati **osetljive informacije** kao što su **izvorni kod ili API ključevi**, stoga, ako imate priliku, preporučuje se da ih proverite.
|
||||
|
||||
### Razlika AMI & EBS
|
||||
### Razlika između AMI i EBS
|
||||
|
||||
**AMI** se koristi za **pokretanje EC2 instance**, dok se EC2 **Snapshot** koristi za **backup i oporavak podataka sa EBS volumena**. Dok se EC2 Snapshot može koristiti za kreiranje novog AMI-ja, to nije isto što i AMI, i ne uključuje informacije o operativnom sistemu, serverskom softveru ili drugom softveru potrebnom za pokretanje aplikacije.
|
||||
**AMI** se koristi za **pokretanje EC2 instance**, dok se EC2 **Snapshot** koristi za **backup i oporavak podataka sa EBS volumena**. Dok se EC2 Snapshot može koristiti za kreiranje novog AMI-ja, to nije isto što i AMI, i ne uključuje informacije o operativnom sistemu, aplikacionom serveru ili drugom softveru potrebnom za pokretanje aplikacije.
|
||||
|
||||
### Privesc
|
||||
|
||||
@@ -194,6 +194,14 @@ Na sledećoj stranici možete proveriti kako da **zloupotrebite SSM dozvole za e
|
||||
../../aws-privilege-escalation/aws-ssm-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
### Perssistence
|
||||
|
||||
Na sledećoj stranici možete proveriti kako da **zloupotrebite SSM dozvole za postizanje persistencije**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-persistence/aws-ssm-persistence.md
|
||||
{{#endref}}
|
||||
|
||||
## ELB
|
||||
|
||||
**Elastic Load Balancing** (ELB) je **usluga balansiranja opterećenja za Amazon Web Services** (AWS) implementacije. ELB automatski **distribuira dolazni aplikativni saobraćaj** i skalira resurse kako bi zadovoljio zahteve saobraćaja.
|
||||
@@ -209,9 +217,9 @@ aws elbv2 describe-load-balancers
|
||||
aws elbv2 describe-load-balancers | jq '.LoadBalancers[].DNSName'
|
||||
aws elbv2 describe-listeners --load-balancer-arn <load_balancer_arn>
|
||||
```
|
||||
## Šabloni za pokretanje i grupe za automatsko skaliranje
|
||||
## Launch Templates & Autoscaling Groups
|
||||
|
||||
### Enumeracija
|
||||
### Enumeration
|
||||
```bash
|
||||
# Launch templates
|
||||
aws ec2 describe-launch-templates
|
||||
@@ -246,10 +254,10 @@ VPN omogućava povezivanje vaše **lokalne mreže (site-to-site VPN)** ili **lap
|
||||
- Customer Gateway je resurs koji kreirate u AWS-u da predstavlja vašu stranu VPN veze.
|
||||
- To je u suštini fizički uređaj ili softverska aplikacija na vašoj strani Site-to-Site VPN veze.
|
||||
- Pružate informacije o rutiranju i javnu IP adresu vašeg mrežnog uređaja (kao što je ruter ili vatrozid) AWS-u da biste kreirali Customer Gateway.
|
||||
- Služi kao referentna tačka za postavljanje VPN veze i ne izaziva dodatne troškove.
|
||||
- Služi kao referentna tačka za postavljanje VPN veze i ne generiše dodatne troškove.
|
||||
2. **Virtual Private Gateway**:
|
||||
- Virtual Private Gateway (VPG) je VPN koncentrator na Amazon strani Site-to-Site VPN veze.
|
||||
- Povezan je sa vašim VPC-om i služi kao cilj za vašu VPN vezu.
|
||||
- Priključen je na vaš VPC i služi kao cilj za vašu VPN vezu.
|
||||
- VPG je AWS strana krajnje tačke za VPN vezu.
|
||||
- Rukuje sigurnom komunikacijom između vašeg VPC-a i vaše lokalne mreže.
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
@@ -258,7 +266,7 @@ VPN omogućava povezivanje vaše **lokalne mreže (site-to-site VPN)** ili **lap
|
||||
- Koristi se za sigurnu, stabilnu i doslednu komunikaciju između vašeg data centra ili mreže i vašeg AWS okruženja.
|
||||
- Obično se koristi za redovne, dugoročne veze i naplaćuje se na osnovu količine podataka prenetih preko veze.
|
||||
4. **Client VPN Endpoint**:
|
||||
- Client VPN endpoint je resurs koji kreirate u AWS-u da omogućite i upravljate klijentskim VPN sesijama.
|
||||
- Client VPN endpoint je resurs koji kreirate u AWS-u da omogućite i upravljate klijent VPN sesijama.
|
||||
- Koristi se za omogućavanje pojedinačnim uređajima (kao što su laptopi, pametni telefoni itd.) da sigurno povežu sa AWS resursima ili vašom lokalnom mrežom.
|
||||
- Razlikuje se od Site-to-Site VPN po tome što je dizajniran za pojedinačne klijente, a ne za povezivanje celih mreža.
|
||||
- Sa Client VPN-om, svaki klijentski uređaj koristi VPN klijentski softver za uspostavljanje sigurne veze.
|
||||
@@ -299,7 +307,7 @@ Akreditivi pripadaju korisniku `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-clien
|
||||
|
||||
**opvn konfiguracione datoteke**
|
||||
|
||||
Ako je **VPN veza uspostavljena**, trebali biste pretražiti **`.opvn`** konfiguracione datoteke u sistemu. Štaviše, jedno mesto gde možete pronaći **konfiguracije** je u **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
Ako je **VPN veza uspostavljena**, trebali biste tražiti **`.opvn`** konfiguracione datoteke u sistemu. Štaviše, jedno mesto gde možete pronaći **konfiguracije** je u **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
|
||||
#### **Post Eksploatacija**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user