mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-18 07:35:41 -08:00
Translated ['.github/pull_request_template.md', 'src/pentesting-cloud/az
This commit is contained in:
@@ -4,100 +4,99 @@
|
||||
|
||||
## Azure SQL
|
||||
|
||||
Azure SQL is a family of managed, secure, and intelligent products that use the **SQL Server database engine in the Azure cloud**. This means you don't have to worry about the physical administration of your servers, and you can focus on managing your data.
|
||||
Azure SQL es una familia de productos gestionados, seguros e inteligentes que utilizan el **motor de base de datos SQL Server en la nube de Azure**. Esto significa que no tienes que preocuparte por la administración física de tus servidores, y puedes concentrarte en gestionar tus datos.
|
||||
|
||||
Azure SQL consists of three main offerings:
|
||||
Azure SQL consta de tres ofertas principales:
|
||||
|
||||
1. **Azure SQL Database**: This is a **fully-managed database service**, which allows you to host individual databases in the Azure cloud. It offers built-in intelligence that learns your unique database patterns and provides customized recommendations and automatic tuning.
|
||||
2. **Azure SQL Managed Instance**: This is for larger scale, entire SQL Server instance-scoped deployments. It provides near 100% compatibility with the latest SQL Server on-premises (Enterprise Edition) Database Engine, which provides a native virtual network (VNet) implementation that addresses common security concerns, and a business model favorable for on-premises SQL Server customers.
|
||||
3. **Azure SQL Server on Azure VMs**: This is Infrastructure as a Service (IaaS) and is best for migrations where you want **control over the operating system and SQL Server instance**, like it was a server running on-premises.
|
||||
1. **Azure SQL Database**: Este es un **servicio de base de datos completamente gestionado**, que te permite alojar bases de datos individuales en la nube de Azure. Ofrece inteligencia incorporada que aprende tus patrones únicos de base de datos y proporciona recomendaciones personalizadas y ajuste automático.
|
||||
2. **Azure SQL Managed Instance**: Esto es para implementaciones a gran escala, de toda la instancia de SQL Server. Proporciona casi un 100% de compatibilidad con el motor de base de datos SQL Server en las instalaciones más recientes (Edición Empresarial), que ofrece una implementación nativa de red virtual (VNet) que aborda preocupaciones comunes de seguridad, y un modelo de negocio favorable para los clientes de SQL Server en las instalaciones.
|
||||
3. **Azure SQL Server en Azure VMs**: Esto es Infraestructura como Servicio (IaaS) y es mejor para migraciones donde deseas **control sobre el sistema operativo y la instancia de SQL Server**, como si fuera un servidor que se ejecuta en las instalaciones.
|
||||
|
||||
### Azure SQL Database
|
||||
|
||||
**Azure SQL Database** is a **fully managed database platform as a service (PaaS)** that provides scalable and secure relational database solutions. It's built on the latest SQL Server technologies and eliminates the need for infrastructure management, making it a popular choice for cloud-based applications.
|
||||
**Azure SQL Database** es una **plataforma de base de datos completamente gestionada como servicio (PaaS)** que proporciona soluciones de bases de datos relacionales escalables y seguras. Está construida sobre las últimas tecnologías de SQL Server y elimina la necesidad de gestión de infraestructura, lo que la convierte en una opción popular para aplicaciones basadas en la nube.
|
||||
|
||||
#### Key Features
|
||||
#### Características Clave
|
||||
|
||||
- **Always Up-to-Date**: Runs on the latest stable version of SQL Server and Receives new features and patches automatically.
|
||||
- **PaaS Capabilities**: Built-in high availability, backups, and updates.
|
||||
- **Data Flexibility**: Supports relational and non-relational data (e.g., graphs, JSON, spatial, and XML).
|
||||
- **Siempre Actualizado**: Se ejecuta en la última versión estable de SQL Server y recibe nuevas características y parches automáticamente.
|
||||
- **Capacidades PaaS**: Alta disponibilidad, copias de seguridad y actualizaciones integradas.
|
||||
- **Flexibilidad de Datos**: Soporta datos relacionales y no relacionales (por ejemplo, gráficos, JSON, espaciales y XML).
|
||||
|
||||
#### Purchasing Models / Service Tiers
|
||||
#### Modelos de Compra / Niveles de Servicio
|
||||
|
||||
- **vCore-based**: Choose compute, memory, and storage independently. For General Purpose, Business Critical (with high resilience and performance for OLTP apps), and scales up to 128 TB storag
|
||||
- **DTU-based**: Bundles compute, memory, and I/O into fixed tiers. Balanced resources for common tasks.
|
||||
- Standard: Balanced resources for common tasks.
|
||||
- Premium: High performance for demanding workloads.
|
||||
- **Basado en vCore**: Elige computación, memoria y almacenamiento de forma independiente. Para Propósito General, Crítico para Negocios (con alta resiliencia y rendimiento para aplicaciones OLTP), y escala hasta 128 TB de almacenamiento.
|
||||
- **Basado en DTU**: Agrupa computación, memoria y E/S en niveles fijos. Recursos equilibrados para tareas comunes.
|
||||
- Estándar: Recursos equilibrados para tareas comunes.
|
||||
- Premium: Alto rendimiento para cargas de trabajo exigentes.
|
||||
|
||||
#### Deployment Models
|
||||
#### Modelos de Implementación
|
||||
|
||||
Azure SQL Database supports flexible deployment options to suit various needs:
|
||||
Azure SQL Database admite opciones de implementación flexibles para satisfacer diversas necesidades:
|
||||
|
||||
- **Single Database**:
|
||||
- A fully isolated database with its own dedicated resources.
|
||||
- Great for microservices or applications requiring a single data source.
|
||||
- **Elastic Pool**:
|
||||
- Allows multiple databases to share resources within a pool.
|
||||
- Cost-efficient for applications with fluctuating usage patterns across multiple databases.
|
||||
- **Base de Datos Única**:
|
||||
- Una base de datos completamente aislada con sus propios recursos dedicados.
|
||||
- Ideal para microservicios o aplicaciones que requieren una única fuente de datos.
|
||||
- **Grupo Elástico**:
|
||||
- Permite que múltiples bases de datos compartan recursos dentro de un grupo.
|
||||
- Rentable para aplicaciones con patrones de uso fluctuantes en múltiples bases de datos.
|
||||
|
||||
#### Scalable performance and pools
|
||||
#### Rendimiento escalable y grupos
|
||||
|
||||
- **Single Databases**: Each database is isolated and has its own dedicated compute, memory, and storage resources. Resources can be scaled dynamically (up or down) without downtime (1–128 vCores, 32 GB–4 TB storage, and up to 128 TB).
|
||||
- **Elastic Pools**: Share resources across multiple databases in a pool to maximize efficiency and save costs. Resources can also be scaled dynamically for the entire pool.
|
||||
- **Service Tier Flexibility**: Start small with a single database in the General Purpose tier. Upgrade to Business Critical or Hyperscale tiers as needs grow.
|
||||
- **Scaling Options**: Dynamic Scaling or Autoscaling Alternatives.
|
||||
- **Bases de Datos Únicas**: Cada base de datos está aislada y tiene sus propios recursos dedicados de computación, memoria y almacenamiento. Los recursos se pueden escalar dinámicamente (hacia arriba o hacia abajo) sin tiempo de inactividad (1–128 vCores, 32 GB–4 TB de almacenamiento, y hasta 128 TB).
|
||||
- **Grupos Elásticos**: Comparte recursos entre múltiples bases de datos en un grupo para maximizar la eficiencia y ahorrar costos. Los recursos también se pueden escalar dinámicamente para todo el grupo.
|
||||
- **Flexibilidad de Nivel de Servicio**: Comienza pequeño con una base de datos única en el nivel de Propósito General. Actualiza a niveles Críticos para Negocios o Hiperescalables a medida que crecen las necesidades.
|
||||
- **Opciones de Escalado**: Escalado Dinámico o Alternativas de Autoscalado.
|
||||
|
||||
#### Built-In Monitoring & Optimization
|
||||
#### Monitoreo y Optimización Integrados
|
||||
|
||||
- **Query Store**: Tracks performance issues, identifies top resource consumers, and offers actionable recommendations.
|
||||
- **Automatic Tuning**: Proactively optimizes performance with features like automatic indexing and query plan corrections.
|
||||
- **Telemetry Integration**: Supports monitoring through Azure Monitor, Event Hubs, or Azure Storage for tailored insights.
|
||||
- **Query Store**: Realiza un seguimiento de problemas de rendimiento, identifica los principales consumidores de recursos y ofrece recomendaciones prácticas.
|
||||
- **Ajuste Automático**: Optimiza proactivamente el rendimiento con características como indexación automática y correcciones de planes de consulta.
|
||||
- **Integración de Telemetría**: Soporta monitoreo a través de Azure Monitor, Event Hubs o Azure Storage para obtener información personalizada.
|
||||
|
||||
#### Disaster Recovery & Availavility
|
||||
#### Recuperación ante Desastres y Disponibilidad
|
||||
|
||||
- **Automatic backups**: SQL Database automatically performs full, differential, and transaction log backups of databases
|
||||
- **Point-in-Time Restore**: Recover databases to any past state within the backup retention period.
|
||||
- **Geo-Redundancy**
|
||||
- **Failover Groups**: Simplifies disaster recovery by grouping databases for automatic failover across regions.
|
||||
- **Copias de seguridad automáticas**: SQL Database realiza automáticamente copias de seguridad completas, diferenciales y de registro de transacciones de las bases de datos.
|
||||
- **Restauración a un Punto en el Tiempo**: Recupera bases de datos a cualquier estado anterior dentro del período de retención de copias de seguridad.
|
||||
- **Geo-Redundancia**
|
||||
- **Grupos de Conmutación por Error**: Simplifica la recuperación ante desastres agrupando bases de datos para conmutación por error automática entre regiones.
|
||||
|
||||
### Azure SQL Managed Instance
|
||||
|
||||
**Azure SQL Managed Instance** is a Platform as a Service (PaaS) database engine that offers near 100% compatibility with SQL Server and handles most management tasks (e.g., upgrading, patching, backups, monitoring) automatically. It provides a cloud solution for migrating on-premises SQL Server databases with minimal changes.
|
||||
**Azure SQL Managed Instance** es un motor de base de datos como Servicio (PaaS) que ofrece casi un 100% de compatibilidad con SQL Server y maneja automáticamente la mayoría de las tareas de gestión (por ejemplo, actualización, parches, copias de seguridad, monitoreo). Proporciona una solución en la nube para migrar bases de datos de SQL Server en las instalaciones con cambios mínimos.
|
||||
|
||||
#### Service Tiers
|
||||
#### Niveles de Servicio
|
||||
|
||||
- **General Purpose**: Cost-effective option for applications with standard I/O and latency requirements.
|
||||
- **Business Critical**: High-performance option with low I/O latency for critical workloads.
|
||||
- **Propósito General**: Opción rentable para aplicaciones con requisitos estándar de E/S y latencia.
|
||||
- **Crítico para Negocios**: Opción de alto rendimiento con baja latencia de E/S para cargas de trabajo críticas.
|
||||
|
||||
#### Advanced Security Features
|
||||
#### Características de Seguridad Avanzadas
|
||||
|
||||
* **Threat Protection**: Advanced Threat Protection alerts for suspicious activities and SQL injection attacks. Auditing to track and log database events for compliance.
|
||||
* **Access Control**: Microsoft Entra authentication for centralized identity management. Row-Level Security and Dynamic Data Masking for granular access control.
|
||||
* **Backups**: Automated and manual backups with point-in-time restore capability.
|
||||
* **Protección contra Amenazas**: Alertas de Protección Avanzada contra Amenazas para actividades sospechosas y ataques de inyección SQL. Auditoría para rastrear y registrar eventos de base de datos para cumplimiento.
|
||||
* **Control de Acceso**: Autenticación de Microsoft Entra para gestión centralizada de identidades. Seguridad a Nivel de Fila y Enmascaramiento de Datos Dinámico para control de acceso granular.
|
||||
* **Copias de Seguridad**: Copias de seguridad automatizadas y manuales con capacidad de restauración a un punto en el tiempo.
|
||||
|
||||
### Azure SQL Virtual Machines
|
||||
|
||||
**Azure SQL Virtual Machines** is best for migrations where you want **control over the operating system and SQL Server instance**, like it was a server running on-premises. It can have different machine sizes, and a wide selection of SQL Server versions and editions.
|
||||
**Azure SQL Virtual Machines** es mejor para migraciones donde deseas **control sobre el sistema operativo y la instancia de SQL Server**, como si fuera un servidor que se ejecuta en las instalaciones. Puede tener diferentes tamaños de máquina y una amplia selección de versiones y ediciones de SQL Server.
|
||||
|
||||
#### Key Features
|
||||
#### Características Clave
|
||||
|
||||
**Automated Backup**: Schedule backups for SQL databases.
|
||||
**Automatic Patching**: Automates the installation of Windows and SQL Server updates during a maintenance window.
|
||||
**Azure Key Vault Integration**: Automatically configures Key Vault for SQL Server VMs.
|
||||
**Defender for Cloud Integration**: View Defender for SQL recommendations in the portal.
|
||||
**Version/Edition Flexibility**: Change SQL Server version or edition metadata without redeploying the VM.
|
||||
**Copia de Seguridad Automatizada**: Programa copias de seguridad para bases de datos SQL.
|
||||
**Patching Automático**: Automatiza la instalación de actualizaciones de Windows y SQL Server durante una ventana de mantenimiento.
|
||||
**Integración con Azure Key Vault**: Configura automáticamente Key Vault para máquinas virtuales de SQL Server.
|
||||
**Integración con Defender for Cloud**: Ver recomendaciones de Defender for SQL en el portal.
|
||||
**Flexibilidad de Versión/Edición**: Cambia los metadatos de versión o edición de SQL Server sin redeplegar la máquina virtual.
|
||||
|
||||
#### Security Features
|
||||
#### Características de Seguridad
|
||||
|
||||
**Microsoft Defender for SQL**: Security insights and alerts.
|
||||
**Azure Key Vault Integration**: Secure storage of credentials and encryption keys.
|
||||
**Microsoft Entra (Azure AD)**: Authentication and access control.
|
||||
**Microsoft Defender for SQL**: Información y alertas de seguridad.
|
||||
**Integración con Azure Key Vault**: Almacenamiento seguro de credenciales y claves de cifrado.
|
||||
**Microsoft Entra (Azure AD)**: Autenticación y control de acceso.
|
||||
|
||||
## Enumeration
|
||||
## Enumeración
|
||||
|
||||
{{#tabs}}
|
||||
{{#tab name="az cli"}}
|
||||
|
||||
```bash
|
||||
# List Servers
|
||||
az sql server list # --output table
|
||||
@@ -164,11 +163,9 @@ az sql midb show --resource-group <res-grp> --name <name>
|
||||
az sql vm list
|
||||
az sql vm show --resource-group <res-grp> --name <name>
|
||||
```
|
||||
|
||||
{{#endtab}}
|
||||
|
||||
{{#tab name="Az PowerShell"}}
|
||||
|
||||
```powershell
|
||||
# List Servers
|
||||
Get-AzSqlServer -ResourceGroupName "<resource-group-name>"
|
||||
@@ -206,60 +203,51 @@ Get-AzSqlInstanceDatabase -ResourceGroupName <ResourceGroupName> -InstanceName <
|
||||
# Lis all sql VM
|
||||
Get-AzSqlVM
|
||||
```
|
||||
|
||||
{{#endtab}}
|
||||
{{#endtabs}}
|
||||
|
||||
### Connect and run SQL queries
|
||||
|
||||
You could find a connection string (containing credentials) from example [enumerating an Az WebApp](az-app-services.md):
|
||||
### Conectar y ejecutar consultas SQL
|
||||
|
||||
Podrías encontrar una cadena de conexión (que contiene credenciales) del ejemplo [enumerando un Az WebApp](az-app-services.md):
|
||||
```powershell
|
||||
function invoke-sql{
|
||||
param($query)
|
||||
$Connection_string = "Server=tcp:supercorp.database.windows.net,1433;Initial Catalog=flag;Persist Security Info=False;User ID=db_read;Password=gAegH!324fAG!#1fht;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
|
||||
$Connection = New-Object System.Data.SqlClient.SqlConnection $Connection_string
|
||||
$Connection.Open()
|
||||
$Command = New-Object System.Data.SqlClient.SqlCommand
|
||||
$Command.Connection = $Connection
|
||||
$Command.CommandText = $query
|
||||
$Reader = $Command.ExecuteReader()
|
||||
while ($Reader.Read()) {
|
||||
$Reader.GetValue(0)
|
||||
}
|
||||
$Connection.Close()
|
||||
param($query)
|
||||
$Connection_string = "Server=tcp:supercorp.database.windows.net,1433;Initial Catalog=flag;Persist Security Info=False;User ID=db_read;Password=gAegH!324fAG!#1fht;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
|
||||
$Connection = New-Object System.Data.SqlClient.SqlConnection $Connection_string
|
||||
$Connection.Open()
|
||||
$Command = New-Object System.Data.SqlClient.SqlCommand
|
||||
$Command.Connection = $Connection
|
||||
$Command.CommandText = $query
|
||||
$Reader = $Command.ExecuteReader()
|
||||
while ($Reader.Read()) {
|
||||
$Reader.GetValue(0)
|
||||
}
|
||||
$Connection.Close()
|
||||
}
|
||||
|
||||
invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;'
|
||||
```
|
||||
|
||||
You can also use sqlcmd to access the database. It is important to know if the server allows public connections `az sql server show --name <server-name> --resource-group <resource-group>`, and also if it the firewall rule let's our IP to access:
|
||||
|
||||
Puedes usar sqlcmd para acceder a la base de datos. Es importante saber si el servidor permite conexiones públicas `az sql server show --name <server-name> --resource-group <resource-group>`, y también si la regla del firewall permite que nuestra IP acceda:
|
||||
```powershell
|
||||
sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passworkd> -d <database>
|
||||
```
|
||||
|
||||
## References
|
||||
## Referencias
|
||||
|
||||
- [https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql)
|
||||
- [https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql)
|
||||
- [https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql)
|
||||
- [https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview?view=azuresql)
|
||||
|
||||
## Privilege Escalation
|
||||
## Escalación de Privilegios
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-sql-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## Post Exploitation
|
||||
## Post Explotación
|
||||
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-sql-post-exploitation.md
|
||||
{{#endref}}
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user