mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-29 07:00:29 -07:00
Translated ['', 'src/pentesting-ci-cd/github-security/abusing-github-act
This commit is contained in:
@@ -1,40 +1,40 @@
|
||||
# Metodología de Pentesting Cloud
|
||||
# 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 cloud tiene sus particularidades pero en general hay algunas **cosas comunes que un pentester debe comprobar** al evaluar un entorno cloud:
|
||||
Cada cloud tiene sus propias peculiaridades pero en general hay unas pocas **cosas comunes que un pentester debe comprobar** al evaluar un entorno cloud:
|
||||
|
||||
- **Comprobaciones de benchmark**
|
||||
- Esto te ayudará a **entender el tamaño** del entorno y los **servicios usados**
|
||||
- También te permitirá encontrar algunas **mala configuraciones rápidas** ya que puedes ejecutar la mayoría de estas pruebas con **herramientas automatizadas**
|
||||
- **Enumeración de servicios**
|
||||
- Probablemente no encontrarás muchas más malas configuraciones aquí si realizaste correctamente las comprobaciones de benchmark, pero puede que encuentres algunas que no se buscaban en las pruebas de benchmark.
|
||||
- Esto te permitirá saber **qué se está usando exactamente** en el env cloud
|
||||
- **Benchmark checks**
|
||||
- Esto te ayudará a **entender el tamaño** del entorno y **los servicios usados**
|
||||
- También te permitirá encontrar algunas **configuraciones erróneas rápidas** ya que puedes realizar la mayoría de estas pruebas con **herramientas automatizadas**
|
||||
- **Services Enumeration**
|
||||
- Probablemente no encontrarás muchas más configuraciones erróneas aquí si realizaste correctamente las pruebas de benchmark, pero podrías encontrar algunas que no se buscaron en el test 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 se puede hacer durante la sección anterior, necesitas **encontrar todo lo que potencialmente está expuesto** a Internet de alguna forma y cómo puede ser accedido.
|
||||
- Aquí estoy tomando **infraestructura expuesta manualmente** como instancias con páginas web u otros puertos expuestos, y también otros **servicios gestionados por cloud que pueden configurarse** para estar expuestos (como DBs o buckets)
|
||||
- Luego debes comprobar **si ese recurso puede ser expuesto o no** (¿información confidencial? ¿vulnerabilidades? ¿mala configuración en el servicio expuesto?)
|
||||
- **Comprobar permisos**
|
||||
- Aquí debes **identificar todos los permisos de cada role/user** dentro del cloud y cómo se usan
|
||||
- ¿Demasiadas cuentas con **altos privilegios** (controlan todo)? ¿Claves generadas no usadas?... La mayoría de estas comprobaciones deberían haberse hecho ya en las pruebas 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 role** (no es lo mismo que el role admin esté asignado a 1 usuario que a 100)
|
||||
- No es suficiente con identificar qué usuarios tienen permisos **admin** "\*:\*". Hay muchas **otras permisos** que dependiendo de los servicios usados pueden ser muy **sensibles**.
|
||||
- Además, existen **posibles privesc** para seguir abusando de permisos. Todas estas cosas deben tenerse en cuenta y **tantos caminos de privesc como sea posible** deberían ser reportados.
|
||||
- **Comprobar integraciones**
|
||||
- Es muy probable que **integraciones con otras clouds o SaaS** se estén usando dentro del env cloud.
|
||||
- **Check exposed assets**
|
||||
- Esto puede hacerse durante la sección anterior, necesitas **identificar todo lo que potencialmente está expuesto** a Internet de alguna forma y cómo puede accederse.
|
||||
- Aquí me refiero a **infraestructura expuesta manualmente** como instancias con páginas web u otros puertos expuestos, y también a otros **cloud managed services que pueden ser configurados** para estar expuestos (como DBs o buckets)
|
||||
- Luego debes comprobar **si ese recurso puede estar expuesto o no** (¿información confidencial? ¿vulnerabilidades? ¿configuraciones erróneas en el servicio expuesto?)
|
||||
- **Check permissions**
|
||||
- Aquí debes **averiguar todos los permisos de cada role/user** dentro del cloud y cómo se usan
|
||||
- ¿Demasiadas cuentas con **altos privilegios** (controlan todo)? ¿Claves generadas sin usar?... 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 **federation** puede que necesites pedirles más **información** sobre **cómo se asigna cada role** (no es lo mismo que el role admin esté asignado a 1 usuario que a 100)
|
||||
- **No basta con encontrar** qué usuarios tienen permisos de admin "\*:\*". Hay muchos **otros permisos** que dependiendo de los servicios usados pueden ser muy **sensibles**.
|
||||
- Además, hay **posibles formas de privesc** a seguir abusando de permisos. Todas estas cosas deben tenerse en cuenta y **deben reportarse tantas rutas de privesc como sea posible**.
|
||||
- **Check Integrations**
|
||||
- Es muy probable que **se usen integraciones con otras clouds o SaaS** dentro del entorno cloud.
|
||||
- Para **integraciones del cloud 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 que GCP está obteniendo datos (pregunta qué tan sensible es la acción en GCP tratando esos datos).
|
||||
- Para **integraciones dentro del cloud que estás auditando** desde plataformas externas, deberías preguntar **quién tiene acceso externamente para (ab)usar esa integración** y revisar cómo se están usando esos datos.\
|
||||
Por ejemplo, quién puede escribir en un AWS bucket del que GCP está obteniendo datos (pregunta qué tan sensible es la acción en GCP al tratar esos datos).
|
||||
- Para **integraciones dentro del cloud que estás auditando** desde plataformas externas, deberías preguntar **quién tiene acceso externo 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 un cloud AWS.
|
||||
|
||||
## Herramientas Multi-Cloud
|
||||
## Multi-Cloud tools
|
||||
|
||||
Hay varias herramientas que se pueden usar para probar diferentes entornos cloud. Los pasos de instalación y los enlaces se indicarán en esta sección.
|
||||
Hay varias herramientas que pueden usarse para testear diferentes entornos cloud. Los pasos de instalación y los enlaces se indicarán en esta sección.
|
||||
|
||||
### [PurplePanda](https://github.com/carlospolop/purplepanda)
|
||||
|
||||
@@ -71,7 +71,7 @@ python3 main.py -e -p google #Enumerate the env
|
||||
|
||||
### [Prowler](https://github.com/prowler-cloud/prowler)
|
||||
|
||||
Admite **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 & Azure**. Consulta 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
|
||||
@@ -171,6 +171,8 @@ steampipe check all
|
||||
<summary>Comprobar todos los proyectos</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
|
||||
|
||||
</details>
|
||||
```bash
|
||||
FILEPATH="/tmp/gcp.spc"
|
||||
rm -rf "$FILEPATH" 2>/dev/null
|
||||
@@ -194,9 +196,9 @@ echo "Copy $FILEPATH in ~/.steampipe/config/gcp.spc if it was correctly generate
|
||||
```
|
||||
</details>
|
||||
|
||||
Para consultar **otros GCP insights** (útiles para enumerar servicios) usa: [https://github.com/turbot/steampipe-mod-gcp-insights](https://github.com/turbot/steampipe-mod-gcp-insights)
|
||||
Para consultar **otros insights de GCP** (útiles para enumerar servicios) usa: [https://github.com/turbot/steampipe-mod-gcp-insights](https://github.com/turbot/steampipe-mod-gcp-insights)
|
||||
|
||||
Para revisar el código Terraform de GCP: [https://github.com/turbot/steampipe-mod-terraform-gcp-compliance](https://github.com/turbot/steampipe-mod-terraform-gcp-compliance)
|
||||
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)
|
||||
|
||||
Más plugins de GCP para Steampipe: [https://github.com/turbot?q=gcp](https://github.com/turbot?q=gcp)
|
||||
{{#endtab }}
|
||||
@@ -225,7 +227,7 @@ cd steampipe-mod-aws-compliance
|
||||
steampipe dashboard # To see results in browser
|
||||
steampipe check all --export=/tmp/output4.json
|
||||
```
|
||||
Para revisar código Terraform AWS: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance)
|
||||
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)
|
||||
|
||||
Más plugins AWS de Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws)
|
||||
{{#endtab }}
|
||||
@@ -238,11 +240,11 @@ Requiere python2.7 y parece no estar mantenido.
|
||||
|
||||
### Nessus
|
||||
|
||||
Nessus incluye un escaneo _**Audit Cloud Infrastructure**_ que soporta: AWS, Azure, Office 365, Rackspace, Salesforce. Se requieren algunas configuraciones adicionales en **Azure** para obtener un **Client Id**.
|
||||
Nessus tiene un escaneo _**Audit Cloud Infrastructure**_ que soporta: AWS, Azure, Office 365, Rackspace, Salesforce. Se requieren algunas configuraciones adicionales en **Azure** para obtener un **Client Id**.
|
||||
|
||||
### [**cloudlist**](https://github.com/projectdiscovery/cloudlist)
|
||||
|
||||
Cloudlist es una herramienta multi-cloud para obtener Assets (Hostnames, IP Addresses) de Cloud Providers.
|
||||
Cloudlist es una **multi-cloud tool for getting Assets** (Hostnames, IP Addresses) de Cloud Providers.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Cloudlist" }}
|
||||
@@ -265,7 +267,7 @@ cloudlist -config </path/to/config>
|
||||
|
||||
### [**cartography**](https://github.com/lyft/cartography)
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="Install" }}
|
||||
@@ -361,7 +363,7 @@ uri: bolt://localhost:7687
|
||||
|
||||
### [**SkyArk**](https://github.com/cyberark/SkyArk)
|
||||
|
||||
Descubre los usuarios con más privilegios en el entorno AWS o Azure escaneado, incluyendo los AWS Shadow Admins. Usa powershell.
|
||||
Descubre los usuarios más privilegiados en el entorno AWS o Azure escaneado, incluyendo los AWS Shadow Admins. Usa powershell.
|
||||
```bash
|
||||
Import-Module .\SkyArk.ps1 -force
|
||||
Start-AzureStealth
|
||||
@@ -372,13 +374,13 @@ Scan-AzureAdmins
|
||||
```
|
||||
### [Cloud Brute](https://github.com/0xsha/CloudBrute)
|
||||
|
||||
Una herramienta para encontrar la infraestructura, archivos y aplicaciones de una empresa (objetivo) en los principales proveedores en la nube (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
|
||||
Una herramienta para encontrar la infraestructura, archivos y aplicaciones de una empresa (target) en los principales proveedores de la nube (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; GCP próximamente).
|
||||
- Es una herramienta de enumeration diseñada para complementar el pentesting manual.
|
||||
- No crea ni modifica ningún dato dentro del entorno en la nube.
|
||||
- CloudFox es una herramienta para encontrar exploitable attack paths en la infraestructura cloud (actualmente solo soporta AWS & Azure; 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 cloud.
|
||||
|
||||
### More lists of cloud security tools
|
||||
|
||||
@@ -412,11 +414,11 @@ azure-security/
|
||||
|
||||
### Attack Graph
|
||||
|
||||
[**Stormspotter** ](https://github.com/Azure/Stormspotter) crea un “attack graph” de los recursos en una suscripción de Azure. Permite a red teams y pentesters visualizar la superficie de ataque y las oportunidades de pivot dentro de un tenant, y potencia a tus defenders para orientar y priorizar rápidamente el trabajo de respuesta a incidentes.
|
||||
[**Stormspotter** ](https://github.com/Azure/Stormspotter) crea un “attack graph” de los recursos en una suscripción de Azure. Permite a red teams y pentesters visualizar la superficie de ataque y las oportunidades de pivot dentro de un tenant, y potencia a tus defensores para orientarse y priorizar rápidamente el trabajo de respuesta a incidentes.
|
||||
|
||||
### Office365
|
||||
|
||||
Necesitas **Global Admin** o al menos **Global Admin Reader** (ten en cuenta que Global Admin Reader es algo limitado). Sin embargo, esas limitaciones aparecen en algunos módulos PS y pueden ser evitadas accediendo a las funciones **vía la aplicación web**.
|
||||
Necesitas **Global Admin** o al menos **Global Admin Reader** (ten en cuenta que Global Admin Reader es algo limitado). Sin embargo, esas limitaciones aparecen en algunos PS modules y pueden ser eludidas accediendo a las funciones **vía la aplicación web**.
|
||||
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user