diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 582319269..f61a27c2f 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -230,7 +230,7 @@ - [AWS - SNS Persistence](pentesting-cloud/aws-security/aws-persistence/aws-sns-persistence.md) - [AWS - Secrets Manager Persistence](pentesting-cloud/aws-security/aws-persistence/aws-secrets-manager-persistence.md) - [AWS - SQS Persistence](pentesting-cloud/aws-security/aws-persistence/aws-sqs-persistence.md) - - [AWS - SSM Perssitence](pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md) + - [AWS - SSM Perssitence](pentesting-cloud/aws-security/aws-persistence/aws-ssm-persistence.md) - [AWS - Step Functions Persistence](pentesting-cloud/aws-security/aws-persistence/aws-step-functions-persistence.md) - [AWS - STS Persistence](pentesting-cloud/aws-security/aws-persistence/aws-sts-persistence.md) - [AWS - Post Exploitation](pentesting-cloud/aws-security/aws-post-exploitation/README.md) diff --git a/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md b/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-persistence.md similarity index 72% rename from src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md rename to src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-persistence.md index 783f4502c..a569a0e1b 100644 --- a/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-perssitence.md +++ b/src/pentesting-cloud/aws-security/aws-persistence/aws-ssm-persistence.md @@ -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 \ diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md index 1e3e2358a..3a9a0be44 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ssm-privesc.md @@ -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 --instance-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 diff --git a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md index 5ca66f343..47d3f19e4 100644 --- a/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.md +++ b/src/pentesting-cloud/aws-security/aws-services/aws-ec2-ebs-elb-ssm-vpc-and-vpn-enum/README.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 ``` -## Š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:::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**