Az - Azure App Service & Function Apps

Az - Azure Uygulama Servisi ve Fonksiyon Uygulamaları

htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Uygulama Servisi Temel Bilgileri

Belgelerden: Azure Uygulama Servisi, web uygulamaları, REST API'leri ve mobil arka uçlar için HTTP tabanlı bir hizmettir. .NET, .NET Core, Java, Ruby, Node.js, PHP veya Python gibi favori dilinizde geliştirme yapabilirsiniz. Uygulamalar, hem Windows hem de Linux tabanlı ortamlarda kolaylıkla çalışır ve ölçeklenir.

Her uygulama bir kum havuzunda çalışır, ancak izolasyon, Uygulama Servisi planlarına bağlıdır

  • Ücretsiz ve Paylaşılan seviyelerdeki uygulamalar paylaşılan sanal makinelerde çalışır

  • Standart ve Premium seviyelerdeki uygulamalar ayrılmış sanal makinelerde çalışır

Unutmayın ki bu izolasyonlardan hiçbiri, diğer yaygın web zafiyetlerini (dosya yükleme veya enjeksiyon gibi) önlemez. Ve bir yönetim kimliği kullanılıyorsa, izinlerini tehlikeye atabilir.

Sorgulama

# List webapps
az webapp list

## Less information
az webapp list --query "[].{hostName: defaultHostName, state: state, name: name, resourcegroup: resourceGroup}"

# Get access restrictions
az webapp config access-restriction show --resource-group <res-group> -n <name>

# Remove access restrictions
az webapp config access-restriction remove --resource-group <res-group> -n <name> --rule-name <rule-name>

# Get snapshots
az webapp config snapshot list --resource-group <res-group> -n <name>

# Restore snapshot
az webapp config snapshot restore -g <res-group> -n <name> --time 2018-12-11T23:34:16.8388367

# Restart webapp
az webapp restart --name <name> --resource-group <res-group>
# Get App Services and Function Apps
Get-AzWebApp
# Get only App Services
Get-AzWebApp | ?{$_.Kind -notmatch "functionapp"}

```bash #!/bin/bash

Get all App Service and Function Apps

Define Azure subscription ID

azure_subscription="your_subscription_id"

Log in to Azure

az login

Select Azure subscription

az account set --subscription $azure_subscription

Get all App Services in the specified subscription

list_app_services=$(az appservice list --query "[].{appServiceName: name, group: resourceGroup}" -o tsv)

Iterate over each App Service

echo "$list_app_services" | while IFS=$'\t' read -r appServiceName group; do

Get the type of the App Service

service_type=$(az appservice show --name $appServiceName --resource-group $group --query "kind" -o tsv)

Check if it is a Function App and print its name

if [ "$service_type" == "functionapp" ]; then echo "Function App Name: $appServiceName" fi done

#### Kimlik bilgilerini elde etme ve web uygulama koduna erişim sağlama

To obtain credentials and gain access to the webapp code, you can follow these steps:

1. Identify the Azure App Service you want to target.
2. Use tools like `az webapp show` or `az webapp list` to gather information about the target webapp.
3. Look for any misconfigurations or vulnerabilities that may allow you to access the webapp code or obtain credentials.
4. If the webapp is using a database, check if there are any misconfigurations or vulnerabilities that may allow you to access the database credentials.
5. Exploit any misconfigurations or vulnerabilities found to gain access to the webapp code or obtain credentials.
6. Once you have obtained the credentials, you can use them to authenticate and access the webapp code.

Remember to always follow ethical hacking practices and obtain proper authorization before attempting any penetration testing activities.
```bash
# Get connection strings that could contain credentials (with DBs for example)
az webapp config connection-string list --name <name> --resource-group <res-group>
## Check how to use the DBs connection strings in the SQL page

# Get credentials to access the code and DB credentials if configured.
az webapp deployment list-publishing-profiles --resource-group <res-group> -n <name>


# Get git URL to access the code
az webapp deployment source config-local-git --resource-group <res-group> -n <name>

# Access/Modify the code via git
git clone 'https://<username>:<password>@name.scm.azurewebsites.net/repo-name.git'
## In my case the username was: $nameofthewebapp and the password some random chars
## If you change the code and do a push, the app is automatically redeployed

Web uygulamasına SSH üzerinden Docker konteynerine erişim:

ssh -p 2222 root@<app_name>.scm.azurewebsites.net

Bu komutu kullanarak, Azure App Service üzerindeki Docker konteynerine SSH üzerinden erişebilirsiniz. <app_name> kısmını, hedef web uygulamasının adıyla değiştirmeniz gerekmektedir.

# Get ssh session
az webapp create-remote-connection --subscription <SUBSCRIPTION-ID> --resource-group <RG-NAME> -n <APP-SERVICE-NAME>

## If successfull you will get a message such as:
#Verifying if app is running....
#App is running. Trying to establish tunnel connection...
#Opening tunnel on port: 39895
#SSH is available { username: root, password: Docker! }

## So from that machine ssh into that port (you might need generate a new ssh session to the jump host)
ssh root@127.0.0.1 -p 39895

Function Apps Temel Bilgiler

Azure Functions, daha az kod yazmanıza, daha az altyapı bakmanıza ve maliyetlerden tasarruf etmenize olanak sağlayan bir sunucusuz çözümdür. Sunucuların dağıtımı ve bakımıyla uğraşmak yerine, bulut altyapısı uygulamalarınızın çalışmasını sağlamak için gereken güncel kaynakları sağlar.

Azure portalında, Azure Functions ve Azure API Yönetimi arasındaki entegrasyon, HTTP tetikleyici işlev uç noktalarının REST API'leri olarak açıklanmasını sağlar. Bu şekilde açıklanan API'ler, RESTful API'ler için standart, dil bağımsız bir arayüz sağlayan bir OpenAPI tanımı kullanılarak tanımlanır.

Function Apps, Yönetilen Kimlikleri destekler.

Ayrıca, Function App belirli bir kimlik doğrulama düzeyi gerektiren belirli uç noktalara sahip olabilir, örneğin "admin" veya "anonymous". Bir saldırgan, kısıtlamaları atlamak ve hassas verilere veya işlevlere erişim elde etmek için anonim izin verilen uç noktalara erişmeyi deneyebilir.

Numaralandırma

# Get only Function Apps
Get-AzFunctionApp

Referanslar

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated