Translated ['.github/pull_request_template.md', 'src/pentesting-cloud/az

This commit is contained in:
Translator
2024-12-31 18:57:14 +00:00
parent 7770a50092
commit 77a009d308
244 changed files with 8632 additions and 11470 deletions

View File

@@ -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 ist eine Familie von verwalteten, sicheren und intelligenten Produkten, die die **SQL Server-Datenbank-Engine in der Azure-Cloud** verwenden. Das bedeutet, dass Sie sich nicht um die physische Verwaltung Ihrer Server kümmern müssen und sich auf die Verwaltung Ihrer Daten konzentrieren können.
Azure SQL consists of three main offerings:
Azure SQL besteht aus drei Hauptangeboten:
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-Datenbank**: Dies ist ein **vollständig verwalteter Datenbankdienst**, der es Ihnen ermöglicht, einzelne Datenbanken in der Azure-Cloud zu hosten. Er bietet integrierte Intelligenz, die Ihre einzigartigen Datenbankmuster lernt und maßgeschneiderte Empfehlungen sowie automatische Optimierungen bereitstellt.
2. **Azure SQL Managed Instance**: Dies ist für größere, gesamte SQL Server-Instanz-Umsetzungen gedacht. Es bietet nahezu 100% Kompatibilität mit der neuesten SQL Server On-Premises (Enterprise Edition) Datenbank-Engine, die eine native Implementierung des virtuellen Netzwerks (VNet) bietet, die häufige Sicherheitsbedenken anspricht, und ein Geschäftsmodell, das für On-Premises SQL Server-Kunden vorteilhaft ist.
3. **Azure SQL Server auf Azure VMs**: Dies ist Infrastructure as a Service (IaaS) und eignet sich am besten für Migrationen, bei denen Sie **Kontrolle über das Betriebssystem und die SQL Server-Instanz** haben möchten, als ob es sich um einen Server handelt, der On-Premises läuft.
### Azure SQL Database
### Azure SQL-Datenbank
**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-Datenbank** ist eine **vollständig verwaltete Datenbankplattform als Dienst (PaaS)**, die skalierbare und sichere relationale Datenbanklösungen bietet. Sie basiert auf den neuesten SQL Server-Technologien und beseitigt die Notwendigkeit für Infrastrukturmanagement, was sie zu einer beliebten Wahl für cloudbasierte Anwendungen macht.
#### Key Features
#### Hauptmerkmale
- **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).
- **Immer auf dem neuesten Stand**: Läuft auf der neuesten stabilen Version von SQL Server und erhält automatisch neue Funktionen und Patches.
- **PaaS-Funktionen**: Integrierte hohe Verfügbarkeit, Backups und Updates.
- **Datenflexibilität**: Unterstützt relationale und nicht-relationale Daten (z. B. Grafiken, JSON, räumliche Daten und XML).
#### Purchasing Models / Service Tiers
#### Kaufmodelle / Dienstebenen
- **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.
- **vCore-basiert**: Wählen Sie Compute, Speicher und Speicher unabhängig. Für allgemeine Zwecke, geschäftskritisch (mit hoher Resilienz und Leistung für OLTP-Anwendungen) und bis zu 128 TB Speicher.
- **DTU-basiert**: Bündelt Compute, Speicher und I/O in festen Ebenen. Ausgewogene Ressourcen für gängige Aufgaben.
- Standard: Ausgewogene Ressourcen für gängige Aufgaben.
- Premium: Hohe Leistung für anspruchsvolle Workloads.
#### Deployment Models
#### Bereitstellungsmodelle
Azure SQL Database supports flexible deployment options to suit various needs:
Azure SQL-Datenbank unterstützt flexible Bereitstellungsoptionen, um verschiedenen Bedürfnissen gerecht zu werden:
- **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.
- **Einzelne Datenbank**:
- Eine vollständig isolierte Datenbank mit eigenen dedizierten Ressourcen.
- Ideal für Microservices oder Anwendungen, die eine einzige Datenquelle benötigen.
- **Elastischer Pool**:
- Ermöglicht mehreren Datenbanken, Ressourcen innerhalb eines Pools zu teilen.
- Kosten effizient für Anwendungen mit schwankenden Nutzungsmustern über mehrere Datenbanken.
#### Scalable performance and pools
#### Skalierbare Leistung und Pools
- **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 (1128 vCores, 32 GB4 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.
- **Einzelne Datenbanken**: Jede Datenbank ist isoliert und hat ihre eigenen dedizierten Compute-, Speicher- und Speicherressourcen. Ressourcen können dynamisch (hoch oder runter) ohne Ausfallzeiten skaliert werden (1128 vCores, 32 GB4 TB Speicher und bis zu 128 TB).
- **Elastische Pools**: Teilen Sie Ressourcen über mehrere Datenbanken in einem Pool, um die Effizienz zu maximieren und Kosten zu sparen. Ressourcen können auch dynamisch für den gesamten Pool skaliert werden.
- **Flexibilität der Dienstebene**: Beginnen Sie klein mit einer einzelnen Datenbank in der allgemeinen Zweckebene. Upgrade auf geschäftskritische oder Hyperscale-Ebenen, wenn die Bedürfnisse wachsen.
- **Skalierungsoptionen**: Dynamische Skalierung oder Autoscaling-Alternativen.
#### Built-In Monitoring & Optimization
#### Eingebaute Überwachung & Optimierung
- **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.
- **Abfrage-Store**: Verfolgt Leistungsprobleme, identifiziert die Hauptressourcennutzer und bietet umsetzbare Empfehlungen.
- **Automatische Optimierung**: Optimiert proaktiv die Leistung mit Funktionen wie automatischer Indizierung und Korrekturen von Abfrageplänen.
- **Telemetrie-Integration**: Unterstützt die Überwachung über Azure Monitor, Event Hubs oder Azure Storage für maßgeschneiderte Einblicke.
#### Disaster Recovery & Availavility
#### Notfallwiederherstellung & Verfügbarkeit
- **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.
- **Automatische Backups**: SQL-Datenbank führt automatisch vollständige, differenzielle und Transaktionsprotokoll-Backups von Datenbanken durch.
- **Punkt-in-Zeit-Wiederherstellung**: Stellen Sie Datenbanken in jeden früheren Zustand innerhalb des Backup-Aufbewahrungszeitraums wieder her.
- **Geo-Redundanz**
- **Failover-Gruppen**: Vereinfacht die Notfallwiederherstellung, indem Datenbanken für automatisches Failover über Regionen gruppiert werden.
### 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** ist eine Plattform als Dienst (PaaS) Datenbank-Engine, die nahezu 100% Kompatibilität mit SQL Server bietet und die meisten Verwaltungsaufgaben (z. B. Upgrade, Patchen, Backups, Überwachung) automatisch erledigt. Es bietet eine Cloud-Lösung für die Migration von On-Premises SQL Server-Datenbanken mit minimalen Änderungen.
#### Service Tiers
#### Dienstebenen
- **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.
- **Allgemeiner Zweck**: Kosten effektive Option für Anwendungen mit standardmäßigen I/O- und Latenzanforderungen.
- **Geschäftskritisch**: Hochleistungsoption mit niedriger I/O-Latenz für kritische Workloads.
#### Advanced Security Features
#### Erweiterte Sicherheitsmerkmale
* **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.
* **Bedrohungsschutz**: Erweiterte Bedrohungsschutzwarnungen für verdächtige Aktivitäten und SQL-Injection-Angriffe. Auditing zur Verfolgung und Protokollierung von Datenbankereignissen zur Einhaltung.
* **Zugriffskontrolle**: Microsoft Entra-Authentifizierung für zentrales Identitätsmanagement. Zeilenebene-Sicherheit und dynamische Datenmaskierung für granulare Zugriffskontrolle.
* **Backups**: Automatisierte und manuelle Backups mit Punkt-in-Zeit-Wiederherstellungsfähigkeit.
### Azure SQL Virtual Machines
### Azure SQL Virtuelle Maschinen
**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 Virtuelle Maschinen** sind am besten für Migrationen geeignet, bei denen Sie **Kontrolle über das Betriebssystem und die SQL Server-Instanz** haben möchten, als ob es sich um einen Server handelt, der On-Premises läuft. Sie können unterschiedliche Maschinen Größen und eine große Auswahl an SQL Server-Versionen und -Editionen haben.
#### Key Features
#### Hauptmerkmale
**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.
**Automatisiertes Backup**: Planen Sie Backups für SQL-Datenbanken.
**Automatische Patchverwaltung**: Automatisiert die Installation von Windows- und SQL Server-Updates während eines Wartungsfensters.
**Azure Key Vault-Integration**: Konfiguriert Key Vault automatisch für SQL Server-VMs.
**Defender für Cloud-Integration**: Sehen Sie sich die Empfehlungen von Defender für SQL im Portal an.
**Versions-/Edition-Flexibilität**: Ändern Sie die SQL Server-Version oder -Edition-Metadaten, ohne die VM neu bereitzustellen.
#### Security Features
#### Sicherheitsmerkmale
**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 für SQL**: Sicherheitsinformationen und -warnungen.
**Azure Key Vault-Integration**: Sichere Speicherung von Anmeldeinformationen und Verschlüsselungsschlüsseln.
**Microsoft Entra (Azure AD)**: Authentifizierung und Zugriffskontrolle.
## Enumeration
{{#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):
### Verbinden und SQL-Abfragen ausführen
Sie könnten eine Verbindungszeichenfolge (die Anmeldeinformationen enthält) aus dem Beispiel [Auflisten einer Az WebApp](az-app-services.md) finden:
```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:
Sie können auch sqlcmd verwenden, um auf die Datenbank zuzugreifen. Es ist wichtig zu wissen, ob der Server öffentliche Verbindungen zulässt `az sql server show --name <server-name> --resource-group <resource-group>`, und auch, ob die Firewallregel unsere IP den Zugriff erlaubt:
```powershell
sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passworkd> -d <database>
```
## References
## Referenzen
- [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
## Privilegieneskalation
{{#ref}}
../az-privilege-escalation/az-sql-privesc.md
{{#endref}}
## Post Exploitation
## Post-Exploitation
{{#ref}}
../az-post-exploitation/az-sql-post-exploitation.md
{{#endref}}
{{#include ../../../banners/hacktricks-training.md}}