mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['src/pentesting-cloud/azure-security/az-post-exploitation/az
This commit is contained in:
@@ -1,44 +1,70 @@
|
||||
# Metodología de pentesting en la nube
|
||||
# Pentesting Cloud Methodology
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
<figure><img src="../images/CLOUD-logo-letters.svg" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
## Metodología básica
|
||||
## Basic Methodology
|
||||
|
||||
Cada nube tiene sus propias peculiaridades pero en general hay algunas **cosas comunes que un pentester debería revisar** al evaluar un entorno en la nube:
|
||||
Cada cloud tiene sus propias peculiaridades, pero en general hay algunas **cosas comunes que un pentester debería comprobar** al probar un entorno cloud:
|
||||
|
||||
- **Comprobaciones de benchmark**
|
||||
- Esto te ayudará a **entender el tamaño** del entorno y **los servicios utilizados**
|
||||
- También te permitirá encontrar algunas **misconfiguraciones rápidas**, ya que puedes realizar la mayoría de estas pruebas con **herramientas automatizadas**
|
||||
- **Enumeración de servicios**
|
||||
- Probablemente no encontrarás muchas más misconfiguraciones aquí si realizaste correctamente las comprobaciones de benchmark, pero podrías encontrar algunas que no se buscaron en las pruebas de benchmark.
|
||||
- Esto te permitirá saber **qué se está usando exactamente** en el entorno en la nube
|
||||
- **Benchmark checks**
|
||||
- Esto te ayudará a **entender el tamaño** del entorno y los **servicios usados**
|
||||
- También te permitirá encontrar algunas **quick misconfigurations** ya que puedes realizar la mayoría de estas pruebas con **automated tools**
|
||||
- **Services Enumeration**
|
||||
- Probablemente no encuentres muchas más misconfigurations aquí si realizaste correctamente las pruebas de benchmark, pero podrías encontrar algunas que no se estaban buscando en la prueba de benchmark.
|
||||
- Esto te permitirá saber **qué se está usando exactamente** en el entorno cloud
|
||||
- Esto ayudará mucho en los siguientes pasos
|
||||
- **Comprobar activos expuestos**
|
||||
- Esto puede hacerse durante la sección anterior; necesitas **identificar todo lo que potencialmente está expuesto** a Internet de alguna manera y cómo puede ser accedido.
|
||||
- Aquí me refiero a **infraestructura expuesta manualmente** como instancias con páginas web u otros puertos expuestos, y también a otros **servicios gestionados en la nube que pueden configurarse** para estar expuestos (como DBs o buckets)
|
||||
- Luego deberías comprobar **si ese recurso puede ser expuesto o no** (¿información confidencial? ¿vulnerabilidades? ¿misconfiguraciones en el servicio expuesto?)
|
||||
- **Comprobar permisos**
|
||||
- Aquí deberías **identificar todos los permisos de cada rol/usuario** dentro de la nube y cómo se usan
|
||||
- ¿Demasiadas cuentas con **privilegios elevados** (controlan todo)? ¿Claves generadas que no se usan?... La mayoría de estas comprobaciones deberían haberse hecho ya en los tests de benchmark
|
||||
- Si el cliente está usando OpenID o SAML u otra **federación** puede que necesites pedirles más **información** sobre **cómo se asigna cada rol** (no es lo mismo que el rol admin esté asignado a 1 usuario o a 100)
|
||||
- **No es suficiente encontrar** qué usuarios tienen permisos **admin** "*:*". Hay muchos **otros permisos** que, dependiendo de los servicios usados, pueden ser muy **sensibles**.
|
||||
- Además, existen **posibles rutas de privesc** que se pueden seguir abusando de permisos. Todas estas cosas deben tenerse en cuenta y **se deben reportar tantos caminos de privesc como sea posible**.
|
||||
- **Comprobar integraciones**
|
||||
- Es altamente probable que **se estén usando integraciones con otras nubes o SaaS** dentro del entorno en la nube.
|
||||
- Para **las integraciones de la nube que estás auditando** con otra plataforma, deberías notificar **quién tiene acceso para (ab)usar esa integración** y deberías preguntar **qué tan sensible** es la acción que se realiza.\
|
||||
Por ejemplo, quién puede escribir en un bucket de AWS del cual GCP está obteniendo datos (preguntar qué tan sensible es la acción en GCP al tratar esos datos).
|
||||
- Para **las integraciones dentro de la nube que estás auditando** desde plataformas externas, deberías preguntar **quién tiene acceso externamente para (ab)usar esa integración** y comprobar cómo se están usando esos datos.\
|
||||
Por ejemplo, si un servicio está usando una imagen Docker alojada en GCR, deberías preguntar quién tiene acceso para modificarla y qué información sensible y accesos obtendrá esa imagen cuando se ejecute dentro de una nube AWS.
|
||||
- **Check exposed assets**
|
||||
- Esto se puede hacer durante la sección anterior, necesitas **averiguar todo lo que esté potencialmente expuesto** a Internet de alguna manera y cómo se puede acceder.
|
||||
- Aquí me refiero a infraestructura **manualmente expuesta**, como instances con páginas web u otros ports expuestos, y también a otros **cloud managed services que pueden configurarse** para estar expuestos (como DBs o buckets)
|
||||
- Luego deberías comprobar **si ese recurso puede exponerse o no** (¿información confidencial? ¿vulnerabilities? ¿misconfigurations en el servicio expuesto?)
|
||||
- **Check permissions**
|
||||
- Aquí deberías **averiguar todos los permisos de cada role/user** dentro del cloud y cómo se usan
|
||||
- ¿Demasiadas cuentas **highly privileged** (controlan todo)? ¿keys generadas que no se usan?... La mayoría de estas comprobaciones ya deberían haberse hecho en las pruebas de benchmark
|
||||
- Si el cliente está usando OpenID o SAML u otra **federation**, quizá necesites pedirle más **information** sobre **cómo se asigna cada role** (no es lo mismo que el role admin se asigne a 1 user o a 100)
|
||||
- **No basta con encontrar** qué users tienen permisos de **admin** "\*:\*". Hay muchos **other permissions** que, dependiendo de los servicios usados, pueden ser muy **sensitive**.
|
||||
- Además, hay **potential privesc** que se pueden seguir abusando de permissions. Todo esto debería tenerse en cuenta y deberían reportarse **as much privesc paths as possible**.
|
||||
- **Check Integrations**
|
||||
- Es muy probable que se estén usando **integrations con other clouds or SaaS** dentro del entorno cloud.
|
||||
- Para las **integrations del cloud que estás auditando** con otra platform, deberías notificar **quién tiene acceso para (ab)usar esa integration** y deberías preguntar **cuán sensitive** es la acción que se está realizando.\
|
||||
Por ejemplo, quién puede escribir en un AWS bucket del que GCP está obteniendo data (pregunta cuán sensitive es la acción en GCP tratando esos data).
|
||||
- Para las **integrations dentro del cloud que estás auditando** desde external platforms, deberías preguntar **quién tiene acceso externo para (ab)usar esa integration** y comprobar cómo se está usando esos data.\
|
||||
Por ejemplo, si un service está usando una Docker image alojada en GCR, deberías preguntar quién tiene acceso para modificarla y qué sensitive info y access obtendrá esa image cuando se ejecute dentro de un AWS cloud.
|
||||
|
||||
## Herramientas Multi-Cloud
|
||||
### Hunt autonomous data streams writing to globally-unique storage
|
||||
|
||||
Hay varias herramientas que se pueden usar para evaluar diferentes entornos en la nube. Los pasos de instalación y los enlaces se indicarán en esta sección.
|
||||
Durante la post-exploitation, revisa exports de larga duración como log sinks, subscriptions, replication jobs, Firehose streams y diagnostic settings que escriben en buckets o storage accounts con nombre globally-unique. Si el destino puede eliminarse y el mismo nombre puede recrearse bajo control del atacante, el upstream service podría seguir entregando datos sensibles al replacement destination incluso cuando el atacante no pueda actualizar el router resource en sí.
|
||||
|
||||
Céntrate en esta comprobación en las páginas de servicios relevantes:
|
||||
|
||||
{{#ref}}
|
||||
gcp-security/gcp-post-exploitation/gcp-logging-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
{{#ref}}
|
||||
gcp-security/gcp-post-exploitation/gcp-pub-sub-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
{{#ref}}
|
||||
gcp-security/gcp-post-exploitation/gcp-storage-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
{{#ref}}
|
||||
aws-security/aws-post-exploitation/aws-s3-post-exploitation/README.md
|
||||
{{#endref}}
|
||||
|
||||
{{#ref}}
|
||||
azure-security/az-post-exploitation/az-blob-storage-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
## Multi-Cloud tools
|
||||
|
||||
Hay varias tools que se pueden usar para probar diferentes entornos cloud. Los pasos de instalación y los links se indicarán en esta sección.
|
||||
|
||||
### [PurplePanda](https://github.com/carlospolop/purplepanda)
|
||||
|
||||
Una herramienta para **identificar malas configuraciones y rutas de privesc en nubes y entre nubes/SaaS.**
|
||||
Una tool para **identificar bad configurations y privesc path en clouds y across clouds/SaaS.**
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Install" }}
|
||||
@@ -71,7 +97,7 @@ python3 main.py -e -p google #Enumerate the env
|
||||
|
||||
### [Prowler](https://github.com/prowler-cloud/prowler)
|
||||
|
||||
Soporta **AWS, GCP & Azure**. Consulta cómo configurar cada proveedor en [https://docs.prowler.cloud/en/latest/#aws](https://docs.prowler.cloud/en/latest/#aws)
|
||||
Soporta **AWS, GCP y Azure**. Revisa cómo configurar cada proveedor en [https://docs.prowler.cloud/en/latest/#aws](https://docs.prowler.cloud/en/latest/#aws)
|
||||
```bash
|
||||
# Install
|
||||
pip install prowler
|
||||
@@ -115,7 +141,7 @@ npm install
|
||||
AWS, Azure, GCP, Alibaba Cloud, Oracle Cloud Infrastructure
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Install" }}
|
||||
{{#tab name="Instalar" }}
|
||||
```bash
|
||||
mkdir scout; cd scout
|
||||
virtualenv -p python3 venv
|
||||
@@ -168,9 +194,9 @@ steampipe check all
|
||||
```
|
||||
<details>
|
||||
|
||||
<summary>Comprobar todos los proyectos</summary>
|
||||
<summary>Revisar todos los Projects</summary>
|
||||
|
||||
Para comprobar todos los proyectos necesitas generar el archivo `gcp.spc` indicando todos los proyectos a probar. Puedes seguir las indicaciones del siguiente script
|
||||
Para revisar todos los projects necesitas generar el archivo `gcp.spc` indicando todos los projects a probar. Puedes seguir las indicaciones del siguiente script
|
||||
```bash
|
||||
FILEPATH="/tmp/gcp.spc"
|
||||
rm -rf "$FILEPATH" 2>/dev/null
|
||||
@@ -194,11 +220,11 @@ echo "Copy $FILEPATH in ~/.steampipe/config/gcp.spc if it was correctly generate
|
||||
```
|
||||
</details>
|
||||
|
||||
Para comprobar **otros GCP insights** (útiles para enumerar servicios) utilice: [https://github.com/turbot/steampipe-mod-gcp-insights](https://github.com/turbot/steampipe-mod-gcp-insights)
|
||||
Para comprobar **otros insights de GCP** (útil para enumerar servicios) usa: [https://github.com/turbot/steampipe-mod-gcp-insights](https://github.com/turbot/steampipe-mod-gcp-insights)
|
||||
|
||||
Para revisar código Terraform de GCP: [https://github.com/turbot/steampipe-mod-terraform-gcp-compliance](https://github.com/turbot/steampipe-mod-terraform-gcp-compliance)
|
||||
Para comprobar código Terraform de GCP: [https://github.com/turbot/steampipe-mod-terraform-gcp-compliance](https://github.com/turbot/steampipe-mod-terraform-gcp-compliance)
|
||||
|
||||
Más plugins de GCP para Steampipe: [https://github.com/turbot?q=gcp](https://github.com/turbot?q=gcp)
|
||||
Más plugins de GCP de Steampipe: [https://github.com/turbot?q=gcp](https://github.com/turbot?q=gcp)
|
||||
{{#endtab }}
|
||||
|
||||
{{#tab name="AWS" }}
|
||||
@@ -225,24 +251,24 @@ cd steampipe-mod-aws-compliance
|
||||
steampipe dashboard # To see results in browser
|
||||
steampipe check all --export=/tmp/output4.json
|
||||
```
|
||||
Para revisar el código Terraform AWS: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance)
|
||||
To check Terraform AWS code: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance)
|
||||
|
||||
Más plugins AWS de Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws)
|
||||
More AWS plugins of Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws)
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### [~~cs-suite~~](https://github.com/SecurityFTW/cs-suite)
|
||||
|
||||
AWS, GCP, Azure, DigitalOcean.\
|
||||
Requiere python2.7 y parece no estar mantenido.
|
||||
Requiere python2.7 y parece no mantenido.
|
||||
|
||||
### Nessus
|
||||
|
||||
Nessus tiene un escaneo _**Audit Cloud Infrastructure**_ que soporta: AWS, Azure, Office 365, Rackspace, Salesforce. Se necesitan algunas configuraciones adicionales en **Azure** para obtener un **Client Id**.
|
||||
Nessus tiene un escaneo _**Audit Cloud Infrastructure**_ compatible con: AWS, Azure, Office 365, Rackspace, Salesforce. Se necesitan algunas configuraciones extra en **Azure** para obtener un **Client Id**.
|
||||
|
||||
### [**cloudlist**](https://github.com/projectdiscovery/cloudlist)
|
||||
|
||||
Cloudlist es una **herramienta multi-cloud para obtener activos** (nombres de host, direcciones IP) de proveedores de nube.
|
||||
Cloudlist es una herramienta **multi-cloud para obtener Assets** (Hostnames, IP Addresses) de Cloud Providers.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Cloudlist" }}
|
||||
@@ -265,7 +291,7 @@ cloudlist -config </path/to/config>
|
||||
|
||||
### [**cartography**](https://github.com/lyft/cartography)
|
||||
|
||||
Cartography es una herramienta en Python que consolida los activos de infraestructura y las relaciones entre ellos en una vista de grafo intuitiva impulsada por una base de datos Neo4j.
|
||||
Cartography es una herramienta de Python que consolida los activos de infraestructura y las relaciones entre ellos en una vista de grafo intuitiva impulsada por una base de datos Neo4j.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Install" }}
|
||||
@@ -302,7 +328,7 @@ ghcr.io/lyft/cartography \
|
||||
|
||||
### [**starbase**](https://github.com/JupiterOne/starbase)
|
||||
|
||||
Starbase recopila activos y relaciones de servicios y sistemas, incluyendo infraestructura en la nube, aplicaciones SaaS, controles de seguridad y más, en una vista de grafo intuitiva respaldada por la base de datos Neo4j.
|
||||
Starbase recopila activos y relaciones de servicios y sistemas, incluyendo infraestructura cloud, aplicaciones SaaS, controles de seguridad y más, en una vista de grafo intuitiva respaldada por la base de datos Neo4j.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Install" }}
|
||||
@@ -361,7 +387,7 @@ uri: bolt://localhost:7687
|
||||
|
||||
### [**SkyArk**](https://github.com/cyberark/SkyArk)
|
||||
|
||||
Detecta los usuarios más privilegiados en el entorno AWS o Azure escaneado, incluyendo los AWS Shadow Admins. Utiliza powershell.
|
||||
Descubre los usuarios con más privilegios en el entorno AWS o Azure analizado, incluidos los AWS Shadow Admins. Usa powershell.
|
||||
```bash
|
||||
Import-Module .\SkyArk.ps1 -force
|
||||
Start-AzureStealth
|
||||
@@ -372,15 +398,15 @@ Scan-AzureAdmins
|
||||
```
|
||||
### [Cloud Brute](https://github.com/0xsha/CloudBrute)
|
||||
|
||||
Una herramienta para encontrar la infraestructura de una empresa (objetivo), archivos y apps en los principales proveedores de nube (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
|
||||
Una herramienta para encontrar la infraestructura, archivos y apps de una empresa (objetivo) en los principales proveedores cloud (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
|
||||
|
||||
### [CloudFox](https://github.com/BishopFox/cloudfox)
|
||||
|
||||
- CloudFox es una herramienta para encontrar rutas de ataque explotables en la infraestructura en la nube (actualmente solo soporta AWS & Azure, con GCP próximamente).
|
||||
- CloudFox es una herramienta para encontrar rutas de ataque explotables en infraestructura cloud (actualmente solo se soporta AWS y Azure, con GCP próximamente).
|
||||
- Es una herramienta de enumeración destinada a complementar el pentesting manual.
|
||||
- No crea ni modifica ningún dato dentro del entorno en la nube.
|
||||
- No crea ni modifica ningún dato dentro del entorno cloud.
|
||||
|
||||
### More lists of cloud security tools
|
||||
### Más listas de herramientas de seguridad cloud
|
||||
|
||||
- [https://github.com/RyanJarv/awesome-cloud-sec](https://github.com/RyanJarv/awesome-cloud-sec)
|
||||
|
||||
@@ -410,7 +436,7 @@ aws-security/
|
||||
azure-security/
|
||||
{{#endref}}
|
||||
|
||||
## Common Cloud Security Features
|
||||
## Funciones comunes de seguridad cloud
|
||||
|
||||
### Confidential Computing
|
||||
|
||||
@@ -418,4 +444,11 @@ azure-security/
|
||||
confidential-computing/luks2-header-malleability-null-cipher-abuse.md
|
||||
{{#endref}}
|
||||
|
||||
## Referencias
|
||||
|
||||
- [The Global Namespace Risk: Universal Bucket Hijacking Technique for Cloud Data Exfiltration](https://unit42.paloaltonetworks.com/cloud-bucket-hijacking-risks/)
|
||||
- [Cloud Logging routing and sinks](https://docs.cloud.google.com/logging/docs/export/configure_export_v2)
|
||||
- [Amazon S3 replication](https://docs.aws.amazon.com/AmazonS3/latest/userguide/replication.html)
|
||||
- [Azure Monitor diagnostic settings](https://learn.microsoft.com/en-us/azure/azure-monitor/platform/diagnostic-settings)
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user