Translated ['', 'src/pentesting-cloud/aws-security/aws-services/aws-ec2-

This commit is contained in:
Translator
2026-02-23 23:59:08 +00:00
parent 0d8e02d657
commit eaed84e6a5
2 changed files with 168 additions and 178 deletions
@@ -2,194 +2,184 @@
{{#include ../../../../banners/hacktricks-training.md}}
## AWS Netwerk in 'n Neutskil
## AWS Networking in a Nutshell
'n **VPC** bevat 'n **netwerk CIDR** soos 10.0.0.0/16 (met sy **routeringstabel** en **netwerk ACL**).
A **VPC** contains a **network CIDR** like 10.0.0.0/16 (with its **routing table** and **network ACL**).
Hierdie VPC-netwerk is verdeel in **subnetwerke**, so 'n **subnetwerk** is direk **verwant** aan die **VPC**, **routering** **tabel** en **netwerk ACL**.
This VPC network is divided in **subnetworks**, so a **subnetwork** is directly **related** with the **VPC**, **routing** **table** and **network ACL**.
Dan is **Netwerkinterfaces** wat aan dienste (soos EC2-instansies) gekoppel is, **verbonden** met die **subnetwerke** met **veiligheidsgroep(e)**.
Then, **Network Interface**s attached to services (like EC2 instances) are **connected** to the **subnetworks** with **security group(s)**.
Daarom sal 'n **veiligheidsgroep** die blootgestelde poorte van die netwerk **interfaces wat dit gebruik**, **onafhanklik van die subnetwork** beperk. En 'n **netwerk ACL** sal die blootgestelde poorte tot die **hele netwerk** **beperk**.
Therefore, a **security group** will limit the exposed ports of the network **interfaces using it**, **independently of the subnetwork**. And a **network ACL** will **limit** the exposed ports to to the **whole network**.
Boonop, om **toegang tot die Internet** te verkry, is daar 'n paar interessante konfigurasies om na te kyk:
Moreover, in order to **access Internet**, there are some interesting configurations to check:
- 'n **subnetwerk** kan **outomaties openbare IPv4-adresse toewys**
- 'n **instansie** wat in die netwerk geskep is wat **outomaties IPv4-adresse toewys, kan een kry**
- 'n **Internet-gateway** moet aan die **VPC** **gekoppel** wees
- Jy kan ook **Egress-only internet gateways** gebruik
- Jy kan ook 'n **NAT-gateway** in 'n **privaat subnet** hê sodat dit moontlik is om **verbinding te maak met eksterne dienste** vanaf daardie private subnet, maar dit is **nie moontlik om hulle van buite te bereik** nie.
- Die NAT-gateway kan **publiek** wees (toegang tot die internet) of **privaat** (toegang tot ander VPCs)
- A **subnetwork** can **auto-assign public IPv4 addresses**
- An **instance** created in the network that **auto-assign IPv4 addresses can get one**
- An **Internet gateway** need to be **attached** to the **VPC**
- You could also use **Egress-only internet gateways**
- You could also have a **NAT gateway** in a **private subnet** so it's possible to **connect to external services** from that private subnet, but it's **not possible to reach them from the outside**.
- The NAT gateway can be **public** (access to the internet) or **private** (access to other VPCs)
![](<../../../../images/image (274).png>)
## VPC
Amazon **Virtuele Privaatsky** (Amazon VPC) stel jou in staat om **AWS-hulpbronne in 'n virtuele netwerk** te **ontplooi** wat jy gedefinieer het. Hierdie virtuele netwerk sal verskeie subnetwerke, Internet-gateways om toegang tot die Internet te verkry, ACLs, Veiligheidsgroepe, IPs...
Amazon **Virtual Private Cloud** (Amazon VPC) enables you to **launch AWS resources into a virtual network** that you've defined. This virtual network will have several subnets, Internet Gateways to access Internet, ACLs, Security groups, IPs...
### Subnetwerke
### Subnets
Subnetwerke help om 'n groter vlak van sekuriteit af te dwing. **Logiese groepe van soortgelyke hulpbronne** help jou ook om 'n **gemak van bestuur** oor jou infrastruktuur te handhaaf.
Subnets helps to enforce a greater level of security. **Logical grouping of similar resources** also helps you to maintain an **ease of management** across your infrastructure.
- Geldige CIDR is van 'n /16 netmask tot 'n /28 netmask.
- 'n Subnet kan nie in verskillende beskikbaarheidsone op dieselfde tyd wees nie.
- **AWS reserveer die eerste drie gasheer IP-adresse** van elke subnet **vir** **interne AWS-gebruik**: die eerste gasheeradres wat gebruik word, is vir die VPC-router. Die tweede adres is gereserveer vir AWS DNS en die derde adres is gereserveer vir toekomstige gebruik.
- Dit word **publieke subnetwerke** genoem vir diegene wat **direkte toegang tot die Internet het, terwyl private subnetwerke dit nie het nie.**
- Valid CIDR are from a /16 netmask to a /28 netmask.
- A subnet cannot be in different availability zones at the same time.
- **AWS reserves the first three host IP addresses** of each subnet **for** **internal AWS usage**: the first host address used is for the VPC router. The second address is reserved for AWS DNS and the third address is reserved for future use.
- It's called **public subnets** to those that have **direct access to the Internet, whereas private subnets do not.**
<figure><img src="https://lh5.googleusercontent.com/N_WTrTrDAHwN61FMKJvLSHVua2EM0IazHH1fSTg8JQfTChm-dLN9mn7wkjz2MlpD-uOUqtWdMZpqKOp4VxaHy5-5X66GD1K8y1UGc27r-GbHdFty9ImpXdcjEsC7u4vjxKme_B_HwDOUnG6camxENYECTw=s2048" alt=""><figcaption></figcaption></figure>
### Route Tables
<figure><img src="https://lh3.googleusercontent.com/MmjfVzGmV4jM7tO8lVoTKONoeqbq6E40DGeKUoo4kN-lmMDKnEiGNB-gGVx3EvjK9UV844im225CA8aAjomHf1Modt3MramHrHZdEGbeSZncWhVuT9R8f7tQZ2pXjdSJxeNfErmJ-0mmcUaV6dcU0TAd2A=s2048" alt=""><figcaption></figcaption></figure>
Route tables determine the traffic routing for a subnet within a VPC. They determine which network traffic is forwarded to the internet or to a VPN connection. You will usually find access to the:
### Routeringstabelle
Routeringstabelle bepaal die verkeerroutering vir 'n subnet binne 'n VPC. Hulle bepaal watter netwerkverkeer na die internet of na 'n VPN-verbinding gestuur word. Jy sal gewoonlik toegang vind tot die:
- Plaaslike VPC
- Local VPC
- NAT
- Internet-gateways / Egress-only Internet gateways (nodig om 'n VPC toegang tot die Internet te gee).
- Om 'n subnet publiek te maak, moet jy 'n **Internet-gateway** **skep** en **aanheg** aan jou VPC.
- VPC-eindpunte (om toegang tot S3 vanaf private netwerke te verkry)
In die volgende beelde kan jy die verskille in 'n standaard publieke netwerk en 'n private een nagaan:
<figure><img src="https://lh3.googleusercontent.com/q4ASpcLAYqijdNMLhMLl8EoowDtTMU5I_7YCVfk7-5hxDyeQOik9ImHnD2SYy32XUA2qXjEbXTAxA1lP--znJASdhYOdBveDcrD42f9XBKZ3EmjJCazN3YPLC6oS0xtRMmfORuwCszmMt-KrAkH07_izwg=s2048" alt=""><figcaption></figcaption></figure>
<figure><img src="https://lh5.googleusercontent.com/30psylXAI0gRN6_LK-reP00aGIlMma64E1qafCVPunn6nS-y5jAO6Y2JiempKcf6-LFi7ScicYcOh7BbHEya2VWtksnFX_8SPXQf97tKkg2tNZzrArWbiDCCn2m2LP1QUq6MZ_KayH3yir7t8zpO7CEQOw=s2048" alt=""><figcaption></figcaption></figure>
- Internet Gateways / Egress-only Internet gateways (needed to give a VPC access to the Internet).
- In order to make a subnet public you need to **create** and **attach** an **Internet gateway** to your VPC.
- VPC endpoints (to access S3 from private networks)
### ACLs
**Netwerk Toegang Beheer Lyste (ACLs)**: Netwerk ACLs is firewall-reëls wat inkomende en uitgaande netwerkverkeer na 'n subnet beheer. Hulle kan gebruik word om verkeer na spesifieke IP-adresse of reekse toe te laat of te weier.
**Network Access Control Lists (ACLs)**: Network ACLs are firewall rules that control incoming and outgoing network traffic to a subnet. They can be used to allow or deny traffic to specific IP addresses or ranges.
- Dit is die mees algemene om toegang toe te laat/te weier met behulp van veiligheidsgroepe, maar dit is die enigste manier om gevestigde omgekeerde skulpies heeltemal te sny. 'n Gewysigde reël in 'n veiligheidsgroep stop nie reeds gevestigde verbindings nie.
- Dit geld egter vir die hele subnetwerk, wees versigtig wanneer jy goed verbied omdat nodige funksionaliteit dalk versteur kan word.
- Its most frequent to allow/deny access using security groups, but this is only way to completely cut established reverse shells. A modified rule in a security groups doesnt stop already established connections
- However, this apply to the whole subnetwork be careful when forbidding stuff because needed functionality might be disturbed
### Veiligheidsgroepe
### Security Groups
Veiligheidsgroepe is 'n virtuele **firewall** wat inkomende en uitgaande netwerk **verkeer na instansies** in 'n VPC beheer. Verhouding 1 SG tot M instansies (gewoonlik 1 tot 1).\
Gewoonlik word dit gebruik om gevaarlike poorte in instansies te open, soos poort 22 byvoorbeeld:
Security groups are a virtual **firewall** that control inbound and outbound network **traffic to instances** in a VPC. Relation 1 SG to M instances (usually 1 to 1).\
Usually this is used to open dangerous ports in instances, such as port 22 for example:
<figure><img src="https://lh5.googleusercontent.com/LliB7eb3cYfkEyOpyw1-eYgWsn2kq1yF6uRn5VYndvOuTvDlURimYx9UvuK8F2impTLmx50mid4MdTXE-Ljt2i_rxaIfnKUdji_hFjCdU9tdoW-axng9-W4tSL71gbbjrPQ7IYY5lAdH_G3UoMRMGGGOxQ=s2048" alt=""><figcaption></figcaption></figure>
### Elastiese IP Adresse
### Elastic IP Addresses
'n _Elastiese IP adres_ is 'n **statische IPv4 adres** ontwerp vir dinamiese wolkrekenaars. 'n Elastiese IP adres word aan jou AWS-rekening toegeken, en is joune totdat jy dit vrystel. Deur 'n Elastiese IP adres te gebruik, kan jy die mislukking van 'n instansie of sagteware maskeer deur die adres vinnig na 'n ander instansie in jou rekening te herverdeel.
An _Elastic IP address_ is a **static IPv4 address** designed for dynamic cloud computing. An Elastic IP address is allocated to your AWS account, and is yours until you release it. By using an Elastic IP address, you can mask the failure of an instance or software by rapidly remapping the address to another instance in your account.
### Verbinding tussen subnetwerke
### Connection between subnets
Standaard het alle subnetwerke die **outomatiese toewysing van openbare IP-adresse afgeskakel**, maar dit kan aangeskakel word.
By default, all subnets have the **automatic assigned of public IP addresses turned off** but it can be turned on.
**'n Plaaslike roete binne 'n routeringstabel stel kommunikasie tussen VPC-subnetwerke in staat.**
**A local route within a route table enables communication between VPC subnets.**
As jy 'n **subnet met 'n ander subnet verbind, kan jy nie toegang verkry tot die subnetwerke wat met die ander subnet verbind is nie, jy moet direk verbinding met hulle maak.** **Dit geld ook vir internet-gateways**. Jy kan nie deur 'n subnetverbinding gaan om toegang tot die internet te verkry nie, jy moet die internet-gateway aan jou subnet toewys.
If you are **connection a subnet with a different subnet you cannot access the subnets connected** with the other subnet, you need to create connection with them directly. **This also applies to internet gateways**. You cannot go through a subnet connection to access internet, you need to assign the internet gateway to your subnet.
### VPC Peering
VPC-peering stel jou in staat om **twee of meer VPCs saam te verbind**, met behulp van IPV4 of IPV6, asof hulle deel van dieselfde netwerk is.
VPC peering allows you to **connect two or more VPCs together**, using IPV4 or IPV6, as if they were a part of the same network.
Sodra die peerverbinding gevestig is, kan **hulpbronne in een VPC toegang verkry tot hulpbronne in die ander**. Die verbinding tussen die VPCs word deur die bestaande AWS-netwerkinfrastruktuur geïmplementeer, en is dus hoogs beskikbaar sonder enige bandwydte-bottlenecks. Aangesien **gepeerde verbindings werk asof hulle deel van dieselfde netwerk is**, is daar beperkings wanneer dit kom by jou CIDR-blokreekse wat gebruik kan word.\
As jy **oorlappende of duplikaat CIDR** reekse vir jou VPC het, dan **sal jy nie in staat wees om die VPCs** saam te peer nie.\
Elke AWS VPC sal **slegs met sy peer kommunikeer**. As 'n voorbeeld, as jy 'n peeringverbinding tussen VPC 1 en VPC 2 het, en 'n ander verbinding tussen VPC 2 en VPC 3 soos getoon, dan kan VPC 1 en 2 direk met mekaar kommunikeer, soos VPC 2 en VPC 3, maar VPC 1 en VPC 3 kan nie. **Jy kan nie deur een VPC roete om by 'n ander te kom nie.**
Once the peer connectivity is established, **resources in one VPC can access resources in the other**. The connectivity between the VPCs is implemented through the existing AWS network infrastructure, and so it is highly available with no bandwidth bottleneck. As **peered connections operate as if they were part of the same network**, there are restrictions when it comes to your CIDR block ranges that can be used.\
If you have **overlapping or duplicate CIDR** ranges for your VPC, then **you'll not be able to peer the VPCs** together.\
Each AWS VPC will **only communicate with its peer**. As an example, if you have a peering connection between VPC 1 and VPC 2, and another connection between VPC 2 and VPC 3 as shown, then VPC 1 and 2 could communicate with each other directly, as can VPC 2 and VPC 3, however, VPC 1 and VPC 3 could not. **You can't route through one VPC to get to another.**
### **VPC Stroomlogs**
### **VPC Flow Logs**
Binne jou VPC kan jy potensieel honderde of selfs duisende hulpbronne hê wat tussen verskillende subnetwerke kommunikeer, beide publiek en privaat, en ook tussen verskillende VPCs deur VPC-peeringverbindinge. **VPC Stroomlogs stel jou in staat om IP-verkeersinligting vas te vang wat tussen jou netwerkinterfaces van jou hulpbronne binne jou VPC vloei**.
Within your VPC, you could potentially have hundreds or even thousands of resources all communicating between different subnets both public and private and also between different VPCs through VPC peering connections. **VPC Flow Logs allow you to capture IP traffic information that flows between your network interfaces of your resources within your VPC**.
In teenstelling met S3-toeganglogs en CloudFront-toeganglogs, is die **logdata wat deur VPC Stroomlogs gegenereer word, nie in S3 gestoor nie. In plaas daarvan word die logdata wat vasgevang word, na CloudWatch-logs gestuur**.
Unlike S3 access logs and CloudFront access logs, the **log data generated by VPC Flow Logs is not stored in S3. Instead, the log data captured is sent to CloudWatch logs**.
Beperkings:
Limitations:
- As jy 'n VPC-gepeerde verbinding het, sal jy slegs die stroomlogs van gepeerde VPCs wat binne dieselfde rekening is, kan sien.
- As jy steeds hulpbronne binne die EC2-Klassieke omgewing bestuur, kan jy ongelukkig nie inligting van hul interfaces verkry nie.
- Sodra 'n VPC Stroomlog geskep is, kan dit nie gewysig word nie. Om die VPC Stroomlog-konfigurasie te verander, moet jy dit verwyder en dan 'n nuwe een herskep.
- Die volgende verkeer word nie gemonitor en vasgevang deur die logs nie. DHCP-verkeer binne die VPC, verkeer van instansies wat bestem is vir die Amazon DNS-server.
- Enige verkeer wat bestem is vir die IP-adres van die VPC se standaardrouter en verkeer na en van die volgende adresse, 169.254.169.254 wat gebruik word om instansiemetadataversameling, en 169.254.169.123 wat gebruik word vir die Amazon Tyd Sink diens.
- Verkeer wat verband hou met 'n Amazon Windows aktiveringslisensie van 'n Windows-instansie
- Verkeer tussen 'n netwerklaaibalansierinterface en 'n eindpuntnetwerkinterface
- If you are running a VPC peered connection, then you'll only be able to see flow logs of peered VPCs that are within the same account.
- If you are still running resources within the EC2-Classic environment, then unfortunately you are not able to retrieve information from their interfaces
- Once a VPC Flow Log has been created, it cannot be changed. To alter the VPC Flow Log configuration, you need to delete it and then recreate a new one.
- The following traffic is not monitored and captured by the logs. DHCP traffic within the VPC, traffic from instances destined for the Amazon DNS Server.
- Any traffic destined to the IP address for the VPC default router and traffic to and from the following addresses, 169.254.169.254 which is used for gathering instance metadata, and 169.254.169.123 which is used for the Amazon Time Sync Service.
- Traffic relating to an Amazon Windows activation license from a Windows instance
- Traffic between a network load balancer interface and an endpoint network interface
Vir elke netwerkinterface wat data na die CloudWatch-loggroep publiseer, sal dit 'n ander logstroom gebruik. En binne elkeen van hierdie strome sal daar die stroomloggebeurtenisdata wees wat die inhoud van die loginskrywings toon. Elke een van hierdie **logs vang data tydens 'n venster van ongeveer 10 tot 15 minute**.
For every network interface that publishes data to the CloudWatch log group, it will use a different log stream. And within each of these streams, there will be the flow log event data that shows the content of the log entries. Each of these **logs captures data during a window of approximately 10 to 15 minutes**.
## VPN
### Basiese AWS VPN Komponente
### Basic AWS VPN Components
1. **Kliënt Gateway**:
- 'n Kliënt Gateway is 'n hulpbron wat jy in AWS skep om jou kant van 'n VPN-verbinding te verteenwoordig.
- Dit is essensieel 'n fisiese toestel of sagtewaretoepassing aan jou kant van die Site-to-Site VPN-verbinding.
- Jy verskaf routeringinligting en die openbare IP-adres van jou netwerktoestel (soos 'n router of 'n firewall) aan AWS om 'n Kliënt Gateway te skep.
- Dit dien as 'n verwysingspunt vir die opstelling van die VPN-verbinding en bring geen addisionele koste mee nie.
2. **Virtuele Privaatsky Gateway**:
- 'n Virtuele Privaatsky Gateway (VPG) is die VPN-konsentrasie aan die Amazon-kant van die Site-to-Site VPN-verbinding.
- Dit is aan jou VPC gekoppel en dien as die teiken vir jou VPN-verbinding.
- VPG is die AWS-kant eindpunt vir die VPN-verbinding.
- Dit hanteer die veilige kommunikasie tussen jou VPC en jou plaaslike netwerk.
3. **Site-to-Site VPN Verbinding**:
- 'n Site-to-Site VPN-verbinding verbind jou plaaslike netwerk met 'n VPC deur 'n veilige, IPsec VPN-tunnel.
- Hierdie tipe verbinding vereis 'n Kliënt Gateway en 'n Virtuele Privaatsky Gateway.
- Dit word gebruik vir veilige, stabiele en konsekwente kommunikasie tussen jou datacentrum of netwerk en jou AWS-omgewing.
- Gewoonlik gebruik vir gereelde, langtermynverbindingen en word gefaktureer op grond van die hoeveelheid data wat oor die verbinding oorgedra word.
4. **Kliënt VPN Eindpunt**:
- 'n Kliënt VPN-eindpunt is 'n hulpbron wat jy in AWS skep om kliënt VPN-sessies te aktiveer en te bestuur.
- Dit word gebruik om individuele toestelle (soos skootrekenaars, slimfone, ens.) veilig met AWS-hulpbronne of jou plaaslike netwerk te verbind.
- Dit verskil van Site-to-Site VPN in die sin dat dit ontwerp is vir individuele kliënte eerder as om hele netwerke te verbind.
- Met Kliënt VPN gebruik elke kliënttoestel 'n VPN-kliënt sagteware om 'n veilige verbinding te vestig.
1. **Customer Gateway**:
- A Customer Gateway is a resource that you create in AWS to represent your side of a VPN connection.
- It is essentially a physical device or software application on your side of the Site-to-Site VPN connection.
- You provide routing information and the public IP address of your network device (such as a router or a firewall) to AWS to create a Customer Gateway.
- It serves as a reference point for setting up the VPN connection and doesn't incur additional charges.
2. **Virtual Private Gateway**:
- A Virtual Private Gateway (VPG) is the VPN concentrator on the Amazon side of the Site-to-Site VPN connection.
- It is attached to your VPC and serves as the target for your VPN connection.
- VPG is the AWS side endpoint for the VPN connection.
- It handles the secure communication between your VPC and your on-premises network.
3. **Site-to-Site VPN Connection**:
- A Site-to-Site VPN connection connects your on-premises network to a VPC through a secure, IPsec VPN tunnel.
- This type of connection requires a Customer Gateway and a Virtual Private Gateway.
- It's used for secure, stable, and consistent communication between your data center or network and your AWS environment.
- Typically used for regular, long-term connections and is billed based on the amount of data transferred over the connection.
4. **Client VPN Endpoint**:
- A Client VPN endpoint is a resource that you create in AWS to enable and manage client VPN sessions.
- It is used for allowing individual devices (like laptops, smartphones, etc.) to securely connect to AWS resources or your on-premises network.
- It differs from Site-to-Site VPN in that it is designed for individual clients rather than connecting entire networks.
- With Client VPN, each client device uses a VPN client software to establish a secure connection.
### Site-to-Site VPN
**Verbind jou plaaslike netwerk met jou VPC.**
**Connect your on premisses network with your VPC.**
- **VPN-verbinding**: 'n Veilige verbinding tussen jou plaaslike toerusting en jou VPCs.
- **VPN-tunnel**: 'n Geënkripteerde skakel waar data van die kliëntnetwerk na of van AWS kan beweeg.
- **VPN connection**: A secure connection between your on-premises equipment and your VPCs.
- **VPN tunnel**: An encrypted link where data can pass from the customer network to or from AWS.
Elke VPN-verbinding sluit twee VPN-tunnels in wat jy gelyktydig kan gebruik vir hoë beskikbaarheid.
Each VPN connection includes two VPN tunnels which you can simultaneously use for high availability.
- **Kliëntgateway**: 'n AWS-hulpbron wat inligting aan AWS verskaf oor jou kliëntgateway-toestel.
- **Kliëntgateway-toestel**: 'n Fisiese toestel of sagtewaretoepassing aan jou kant van die Site-to-Site VPN-verbinding.
- **Virtuele privaatsky-gateway**: Die VPN-konsentrasie aan die Amazon-kant van die Site-to-Site VPN-verbinding. Jy gebruik 'n virtuele privaatsky-gateway of 'n transit-gateway as die gateway vir die Amazon-kant van die Site-to-Site VPN-verbinding.
- **Transit-gateway**: 'n transit-hub wat gebruik kan word om jou VPCs en plaaslike netwerke met mekaar te verbind. Jy gebruik 'n transit-gateway of virtuele privaatsky-gateway as die gateway vir die Amazon-kant van die Site-to-Site VPN-verbinding.
- **Customer gateway**: An AWS resource which provides information to AWS about your customer gateway device.
- **Customer gateway device**: A physical device or software application on your side of the Site-to-Site VPN connection.
- **Virtual private gateway**: The VPN concentrator on the Amazon side of the Site-to-Site VPN connection. You use a virtual private gateway or a transit gateway as the gateway for the Amazon side of the Site-to-Site VPN connection.
- **Transit gateway**: A transit hub that can be used to interconnect your VPCs and on-premises networks. You use a transit gateway or virtual private gateway as the gateway for the Amazon side of the Site-to-Site VPN connection.
#### Beperkings
#### Limitations
- IPv6-verkeer word nie ondersteun vir VPN-verbindinge op 'n virtuele privaatsky-gateway nie.
- 'n AWS VPN-verbinding ondersteun nie Pad MTU Ontdekking nie.
- IPv6 traffic is not supported for VPN connections on a virtual private gateway.
- An AWS VPN connection does not support Path MTU Discovery.
Boonop, neem die volgende in ag wanneer jy Site-to-Site VPN gebruik.
In addition, take the following into consideration when you use Site-to-Site VPN.
- Wanneer jy jou VPCs aan 'n gemeenskaplike plaaslike netwerk verbind, beveel ons aan dat jy nie-oorlappende CIDR-blokke vir jou netwerke gebruik.
- When connecting your VPCs to a common on-premises network, we recommend that you use non-overlapping CIDR blocks for your networks.
### Kliënt VPN <a href="#what-is-components" id="what-is-components"></a>
### Client VPN <a href="#what-is-components" id="what-is-components"></a>
**Verbind vanaf jou masjien met jou VPC**
**Connect from your machine to your VPC**
#### Konsepte
#### Concepts
- **Kliënt VPN eindpunt:** Die hulpbron wat jy skep en konfigureer om kliënt VPN-sessies te aktiveer en te bestuur. Dit is die hulpbron waar al kliënt VPN-sessies beëindig word.
- **Teiken netwerk:** 'n Teiken netwerk is die netwerk wat jy met 'n Kliënt VPN-eindpunt assosieer. **'n Subnet van 'n VPC is 'n teiken netwerk**. Om 'n subnet met 'n Kliënt VPN-eindpunt te assosieer, stel jou in staat om VPN-sessies te vestig. Jy kan verskeie subnets met 'n Kliënt VPN-eindpunt assosieer vir hoë beskikbaarheid. Alle subnets moet van dieselfde VPC wees. Elke subnet moet aan 'n ander beskikbaarheidsone behoort.
- **Roete**: Elke Kliënt VPN-eindpunt het 'n routeringstabel wat die beskikbare bestemmingsnetwerkroetes beskryf. Elke roete in die routeringstabel spesifiseer die pad vir verkeer na spesifieke hulpbronne of netwerke.
- **Outorisasiereëls:** 'n autorisatiereël **beperk die gebruikers wat toegang tot 'n netwerk kan verkry**. Vir 'n spesifieke netwerk, konfigureer jy die Aktiewe Gids of identiteitsverskaffer (IdP) groep wat toegang verleen. Slegs gebruikers wat tot hierdie groep behoort, kan toegang tot die spesifieke netwerk verkry. **Standaard is daar geen autorisatiereëls nie** en jy moet autorisatiereëls konfigureer om gebruikers in staat te stel om toegang tot hulpbronne en netwerke te verkry.
- **Kliënt:** Die eindgebruiker wat met die Kliënt VPN-eindpunt verbind om 'n VPN-sessie te vestig. Eindgebruikers moet 'n OpenVPN-kliënt aflaai en die Kliënt VPN-konfigurasie lêer wat jy geskep het, gebruik om 'n VPN-sessie te vestig.
- **Kliënt CIDR-reeks:** 'n IP-adresreeks waaruit kliënt IP-adresse toegeken kan word. Elke verbinding met die Kliënt VPN-eindpunt word aan 'n unieke IP-adres van die kliënt CIDR-reeks toegeken. Jy kies die kliënt CIDR-reeks, byvoorbeeld, `10.2.0.0/16`.
- **Kliënt VPN-poorte:** AWS Kliënt VPN ondersteun poorte 443 en 1194 vir beide TCP en UDP. Die standaard is poort 443.
- **Kliënt VPN netwerkinterfaces:** Wanneer jy 'n subnet met jou Kliënt VPN-eindpunt assosieer, skep ons Kliënt VPN-netwerkinterfaces in daardie subnet. **Verkeer wat na die VPC van die Kliënt VPN-eindpunt gestuur word, word deur 'n Kliënt VPN-netwerkinterface gestuur**. Bron netwerkadresvertaling (SNAT) word dan toegepas, waar die bron IP-adres van die kliënt CIDR-reeks na die Kliënt VPN-netwerkinterface IP-adres vertaal word.
- **Verbindingslogging:** Jy kan verbindingslogging vir jou Kliënt VPN-eindpunt aktiveer om verbindingsgebeurtenisse te log. Jy kan hierdie inligting gebruik om forensiese ondersoeke te doen, te analiseer hoe jou Kliënt VPN-eindpunt gebruik word, of verbindingsprobleme op te los.
- **Selfdiensportaal:** Jy kan 'n selfdiensportaal vir jou Kliënt VPN-eindpunt aktiveer. Kliënte kan in die webgebaseerde portaal aanmeld met hul geloofsbriewe en die nuutste weergawe van die Kliënt VPN-eindpunt konfigurasielêer aflaai, of die nuutste weergawe van die AWS verskafde kliënt.
- **Client VPN endpoint:** The resource that you create and configure to enable and manage client VPN sessions. It is the resource where all client VPN sessions are terminated.
- **Target network:** A target network is the network that you associate with a Client VPN endpoint. **A subnet from a VPC is a target network**. Associating a subnet with a Client VPN endpoint enables you to establish VPN sessions. You can associate multiple subnets with a Client VPN endpoint for high availability. All subnets must be from the same VPC. Each subnet must belong to a different Availability Zone.
- **Route**: Each Client VPN endpoint has a route table that describes the available destination network routes. Each route in the route table specifies the path for traffic to specific resources or networks.
- **Authorization rules:** An authorization rule **restricts the users who can access a network**. For a specified network, you configure the Active Directory or identity provider (IdP) group that is allowed access. Only users belonging to this group can access the specified network. **By default, there are no authorization rules** and you must configure authorization rules to enable users to access resources and networks.
- **Client:** The end user connecting to the Client VPN endpoint to establish a VPN session. End users need to download an OpenVPN client and use the Client VPN configuration file that you created to establish a VPN session.
- **Client CIDR range:** An IP address range from which to assign client IP addresses. Each connection to the Client VPN endpoint is assigned a unique IP address from the client CIDR range. You choose the client CIDR range, for example, `10.2.0.0/16`.
- **Client VPN ports:** AWS Client VPN supports ports 443 and 1194 for both TCP and UDP. The default is port 443.
- **Client VPN network interfaces:** When you associate a subnet with your Client VPN endpoint, we create Client VPN network interfaces in that subnet. **Traffic that's sent to the VPC from the Client VPN endpoint is sent through a Client VPN network interface**. Source network address translation (SNAT) is then applied, where the source IP address from the client CIDR range is translated to the Client VPN network interface IP address.
- **Connection logging:** You can enable connection logging for your Client VPN endpoint to log connection events. You can use this information to run forensics, analyze how your Client VPN endpoint is being used, or debug connection issues.
- **Self-service portal:** You can enable a self-service portal for your Client VPN endpoint. Clients can log into the web-based portal using their credentials and download the latest version of the Client VPN endpoint configuration file, or the latest version of the AWS provided client.
#### Beperkings
#### Limitations
- **Kliënt CIDR-reekse kan nie oorvleuel met die plaaslike CIDR** van die VPC waarin die geassosieerde subnet geleë is nie, of enige roetes wat handmatig aan die Kliënt VPN-eindpunt se routeringstabel bygevoeg is.
- Kliënt CIDR-reekse moet 'n blokgrootte van ten minste **/22** hê en mag **nie groter wees as /12 nie.**
- 'n **Deel van die adresse** in die kliënt CIDR-reeks word gebruik om die **beskikbaarheidsmodel** van die Kliënt VPN-eindpunt te ondersteun, en kan nie aan kliënte toegeken word nie. Daarom beveel ons aan dat jy **'n CIDR-blok toewys wat twee keer die aantal IP-adresse bevat wat benodig word** om die maksimum aantal gelyktydige verbindings wat jy van plan is om te ondersteun op die Kliënt VPN-eindpunt, te aktiveer.
- Die **kliënt CIDR-reeks kan nie verander word** nadat jy die Kliënt VPN-eindpunt geskep het nie.
- Die **subnets** wat met 'n Kliënt VPN-eindpunt geassosieer is, **moet in dieselfde VPC wees**.
- Jy **kan nie verskeie subnets van dieselfde beskikbaarheidsone met 'n Kliënt VPN-eindpunt assosieer nie**.
- 'n Kliënt VPN-eindpunt **ondersteun nie subnetassosiasies in 'n toegewyde huur VPC nie**.
- Kliënt VPN ondersteun **IPv4** verkeer slegs.
- Kliënt VPN is **nie** Federale Inligting Verwerkingsstandaarde (**FIPS**) **konform nie**.
- As multi-faktor verifikasie (MFA) vir jou Aktiewe Gids gedeaktiveer is, kan 'n gebruikerswagwoord nie in die volgende formaat wees nie.
- **Client CIDR ranges cannot overlap with the local CIDR** of the VPC in which the associated subnet is located, or any routes manually added to the Client VPN endpoint's route table.
- Client CIDR ranges must have a block size of at **least /22** and must **not be greater than /12.**
- A **portion of the addresses** in the client CIDR range are used to **support the availability** model of the Client VPN endpoint, and cannot be assigned to clients. Therefore, we recommend that you **assign a CIDR block that contains twice the number of IP addresses that are required** to enable the maximum number of concurrent connections that you plan to support on the Client VPN endpoint.
- The **client CIDR range cannot be changed** after you create the Client VPN endpoint.
- The **subnets** associated with a Client VPN endpoint **must be in the same VPC**.
- You **cannot associate multiple subnets from the same Availability Zone with a Client VPN endpoint**.
- A Client VPN endpoint **does not support subnet associations in a dedicated tenancy VPC**.
- Client VPN supports **IPv4** traffic only.
- Client VPN is **not** Federal Information Processing Standards (**FIPS**) **compliant**.
- If multi-factor authentication (MFA) is disabled for your Active Directory, a user password cannot be in the following format.
```
SCRV1:<base64_encoded_string>:<base64_encoded_string>
```
- Die selfdiensportaal is **nie beskikbaar vir kliënte wat met behulp van wederkerige verifikasie autentiseer nie**.
- The self-service portal is **not available for clients that authenticate using mutual authentication**.
{{#include ../../../../banners/hacktricks-training.md}}
@@ -6,34 +6,34 @@
Amazon S3 is 'n diens wat jou toelaat om **groot hoeveelhede data te stoor**.
Amazon S3 bied verskeie opsies om die **beskerming** van data at REST te bewerkstellig. Die opsies sluit in **Permission** (Policy), **Encryption** (Client and Server Side), **Bucket Versioning** en **MFA based delete**. Die **gebruiker kan aktiveer** enige van hierdie opsies om databeskerming te bereik. **Data replication** is 'n interne fasiliteit deur AWS waar **S3 automatically replicates each object across all the Availability Zones** en die organisasie dit nie hoef te aktiveer nie.
Amazon S3 bied verskeie opsies om die **beskerming** van data by rus te bewerkstellig. Die opsies sluit in **Toestemming** (Policy), **Enkripsie** (klient- en bedienerzijde), **Bucket Versioning** en **MFA** **based delete**. Die **gebruiker kan enige van hierdie opsies aktiveer** om databeskerming te bereik. **Data replication** is 'n interne funksie van AWS waar **S3 automatisch elke objek oor al die Availability Zones repliseer** en die organisasie dit in hierdie geval nie hoef te aktiveer nie.
Met resource-based permissions kan jy toestemmings vir sub-gidse van jou bucket afsonderlik definieer.
### Bucket Versioning and MFA based delete
Wanneer bucket versioning aangeskakel is, sal enige aksie wat probeer om 'n lêer in die bucket te wysig 'n nuwe weergawe van daardie lêer skep en ook die vorige inhoud behou. Daarom sal dit nie die bestaande inhoud oor-skryf nie.
Wanneer Bucket Versioning geaktiveer is, sal enige aksie wat probeer om 'n lêer te verander 'n nuwe weergawe van die lêer genereer en ook die vorige inhoud behou. Daarom sal dit nie die inhoud oorskryf nie.
Boonop sal MFA based delete verhoed dat weergawes van lêers in die S3 bucket uitgevee word en ook verhoed dat Bucket Versioning gedeaktiveer word, sodat 'n aanvaller nie hierdie lêers kan verander nie.
Bo en behalwe sal MFA based delete verhinder dat weergawes van lêers in die S3 bucket uitgevee word en ook dat Bucket Versioning gedeaktiveer word, sodat 'n aanvaller nie hierdie lêers kan verander nie.
### S3 Access logs
Dit is moontlik om **enable S3 access login** (wat standaard gedeaktiveer is) op 'n bucket aan te skakel en die logs in 'n ander bucket te stoor om te bepaal wie toegang tot die bucket het (albei buckets moet in dieselfde streek wees).
Dit is moontlik om **S3 access logging in te skakel** (wat standaard gedeaktiveer is) vir 'n bucket en die logs in 'n ander bucket te stoor om te weet wie toegang tot die bucket het (albei buckets moet in dieselfde streek wees).
### S3 Presigned URLs
Dit is moontlik om 'n presigned URL te genereer wat gewoonlik gebruik kan word om die gespesifiseerde lêer in die bucket te bereik. A **presigned URL looks like this**:
Dit is moontlik om 'n presigned URL te genereer wat gewoonlik gebruik kan word om **toegang tot die gespesifiseerde lêer** in die bucket te kry. 'n **Presigned URL lyk soos hierdie**:
```
https://<bucket-name>.s3.us-east-1.amazonaws.com/asd.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUUE8GZC4S5L3TY3P%2F20230227%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230227T142551Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjELf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMSJHMEUCIBhQpdETJO3HKKDk2hjNIrPWwBE8gZaQccZFV3kCpPCWAiEAid3ueDtFFU%2FOQfUpvxYTGO%2BHoS4SWDMUrQAE0pIaB40qggMIYBAAGgwzMTgxNDIxMzg1NTMiDJLI5t7gr2EGxG1Y5CrfAioW0foHIQ074y4gvk0c%2B%2Fmqc7cNWb1njQslQkeePHkseJ3owzc%2FCwkgE0EuZTd4mw0aJciA2XIbJRCLPWTb%2FCBKPnIMJ5aBzIiA2ltsiUNQTTUxYmEgXZoJ6rFYgcodnmWW0Et4Xw59UlHnCDB2bLImxPprriyCzDDCD6nLyp3J8pFF1S8h3ZTJE7XguA8joMs4%2B2B1%2FeOZfuxXKyXPYSKQOOSbQiHUQc%2BFnOfwxleRL16prWk1t7TamvHR%2Bt3UgMn5QWzB3p8FgWwpJ6GjHLkYMJZ379tkimL1tJ7o%2BIod%2FMYrS7LDCifP9d%2FuYOhKWGhaakPuJKJh9fl%2B0vGl7kmApXigROxEWon6ms75laXebltsWwKcKuYca%2BUWu4jVJx%2BWUfI4ofoaGiCSaKALTqwu4QNBRT%2BMoK6h%2BQa7gN7JFGg322lkxRY53x27WMbUE4unn5EmI54T4dWt1%2Bg8ljDS%2BvKfBjqmAWRwuqyfwXa5YC3xxttOr3YVvR6%2BaXpzWtvNJQNnb6v0uI3%2BTtTexZkJpLQYqFcgZLQSxsXWSnf988qvASCIUhAzp2UnS1uqy7QjtD5T73zksYN2aesll7rvB80qIuujG6NOdHnRJ2M5%2FKXXNo1Yd15MtzPuSjRoSB9RSMon5jFu31OrQnA9eCUoawxbB0nHqwK8a43CKBZHhA8RoUAJW%2B48EuFsp3U%3D&X-Amz-Signature=3436e4139e84dbcf5e2e6086c0ebc92f4e1e9332b6fda24697bc339acbf2cdfa
```
'n presigned URL kan **geskep word vanaf die cli met credentials van 'n principal wat toegang tot die object het** (indien die account wat jy gebruik nie toegang het nie, sal 'n korter presigned URL geskep word, maar dit sal nutteloos wees)
'n presigned URL kan **vanaf die cli geskep word deur inlogbewyse van 'n principal met toegang tot die objek te gebruik** (as die rekening wat jy gebruik nie toegang het nie, sal 'n korter presigned URL geskep word, maar dit sal nutteloos wees)
```bash
aws s3 presign --region <bucket-region> 's3://<bucket-name>/<file-name>'
```
> [!NOTE]
> Die enigste vereiste permissie om 'n presigned URL te genereer is die permissie wat gegee word, so vir die vorige opdrag is die enigste permissie wat deur die prinsipaal benodig word `s3:GetObject`
>
> Dit is ook moontlik om presigned URLs te skep met **ander permissies**:
> Die enigste vereiste toestemming om 'n presigned URL te genereer is die toestemming wat gegee word, so vir die vorige opdrag is die enigste toestemming wat deur die principal benodig word `s3:GetObject`
Dit is ook moontlik om presigned URLs met **ander permissies** te skep:
```python
import boto3
url = boto3.client('s3').generate_presigned_url(
@@ -44,22 +44,22 @@ ExpiresIn=3600
```
### S3 Enkripsie-meganismes
**DEK beteken Data Encryption Key** en is die sleutel wat altyd gegenereer word en gebruik word om data te enkripteer.
**DEK means Data Encryption Key** en is die sleutel wat altyd gegenereer word en gebruik word om data te enkripteer.
<details>
<summary><strong>Server-side encryption with S3 managed keys, SSE-S3</strong></summary>
Hierdie opsie vereis minimale konfigurasie en alle bestuur van die enkripsiesleutels word deur AWS hanteer. Alles wat jy hoef te doen is om jou data op te laai en S3 sal al die ander aspekte hanteer. Elke bucket in 'n S3 rekening kry 'n bucket key.
Hierdie opsie vereis minimale konfigurasie en alle bestuur van die encryption keys word deur AWS hanteer. Alles wat jy hoef te doen is om jou data op te laai en S3 sal al die ander aspekte hanteer. Elke bucket in 'n S3 account kry 'n bucket key toegewys.
- Enkripsie:
- Object Data + created plaintext DEK --> Encrypted data (gestoor binne S3)
- Created plaintext DEK + S3 Master Key --> Encrypted DEK (gestoor binne S3) en die plain text word uit geheue verwyder
- Object Data + created plaintext DEK --> Encrypted data (stored inside S3)
- Created plaintext DEK + S3 Master Key --> Encrypted DEK (stored inside S3) and plain text is deleted from memory
- Dekripsie:
- Encrypted DEK + S3 Master Key --> Plaintext DEK
- Plaintext DEK + Encrypted data --> Object Data
Let asseblief daarop dat in hierdie geval **die sleutel deur AWS bestuur word** (rotasie slegs elke 3 jaar). As jy jou eie sleutel gebruik, sal jy in staat wees om te roteer, te deaktiveer en toegangskontrole toe te pas.
Neem asseblief kennis dat in hierdie geval **die sleutel deur AWS bestuur word** (rotasie slegs elke 3 jaar). As jy jou eie sleutel gebruik sal jy in staat wees om te roteer, deaktiveer en toegangbeheer toe te pas.
</details>
@@ -67,16 +67,16 @@ Let asseblief daarop dat in hierdie geval **die sleutel deur AWS bestuur word**
<summary><strong>Server-side encryption with KMS managed keys, SSE-KMS</strong></summary>
Hierdie metode laat S3 toe om die Key Management Service te gebruik om jou data-enkripsiesleutels te genereer. KMS gee jou baie meer buigsaamheid oor hoe jou sleutels bestuur word. Byvoorbeeld, jy kan die CMK deaktiveer, roteer en toegangskontroles toepas, en hul gebruik nagaan met AWS Cloud Trail.
Hierdie metode laat S3 toe om die key management service te gebruik om jou data encryption keys te genereer. KMS gee jou baie groter buigsaamheid oor hoe jou sleutels bestuur word. Byvoorbeeld, jy kan die CMK deaktiveer, roteer en toegangskontroles toepas, en toesig oor hul gebruik hou met AWS Cloud Trail.
- Enkripsie:
- S3 versoek data keys van KMS CMK
- KMS gebruik 'n CMK om die paar plaintext DEK en encrypted DEK te genereer en stuur hulle terug na S3
- S3 gebruik die plaintext sleutel om die data te enkripteer, stoor die encrypted data en die encrypted sleutel, en verwyder die plain text sleutel uit geheue
- S3 request data keys from KMS CMK
- KMS uses a CMK to generate the pair DEK plaintext and DEK encrypted and send them to S£
- S3 uses the paintext key to encrypt the data, store the encrypted data and the encrypted key and deletes from memory the plain text key
- Dekripsie:
- S3 vra KMS om die encrypted data key van die object te dekripteer
- KMS dekripteer die data key met die CMK en stuur dit terug aan S3
- S3 dekripteer die object data
- S3 ask to KMS to decrypt the encrypted data key of the object
- KMS decrypt the data key with the CMK and send it back to S3
- S3 decrypts the object data
</details>
@@ -84,17 +84,17 @@ Hierdie metode laat S3 toe om die Key Management Service te gebruik om jou data-
<summary><strong>Server-side encryption with customer provided keys, SSE-C</strong></summary>
Hierdie opsie gee jou die geleentheid om jou eie master sleutel te verskaf wat jy dalk reeds buite AWS gebruik. Jou customer-provided key word saam met jou data na S3 gestuur, waar S3 dan die enkripsie vir jou sal uitvoer.
Hierdie opsie gee jou die geleentheid om jou eie master key te voorsien wat jy moontlik al buite AWS gebruik. Jou customer-provided key sal saam met jou data na S3 gestuur word, waar S3 dan die enkripsie vir jou sal uitvoer.
- Enkripsie:
- Die gebruiker stuur die object data + Customer key na S3
- Die customer key word gebruik om die data te enkripteer en die geënkripteerde data word gestoor
- 'n gesoute HMAC waarde van die customer key word ook gestoor vir toekomstige sleutelverifikasie
- Die customer key word uit geheue verwyder
- The user sends the object data + Customer key to S3
- The customer key is used to encrypt the data and the encrypted data is stored
- a salted HMAC value of the customer key is stored also for future key validation
- the customer key is deleted from memory
- Dekripsie:
- Die gebruiker stuur die customer key
- Die sleutel word geverifieer teen die gestoor HMAC waarde
- Die customer-provided key word dan gebruik om die data te dekripteer
- The user send the customer key
- The key is validated against the HMAC value stored
- The customer provided key is then used to decrypt the data
</details>
@@ -102,17 +102,17 @@ Hierdie opsie gee jou die geleentheid om jou eie master sleutel te verskaf wat j
<summary><strong>Client-side encryption with KMS, CSE-KMS</strong></summary>
Soos met SSE-KMS, gebruik dit ook die Key Management Service om jou data-enkripsiesleutels te genereer. Hierdie keer word KMS egter deur die client aangespreek en nie deur S3 nie. Die enkripsie vind kliënt-kant plaas en die geënkripteerde data word dan na S3 gestuur vir stoor.
Soos met SSE-KMS, gebruik dit ook die key management service om jou data encryption keys te genereer. Hierdie keer word KMS egter deur die client aangeroep, nie S3 nie. Die enkripsie vind client-side plaas en die encrypted data word dan na S3 gestuur om gestoor te word.
- Enkripsie:
- Client versoek 'n data key van KMS
- KMS stuur die plaintext DEK en die encrypted DEK met die CMK terug
- Beide sleutels word teruggestuur aan die client
- Die client enkripteer dan die data met die plaintext DEK en stuur na S3 die encrypted data + die encrypted DEK (wat as metadata van die geënkripteerde data in S3 gestoor word)
- Client request for a data key to KMS
- KMS returns the plaintext DEK and the encrypted DEK with the CMK
- Both keys are sent back
- The client then encrypts the data with the plaintext DEK and send to S3 the encrypted data + the encrypted DEK (which is saved as metadata of the encrypted data inside S3)
- Dekripsie:
- Die geënkripteerde data met die encrypted DEK word aan die client gestuur
- Die client vra KMS om die encrypted sleutel te dekripteer met die CMK en KMS stuur die plaintext DEK terug
- Die client kan nou die geënkripteerde data dekripteer
- The encrypted data with the encrypted DEK is sent to the client
- The client asks KMS to decrypt the encrypted key using the CMK and KMS sends back the plaintext DEK
- The client can now decrypt the encrypted data
</details>
@@ -120,21 +120,21 @@ Soos met SSE-KMS, gebruik dit ook die Key Management Service om jou data-enkrips
<summary><strong>Client-side encryption with customer provided keys, CSE-C</strong></summary>
Met hierdie meganisme kan jy jou eie verskafde sleutels gebruik en 'n AWS-SDK client gebruik om jou data te enkripteer voordat jy dit na S3 stuur vir stoor.
Met hierdie meganisme kan jy jou eie voorsiene sleutels gebruik en 'n AWS-SDK client gebruik om jou data te enkripteer voordat jy dit na S3 stuur vir berging.
- Enkripsie:
- Die client genereer 'n DEK en enkripteer die plaintext data
- Daarna enkripteer dit die DEK met sy eie custom CMK
- Dien die encrypted data + encrypted DEK in by S3 waar dit gestoor word
- The client generates a DEK and encrypts the plaintext data
- Then, using it's own custom CMK it encrypts the DEK
- submit the encrypted data + encrypted DEK to S3 where it's stored
- Dekripsie:
- S3 stuur die encrypted data en DEK
- Aangesien die client reeds die CMK het wat gebruik is om die DEK te enkripteer, dekripteer dit die DEK en gebruik dan die plaintext DEK om die data te dekripteer
- S3 sends the encrypted data and DEK
- As the client already has the CMK used to encrypt the DEK, it decrypts the DEK and then uses the plaintext DEK to decrypt the data
</details>
### **Enumeration**
### **Enumerasie**
Een van die tradisionele hoofmanieres om AWS-orgs te kompromitteer begin deur publiek toeganklike buckets te kompromitteer. **You can find** [**public buckets enumerators in this page**](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.**
Een van die tradisionele hoofmaniere om AWS orgs te kompromitteer begin deur openbare toeganklike buckets te kompromitteer. **Jy kan** [**public buckets enumerators in this page**](../aws-unauthenticated-enum-access/index.html#s3-buckets)**.**
```bash
# Get buckets ACLs
aws s3api get-bucket-acl --bucket <bucket-name>
@@ -150,7 +150,7 @@ aws s3api list-buckets
# list content of bucket (no creds)
aws s3 ls s3://bucket-name --no-sign-request
aws s3 ls s3://bucket-name --recursive
aws s3 ls s3://bucket-name --recursive --no-sign-request
# list content of bucket (with creds)
aws s3 ls s3://bucket-name
@@ -229,16 +229,16 @@ aws s3api put-object-acl --bucket <bucket-name> --key flag --access-control-poli
```
### dual-stack <a href="#dual-stack-endpoints-description" id="dual-stack-endpoints-description"></a>
Jy kan toegang tot 'n S3-bucket kry via 'n dual-stack-eindpunt deur 'n virtual hosted-style of path-style eindpuntnaam te gebruik. Dit is nuttig om S3 via IPv6 te bereik.
Jy kan toegang tot 'n S3 bucket kry via 'n dual-stack endpoint deur 'n virtual hosted-style of 'n path-style endpoint-naam te gebruik. Hierdie is nuttig om toegang tot S3 via IPv6 te kry.
Dual-stack-eindpunte gebruik die volgende sintaksis:
Dual-stack endpoints gebruik die volgende sintaksis:
- `bucketname.s3.dualstack.aws-region.amazonaws.com`
- `s3.dualstack.aws-region.amazonaws.com/bucketname`
### Privesc
Op die volgende bladsy kan jy sien hoe om **abuse S3 permissions to escalate privileges**:
Op die volgende bladsy kan jy kyk hoe om **abuse S3 permissions to escalate privileges**:
{{#ref}}
../aws-privilege-escalation/aws-s3-privesc/README.md
@@ -262,23 +262,23 @@ Op die volgende bladsy kan jy sien hoe om **abuse S3 permissions to escalate pri
../aws-persistence/aws-s3-persistence/README.md
{{#endref}}
## Ander S3 kwesbaarhede
## Other S3 vulns
### S3 HTTP Cache Poisoning Issue <a href="#heading-s3-http-desync-cache-poisoning-issue" id="heading-s3-http-desync-cache-poisoning-issue"></a>
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) was dit moontlik om die respons van 'n ewekansige bucket in die kas te stoor asof dit aan 'n ander behoort het. Dit kon misbruik word om byvoorbeeld JavaScript-lêerresponsies te verander en ewekansige bladsye te kompromitteer wat S3 gebruik om statiese kode te stoor.
[**According to this research**](https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies#heading-s3-http-desync-cache-poisoning-issue) dit was moontlik om die respons van 'n ewekansige bucket te cache asof dit aan 'n ander behoort. Dit sou misbruik kon word om byvoorbeeld JavaScript-lêerresponsse te verander en ewekansige bladsye te kompromitteer wat S3 gebruik om statiese kode te stoor.
## Amazon Athena
Amazon Athena is 'n interaktiewe query-diens wat dit maklik maak om data direk te ontleed in Amazon Simple Storage Service (Amazon **S3**) met behulp van standaard **SQL**.
Amazon Athena is 'n interaktiewe query-diens wat dit maklik maak om data direk in Amazon Simple Storage Service (Amazon **S3**) te ontleed met standaard **SQL**.
Jy moet **'n relationele DB-tabel voorberei** met die formaat van die inhoud wat in die gemonitorde S3-buckets gaan verskyn. Daarna sal Amazon Athena in staat wees om die DB vanaf die logs te vul, sodat jy dit kan query.
Jy moet 'n relationele DB-tabel voorberei met die formaat van die inhoud wat in die gemonitorde S3-buckets gaan verskyn. Daarna kan Amazon Athena die DB uit die logs vul, sodat jy dit kan query.
Amazon Athena ondersteun die **vermoë om S3-data te query wat reeds versleuteld is** en as dit so gekonfigureer is, kan **Athena ook die resultate van die query versleutel wat dan in S3 gestoor kan word**.
Amazon Athena ondersteun die vermoë om S3-data te query wat reeds geënkripteer is, en as dit so gekonfigureer is, kan Athena ook die resultate van die query enkripteer wat dan in S3 gestoor kan word.
**Hierdie enkripsie van resultate is onafhanklik van die onderliggende ge-queryde S3-data**, wat beteken dat selfs as die S3-data nie versleuteld is nie, die ge-queryde resultate versleuteld kan wees. 'n Paar punte om te onthou is dat Amazon Athena slegs data ondersteun wat **versleuteld** is met die **volgende S3-enkripsiemetodes**, **SSE-S3, SSE-KMS, and CSE-KMS**.
**Hierdie enkripsie van resultate is onafhanklik van die onderliggende ge-queryde S3-data**, wat beteken dat selfs al is die S3-data nie geënkripteer nie, die ge-queryde resultate geënkripteer kan wees. 'n Paar punte om bewus van te wees: Amazon Athena ondersteun slegs data wat geënkripteer is met die volgende S3-enkripsiemetodes, **SSE-S3, SSE-KMS, and CSE-KMS**.
SSE-C and CSE-C are not supported. Daarbenewens is dit belangrik om te verstaan dat Amazon Athena slegs query's teen **versleutelde objecte wat in dieselfde streek as die query self is** sal uitvoer. As jy S3-data moet query wat met KMS versleuteld is, is spesifieke permissies benodig deur die Athena-gebruiker om hulle toe te laat om die query uit te voer.
SSE-C and CSE-C are not supported. Daarbenewens is dit belangrik om te verstaan dat Amazon Athena slegs queries teen geënkripteerde objecte sal uitvoer wat in dieselfde regio as die query self is. As jy S3-data wil query wat met KMS geënkripteer is, vereis dit spesifieke toestemmings deur die Athena-gebruiker om die query uit te voer.
### Enumeration
```bash