mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-06-12 19:11:44 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-services/aws-ec2-
This commit is contained in:
+130
-59
@@ -1,10 +1,10 @@
|
||||
# AWS - EC2, EBS, ELB, SSM, VPC & VPN Enumeracja
|
||||
# AWS - EC2, EBS, ELB, SSM, VPC & VPN Enum
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
## VPC & Networking
|
||||
|
||||
Dowiedz się, czym jest VPC i jakie ma komponenty w:
|
||||
Dowiedz się, czym jest VPC i z jakich komponentów się składa, w:
|
||||
|
||||
{{#ref}}
|
||||
aws-vpc-and-networking-basic-information.md
|
||||
@@ -12,36 +12,36 @@ aws-vpc-and-networking-basic-information.md
|
||||
|
||||
## EC2
|
||||
|
||||
Amazon EC2 służy do uruchamiania **maszyn wirtualnych**. Pozwala na konfigurację **bezpieczeństwa** i **sieci** oraz zarządzanie **przechowywaniem**. Elastyczność Amazon EC2 przejawia się w możliwości skalowania zasobów w górę i w dół, skutecznie dostosowując się do zmieniających się wymagań lub nagłych wzrostów popularności. Ta funkcja zmniejsza konieczność precyzyjnego przewidywania ruchu.
|
||||
Amazon EC2 jest używany do uruchamiania **virtual servers**. Umożliwia konfigurację **security** i **networking** oraz zarządzanie **storage**. Elastyczność Amazon EC2 widać w jego zdolności do skalowania zasobów zarówno w górę, jak i w dół, skutecznie dostosowując się do zmieniających się wymagań lub skoków popularności. Ta cecha zmniejsza potrzebę precyzyjnego przewidywania ruchu.
|
||||
|
||||
Interesujące rzeczy do wyliczenia w EC2:
|
||||
Ciekawe rzeczy do enumeracji w EC2:
|
||||
|
||||
- Maszyny wirtualne
|
||||
- Klucze SSH
|
||||
- Virtual Machines
|
||||
- SSH Keys
|
||||
- User Data
|
||||
- Istniejące instancje EC2/AMIs/snapshoty
|
||||
- Sieciowanie
|
||||
- Sieci
|
||||
- Podsieci
|
||||
- Publiczne adresy IP
|
||||
- Otwarte porty
|
||||
- Zintegrowane połączenia z innymi sieciami poza AWS
|
||||
- Existing EC2s/AMIs/Snapshots
|
||||
- Networking
|
||||
- Networks
|
||||
- Subnetworks
|
||||
- Public IPs
|
||||
- Open ports
|
||||
- Integrated connections with other networks outside AWS
|
||||
|
||||
### Instance Profiles
|
||||
|
||||
Użycie **roles** do przyznawania uprawnień aplikacjom działającym na **instancjach EC2** wymaga dodatkowej konfiguracji. Aplikacja uruchomiona na instancji EC2 jest odseparowana od AWS przez zvirtualizowany system operacyjny. Z powodu tej dodatkowej separacji potrzebny jest dodatkowy krok, aby przypisać rolę AWS i powiązane z nią uprawnienia do instancji EC2 i udostępnić je aplikacjom działającym na tej instancji.
|
||||
Używanie **roles** do przyznawania uprawnień aplikacjom działającym na **EC2 instances** wymaga nieco dodatkowej konfiguracji. Aplikacja działająca na instancji EC2 jest odseparowana od AWS przez zwirtualizowany system operacyjny. Z tego powodu potrzebny jest dodatkowy krok, aby przypisać rolę AWS i powiązane z nią uprawnienia do instancji EC2 oraz udostępnić je jej aplikacjom.
|
||||
|
||||
Tym dodatkowym krokiem jest **utworzenie** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) przypisanego do instancji. **Instance profile zawiera rolę i** może dostarczyć tymczasowe poświadczenia roli aplikacji działającej na instancji. Te tymczasowe poświadczenia mogą być następnie wykorzystane w wywołaniach API aplikacji do uzyskania dostępu do zasobów oraz do ograniczenia dostępu tylko do tych zasobów, które określa rola. Zwróć uwagę, że **do jednej instancji EC2 można przypisać tylko jedną rolę** jednocześnie, a wszystkie aplikacje na instancji dzielą tę samą rolę i uprawnienia.
|
||||
Ten dodatkowy krok to **utworzenie** [_**instance profile**_](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) dołączonego do instancji. **instance profile zawiera rolę i** może przekazywać tymczasowe poświadczenia tej roli aplikacji działającej na instancji. Te tymczasowe poświadczenia mogą być następnie używane w wywołaniach API aplikacji, aby uzyskiwać dostęp do zasobów i ograniczać dostęp tylko do tych zasobów, które określa rola. Zwróć uwagę, że **tylko jedna rola może być przypisana do instancji EC2** w danym momencie, a wszystkie aplikacje na instancji współdzielą tę samą rolę i te same uprawnienia.
|
||||
|
||||
### Metadata Endpoint
|
||||
|
||||
Punkt końcowy metadanych AWS EC2 to informacje o instancji Amazon Elastic Compute Cloud (EC2), które są dostępne dla instancji w czasie działania. Te metadane służą do dostarczania informacji o instancji, takich jak jej ID instancji, strefa dostępności, w której działa, rola IAM powiązana z instancją oraz nazwa hosta instancji.
|
||||
AWS EC2 metadata to informacje o instancji Amazon Elastic Compute Cloud (EC2), dostępne dla instancji w czasie działania. Te metadata są używane do dostarczania informacji o instancji, takich jak jej instance ID, availability zone, w której działa, IAM role powiązana z instancją oraz hostname instancji.
|
||||
|
||||
{{#ref}}
|
||||
https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html
|
||||
{{#endref}}
|
||||
|
||||
### Enumeracja
|
||||
### Enumeration
|
||||
```bash
|
||||
# Get EC2 instances
|
||||
aws ec2 describe-instances
|
||||
@@ -130,7 +130,7 @@ aws ec2 describe-route-tables
|
||||
aws ec2 describe-vpcs
|
||||
aws ec2 describe-vpc-peering-connections
|
||||
```
|
||||
### Dostęp bez uwierzytelnienia
|
||||
### Unauthenticated Access
|
||||
|
||||
{{#ref}}
|
||||
../../aws-unauthenticated-enum-access/aws-ec2-unauthenticated-enum/README.md
|
||||
@@ -138,7 +138,7 @@ aws ec2 describe-vpc-peering-connections
|
||||
|
||||
### Privesc
|
||||
|
||||
Na następującej stronie możesz sprawdzić, jak **abuse EC2 permissions to escalate privileges**:
|
||||
In the following page you can check how to **abuse EC2 permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ec2-privesc/README.md
|
||||
@@ -152,17 +152,17 @@ Na następującej stronie możesz sprawdzić, jak **abuse EC2 permissions to esc
|
||||
|
||||
## EBS
|
||||
|
||||
Amazon **EBS** (Elastic Block Store) **snapshots** to zasadniczo statyczne **kopie zapasowe** wolumenów EBS w AWS. Innymi słowy, są to **kopie** **dysków** podłączonych do instancji **EC2** w określonym punkcie czasu. Snapshoty EBS można kopiować między regionami i kontami, a nawet pobrać i uruchomić lokalnie.
|
||||
Amazon **EBS** (Elastic Block Store) **snapshots** are basically static **backups** of AWS EBS volumes. In other words, they are **copies** of the **disks** attached to an **EC2** Instance at a specific point in time. EBS snapshots can be copied across regions and accounts, or even downloaded and run locally.
|
||||
|
||||
Snapshoty mogą zawierać **wrażliwe informacje**, takie jak **kod źródłowy lub klucze API**, dlatego jeśli masz taką możliwość, zaleca się ich sprawdzenie.
|
||||
Snapshots can contain **sensitive information** such as **source code or APi keys**, therefore, if you have the chance, it's recommended to check it.
|
||||
|
||||
### Różnica między AMI a EBS
|
||||
### Difference AMI & EBS
|
||||
|
||||
An **AMI** is used to **launch an EC2 instance**, while an EC2 **Snapshot** is used to **backup and recover data stored on an EBS volume**. While an EC2 Snapshot can be used to create a new AMI, it is not the same thing as an AMI, and it does not include information about the operating system, application server, or other software required to run an application.
|
||||
|
||||
### Privesc
|
||||
|
||||
Na następującej stronie możesz sprawdzić, jak **abuse EBS permissions to escalate privileges**:
|
||||
In the following page you can check how to **abuse EBS permissions to escalate privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ebs-privesc/README.md
|
||||
@@ -170,11 +170,11 @@ Na następującej stronie możesz sprawdzić, jak **abuse EBS permissions to esc
|
||||
|
||||
## SSM
|
||||
|
||||
**Amazon Simple Systems Manager (SSM)** pozwala zdalnie zarządzać flotami instancji **EC2**, upraszczając ich administrację. Każda z tych instancji musi mieć uruchomioną usługę **SSM Agent**, ponieważ to ta usługa będzie odbierać polecenia i wykonywać je poprzez AWS API.
|
||||
**Amazon Simple Systems Manager (SSM)** allows to remotely manage floats of EC2 instances to make their administrations much more easy. Each of these instances need to be running the **SSM Agent service as the service will be the one getting the actions and performing them** from the AWS API.
|
||||
|
||||
**SSM Agent** umożliwia Systems Manager aktualizowanie, zarządzanie i konfigurowanie tych zasobów. Agent **processes requests from the Systems Manager service in the AWS Cloud**, a następnie wykonuje je zgodnie z treścią żądania.
|
||||
**SSM Agent** makes it possible for Systems Manager to update, manage, and configure these resources. The agent **processes requests from the Systems Manager service in the AWS Cloud**, and then runs them as specified in the request.
|
||||
|
||||
The **SSM Agent comes**[ **preinstalled in some AMIs**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) or you need to [**manually install them**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) on the instances. Ponadto, rola IAM używana wewnątrz instancji musi mieć przypisaną politykę **AmazonEC2RoleforSSM**, aby mogła się komunikować.
|
||||
The **SSM Agent comes**[ **preinstalled in some AMIs**](https://docs.aws.amazon.com/systems-manager/latest/userguide/ami-preinstalled-agent.html) or you need to [**manually install them**](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-manual-agent-install.html) on the instances. Also, the IAM Role used inside the instance needs to have the policy **AmazonEC2RoleforSSM** attached to be able to communicate.
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
@@ -185,13 +185,13 @@ aws ssm describe-instance-patches --instance-id <id>
|
||||
aws ssm describe-instance-patch-states --instance-ids <id>
|
||||
aws ssm describe-instance-associations-status --instance-id <id>
|
||||
```
|
||||
Możesz sprawdzić na instancji EC2, czy Systems Manager działa, wykonując:
|
||||
Możesz sprawdzić na instancji EC2, czy Systems Manager działa, po prostu wykonując:
|
||||
```bash
|
||||
ps aux | grep amazon-ssm
|
||||
```
|
||||
### Privesc
|
||||
|
||||
Na poniższej stronie możesz sprawdzić, jak **abuse SSM permissions to escalate privileges**:
|
||||
Na poniższej stronie możesz sprawdzić, jak **nadużyć uprawnień SSM, aby eskalować privileges**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-privilege-escalation/aws-ssm-privesc/README.md
|
||||
@@ -199,7 +199,7 @@ Na poniższej stronie możesz sprawdzić, jak **abuse SSM permissions to escalat
|
||||
|
||||
### Perssistence
|
||||
|
||||
Na poniższej stronie możesz sprawdzić, jak **abuse SSM permissions to achieve persistence**:
|
||||
Na poniższej stronie możesz sprawdzić, jak **nadużyć uprawnień SSM, aby osiągnąć persistence**:
|
||||
|
||||
{{#ref}}
|
||||
../../aws-persistence/aws-ssm-persistence/README.md
|
||||
@@ -207,7 +207,9 @@ Na poniższej stronie możesz sprawdzić, jak **abuse SSM permissions to achieve
|
||||
|
||||
## ELB
|
||||
|
||||
**Elastic Load Balancing** (ELB) jest **usługą równoważenia obciążenia dla Amazon Web Services** (AWS) wdrożeń. ELB automatycznie **rozdziela przychodzący ruch aplikacji** i skaluje zasoby, aby sprostać zapotrzebowaniu na ruch.
|
||||
**Elastic Load Balancing** (ELB) to **usługa równoważenia obciążenia dla Amazon Web Services** (AWS). ELB automatycznie **rozdziela przychodzący ruch aplikacyjny** i skaluje zasoby, aby sprostać wymaganiom ruchu.
|
||||
|
||||
W przypadku **Application Load Balancers (ALBs)** reguły listenera, akcje uwierzytelniania, obsługa nagłówków oraz alternatywne ścieżki do tych samych targetów są częścią **granicy bezpieczeństwa**. Przeanalizuj pełną ścieżkę **CloudFront --> ALB/NLB --> listeners --> rules --> target groups --> instances/IPs/ports/security groups**, a nie tylko jedną regułę listenera w izolacji.
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
@@ -219,6 +221,73 @@ aws elb describe-load-balancers | jq '.LoadBalancerDescriptions[]| select( .Sche
|
||||
aws elbv2 describe-load-balancers
|
||||
aws elbv2 describe-load-balancers | jq '.LoadBalancers[].DNSName'
|
||||
aws elbv2 describe-listeners --load-balancer-arn <load_balancer_arn>
|
||||
aws elbv2 describe-rules --listener-arn <listener_arn>
|
||||
aws elbv2 describe-target-groups --load-balancer-arn <load_balancer_arn>
|
||||
aws elbv2 describe-target-health --target-group-arn <target_group_arn>
|
||||
aws elbv2 describe-load-balancer-attributes --load-balancer-arn <load_balancer_arn>
|
||||
```
|
||||
### ELB / ALB Exposure & Access-Control Bypasses
|
||||
|
||||
#### CloudFront / WAF bypass via direct ALB origin access
|
||||
|
||||
Jeśli dystrybucja **CloudFront** stoi przed **internet-facing ALB**, ale security group ALB nadal թույլ pl publiczny inbound traffic, atakujący często może **bezpośrednio zażądać DNS name ALB** i obejść **CloudFront WAF, geo restrictions, rate limits oraz cache-layer controls**.
|
||||
```bash
|
||||
# Test the origin directly
|
||||
curl -isk https://<alb-dns-name>/
|
||||
|
||||
# If the ALB routes on Host, replay the expected hostname directly to the ALB
|
||||
curl -isk https://<alb-dns-name>/ -H 'Host: app.example.com'
|
||||
```
|
||||
**Notatki z audytu:**
|
||||
|
||||
- Wylicz CloudFront distributions i ich origins, a następnie sprawdź, czy origin ALB nadal jest **internet-facing**.
|
||||
- Przejrzyj **security groups** ALB. Jeśli ruch przychodzący jest dozwolony z `0.0.0.0/0` albo szerokich CIDR-ów, CloudFront prawdopodobnie nie jest jedyną osiągalną ścieżką.
|
||||
- Bezpośrednia odpowiedź **non-error** z ALB zwykle oznacza, że warstwa CloudFront/WAF może zostać ominięta.
|
||||
|
||||
**Hardening:** Jeśli CloudFront ma być jedynym punktem wejścia, zezwól na ruch przychodzący do ALB tylko z zarządzanej przez AWS listy prefiksów **`com.amazonaws.global.cloudfront.origin-facing`**.
|
||||
|
||||
#### Shadowing reguł listenera / auth bypass
|
||||
|
||||
Reguły ALB są oceniane w **rosnącej kolejności priorytetu**. **Bardziej szeroka** reguła z **niższą liczbą priorytetu** może przechwycić ruch, zanim zostanie osiągnięta bardziej restrykcyjna reguła z `authenticate-oidc`, `authenticate-cognito` lub `source-ip`.
|
||||
```text
|
||||
[10] path /* -> forward -> tg-app
|
||||
[20] path /admin* -> authenticate-oidc -> tg-app
|
||||
```
|
||||
Żądanie do `/admin` pasuje do `/*` jako pierwsze, więc akcja uwierzytelniania nigdy się nie uruchamia.
|
||||
|
||||
**Notatki z audytu:**
|
||||
|
||||
- Zrzutuj każdy listener i regułę za pomocą `aws elbv2 describe-rules --listener-arn <listener_arn>`.
|
||||
- Przejdź przez reguły w rosnącej kolejności priorytetu i sprawdź, czy szeroki warunek **host/path/header/query** pasuje do ruchu, który powinien był trafić najpierw do bardziej restrykcyjnej reguły.
|
||||
- Traktuj kolejność listenera jak kolejność middleware: **pierwsza pasująca reguła wygrywa**.
|
||||
|
||||
#### Ograniczenia `source-ip` mogą zostać obejścia przez alternatywne ścieżki
|
||||
|
||||
Warunek `source-ip` chroni tylko **konkretną regułę listenera**, w której został skonfigurowany. Jeśli **ta sama target group**, **te same backendowe IP/instancje** albo **ta sama usługa na innym porcie** są dostępne przez inny ALB, inny listener lub NLB ze słabszymi kontrolami, allowlista IP często może zostać obejścia przez użycie tej alternatywnej ścieżki.
|
||||
|
||||
**Notatki z audytu:**
|
||||
|
||||
- Dla każdej restrykcyjnej reguły wylicz **ARN target group** oraz zarejestrowane targety.
|
||||
- Porównaj te targety ze **wszystkimi innymi listenerami/load balancerami** w tym samym koncie/regionie.
|
||||
- Sprawdź też bezpośrednią ekspozycję przez **publiczne IP instancji**, zbyt permissive **security groups** lub dodatkowe listenery na portach takich jak `80`, `443`, `8080` albo `8443`.
|
||||
|
||||
Dobra zasada myślenia to: **chroń target, a nie tylko jedną drogę do targetu**.
|
||||
|
||||
#### Zaufanie do `X-Forwarded-For` kontrolowanego przez klienta
|
||||
|
||||
Jeśli `routing.http.xff_header_processing.mode` jest ustawione na **`preserve`** na **internet-facing ALB**, backend może otrzymać wartość `X-Forwarded-For` **wstrzykniętą przez atakującego** bez zmian. Jeśli aplikacja ufa temu nagłówkowi w kontekście **access control**, **rate limiting**, **logging** lub **monitoring**, atakujący może podszyć się pod postrzegane IP klienta.
|
||||
```bash
|
||||
curl -isk https://<alb-dns-name>/ -H 'X-Forwarded-For: 127.0.0.1'
|
||||
aws elbv2 describe-load-balancer-attributes --load-balancer-arn <load_balancer_arn>
|
||||
```
|
||||
Preferuj `append` lub `remove` na internet-facing ALBs i unikaj używania nagłówków forwardowanych kontrolowanych przez klienta jako mechanizmu autoryzacji.
|
||||
|
||||
#### Przydatne narzędzie
|
||||
|
||||
[**ELBaph**](https://github.com/doyensec/ELBaph) to auditor tylko do odczytu, który modeluje **ALBs, NLBs, listeners, rules, target groups i targets jako graf routingu** i następnie testuje osiągalne ekspozycje.
|
||||
```bash
|
||||
elbaph scan --region us-east-1
|
||||
elbaph scan --all-regions -p my-pentest-profile
|
||||
```
|
||||
## Launch Templates & Autoscaling Groups
|
||||
|
||||
@@ -239,9 +308,9 @@ aws autoscaling describe-load-balancers
|
||||
```
|
||||
## Nitro
|
||||
|
||||
AWS Nitro to zestaw **innowacyjnych technologii**, które stanowią platformę bazową dla instancji AWS EC2. Wprowadzone przez Amazon w celu **zwiększenia bezpieczeństwa, wydajności i niezawodności**, Nitro wykorzystuje niestandardowe **komponenty sprzętowe i lekki hypervisor**. Zdejmuje wiele tradycyjnych funkcji wirtualizacji na dedykowany sprzęt i oprogramowanie, **minimalizując powierzchnię ataku** i poprawiając efektywność zasobów. Przenosząc funkcje wirtualizacji, Nitro pozwala instancjom EC2 osiągać **wydajność zbliżoną do bare-metal**, co jest szczególnie korzystne dla aplikacji wymagających dużych zasobów. Dodatkowo Nitro Security Chip zapewnia **bezpieczeństwo sprzętu i oprogramowania układowego**, co jeszcze bardziej umacnia jego solidną architekturę.
|
||||
AWS Nitro to zestaw **innowacyjnych technologii**, które tworzą bazową platformę dla instancji AWS EC2. Wprowadzony przez Amazon, aby **zwiększyć bezpieczeństwo, wydajność i niezawodność**, Nitro wykorzystuje niestandardowe **komponenty sprzętowe oraz lekki hypervisor**. Odciąża dużą część tradycyjnej funkcjonalności wirtualizacji na dedykowany sprzęt i oprogramowanie, **minimalizując attack surface** i poprawiając efektywność wykorzystania zasobów. Dzięki przeniesieniu funkcji wirtualizacji Nitro pozwala instancjom EC2 osiągać **wydajność bliską bare metal**, co jest szczególnie korzystne dla aplikacji wymagających dużych zasobów. Dodatkowo Nitro Security Chip zapewnia konkretnie **bezpieczeństwo sprzętu i firmware**, jeszcze bardziej wzmacniając tę solidną architekturę.
|
||||
|
||||
Get more information and how to enumerate it from:
|
||||
Więcej informacji oraz sposób jego enumeracji znajdziesz w:
|
||||
|
||||
{{#ref}}
|
||||
aws-nitro-enum.md
|
||||
@@ -249,35 +318,32 @@ aws-nitro-enum.md
|
||||
|
||||
## VPN
|
||||
|
||||
VPN pozwala połączyć Twoją **sieć on-premise (site-to-site VPN)** lub **laptopy pracowników (Client VPN)** z **AWS VPC**, dzięki czemu usługi są dostępne bez konieczności wystawiania ich w internecie.
|
||||
VPN pozwala połączyć Twoją **on-premise network (site-to-site VPN)** lub **laptopy pracowników (Client VPN)** z **AWS VPC**, dzięki czemu usługi mogą być dostępne bez konieczności wystawiania ich do internetu.
|
||||
|
||||
#### Podstawowe komponenty AWS VPN
|
||||
#### Basic AWS VPN Components
|
||||
|
||||
1. **Customer Gateway**:
|
||||
- Customer Gateway to zasób, który tworzysz w AWS, aby reprezentować swoją stronę połączenia VPN.
|
||||
- Jest to zasadniczo urządzenie fizyczne lub aplikacja programowa po Twojej stronie połączenia Site-to-Site VPN.
|
||||
- Podajesz informacje routingu oraz publiczny adres IP swojego urządzenia sieciowego (np. routera lub firewalla) do AWS, aby utworzyć Customer Gateway.
|
||||
- Służy jako punkt odniesienia przy konfigurowaniu połączenia VPN i nie pociąga za sobą dodatkowych opłat.
|
||||
|
||||
- Customer Gateway to zasób, który tworzysz w AWS, aby reprezentował Twoją stronę połączenia VPN.
|
||||
- To w zasadzie urządzenie fizyczne lub aplikacja software po Twojej stronie połączenia Site-to-Site VPN.
|
||||
- Podajesz AWS informacje routingu oraz publiczny adres IP swojego urządzenia sieciowego (takiego jak router lub firewall), aby utworzyć Customer Gateway.
|
||||
- Służy jako punkt odniesienia do konfiguracji połączenia VPN i nie generuje dodatkowych opłat.
|
||||
2. **Virtual Private Gateway**:
|
||||
- Virtual Private Gateway (VPG) to concentrator VPN po stronie Amazon w połączeniu Site-to-Site VPN.
|
||||
- Jest on podłączony do Twojego VPC i pełni rolę docelową dla połączenia VPN.
|
||||
- Virtual Private Gateway (VPG) to koncentrator VPN po stronie Amazon dla połączenia Site-to-Site VPN.
|
||||
- Jest podłączony do Twojego VPC i służy jako cel dla połączenia VPN.
|
||||
- VPG jest punktem końcowym po stronie AWS dla połączenia VPN.
|
||||
- Obsługuje bezpieczną komunikację między Twoim VPC a siecią on-premises.
|
||||
|
||||
- Obsługuje bezpieczną komunikację między Twoim VPC a on-premises network.
|
||||
3. **Site-to-Site VPN Connection**:
|
||||
- Site-to-Site VPN connection łączy Twoją sieć on-premises z VPC przez bezpieczny tunel IPsec VPN.
|
||||
- Site-to-Site VPN connection łączy Twoją on-premises network z VPC przez bezpieczny tunel VPN IPsec.
|
||||
- Ten typ połączenia wymaga Customer Gateway i Virtual Private Gateway.
|
||||
- Jest używany do bezpiecznej, stabilnej i spójnej komunikacji między Twoim centrum danych lub siecią a środowiskiem AWS.
|
||||
- Zwykle używany do regularnych, długoterminowych połączeń i jest rozliczany na podstawie ilości danych przesłanych przez połączenie.
|
||||
|
||||
- Jest używany do bezpiecznej, stabilnej i spójnej komunikacji między Twoim data center lub network a środowiskiem AWS.
|
||||
- Zwykle używany do regularnych, długoterminowych połączeń i rozliczany na podstawie ilości danych przesłanych przez połączenie.
|
||||
4. **Client VPN Endpoint**:
|
||||
- Client VPN endpoint to zasób, który tworzysz w AWS, aby umożliwić i zarządzać sesjami client VPN.
|
||||
- Służy do pozwalania pojedynczym urządzeniom (np. laptopom, smartfonom itp.) na bezpieczne łączenie się z zasobami AWS lub Twoją siecią on-premises.
|
||||
- Różni się od Site-to-Site VPN tym, że jest przeznaczony dla pojedynczych klientów, a nie do łączenia całych sieci.
|
||||
- W przypadku Client VPN każde urządzenie-klient używa oprogramowania VPN klienta, aby nawiązać bezpieczne połączenie.
|
||||
- Client VPN endpoint to zasób, który tworzysz w AWS, aby umożliwiać i zarządzać sesjami Client VPN.
|
||||
- Służy do umożliwienia pojedynczym urządzeniom (takim jak laptopy, smartfony itp.) bezpiecznego łączenia się z zasobami AWS lub z Twoją on-premises network.
|
||||
- Różni się od Site-to-Site VPN tym, że jest zaprojektowany dla pojedynczych klientów, a nie do łączenia całych sieci.
|
||||
- W Client VPN każde urządzenie klienckie używa software VPN client do zestawienia bezpiecznego połączenia.
|
||||
|
||||
You can [**find more information about the benefits and components of AWS VPNs here**](aws-vpc-and-networking-basic-information.md#vpn).
|
||||
Więcej informacji o korzyściach i komponentach AWS VPNs znajdziesz [**tutaj**](aws-vpc-and-networking-basic-information.md#vpn).
|
||||
|
||||
### Enumeration
|
||||
```bash
|
||||
@@ -303,17 +369,17 @@ aws ec2 describe-vpn-gateways
|
||||
# Get VPN site-to-site connections
|
||||
aws ec2 describe-vpn-connections
|
||||
```
|
||||
### Local Enumeration
|
||||
### Lokalne wyliczanie
|
||||
|
||||
**Lokalne tymczasowe poświadczenia**
|
||||
|
||||
When AWS VPN Client is used to connect to a VPN, the user will usually **login in AWS** to get access to the VPN. Then, some **AWS credentials are created and stored** locally to establish the VPN connection. These credentials are **stored in** `$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt` and contains an **AccessKey**, a **SecretKey** and a **Token**.
|
||||
Gdy AWS VPN Client jest używany do połączenia z VPN, użytkownik zwykle **loguje się w AWS**, aby uzyskać dostęp do VPN. Następnie pewne **poświadczenia AWS są tworzone i przechowywane** lokalnie, aby ustanowić połączenie VPN. Te poświadczenia są **przechowywane w** `$HOME/.config/AWSVPNClient/TemporaryCredentials/<region>/temporary-credentials.txt` i zawierają **AccessKey**, **SecretKey** oraz **Token**.
|
||||
|
||||
Poświadczenia należą do użytkownika `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: research more about the permissions of this credentials).
|
||||
Poświadczenia należą do użytkownika `arn:aws:sts::<acc-id>:assumed-role/aws-vpn-client-metrics-analytics-access-role/CognitoIdentityCredentials` (TODO: zbadać więcej na temat uprawnień tych poświadczeń).
|
||||
|
||||
**Pliki konfiguracyjne .opvn**
|
||||
**pliki konfiguracyjne opvn**
|
||||
|
||||
If a **VPN connection was stablished** you should search for **`.opvn`** config files in the system. Moreover, one place where you could find the **configurations** is in **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
Jeśli **połączenie VPN zostało ustanowione**, powinieneś poszukać plików konfiguracyjnych **`.opvn`** w systemie. Ponadto jednym z miejsc, gdzie możesz znaleźć **konfiguracje**, jest **`$HOME/.config/AWSVPNClient/OpenVpnConfigs`**
|
||||
|
||||
#### **Post Exploitaiton**
|
||||
|
||||
@@ -321,8 +387,13 @@ If a **VPN connection was stablished** you should search for **`.opvn`** config
|
||||
../../aws-post-exploitation/aws-vpn-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
## Referencje
|
||||
## References
|
||||
|
||||
- [https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html)
|
||||
- [AWS Elastic Beanstalk and Amazon EC2 getting started](https://docs.aws.amazon.com/batch/latest/userguide/getting-started-ec2.html)
|
||||
- [Doyensec - Navigating Lax Load Balancers: When an Intersection Gets You Inside](https://blog.doyensec.com/2026/05/25/cloudsectidbits-elbaph-alb.html)
|
||||
- [AWS - Listener rules for your Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-rules.html)
|
||||
- [AWS - HTTP headers and Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/x-forwarded-headers.html)
|
||||
- [AWS - CloudFront managed prefix list for origin-facing servers](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/LocationsOfEdgeServers.html)
|
||||
- [Doyensec - ELBaph](https://github.com/doyensec/ELBaph)
|
||||
|
||||
{{#include ../../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user