Az - Azure App Service & Function Apps

Unterstützen Sie HackTricks

App Service Grundinformationen

Aus den Dokumenten: Azure App Service ist ein HTTP-basierter Dienst zum Hosten von Webanwendungen, REST-APIs und mobilen Backends. Sie können in Ihrer bevorzugten Sprache entwickeln, sei es .NET, .NET Core, Java, Ruby, Node.js, PHP oder Python. Anwendungen laufen und skalieren problemlos sowohl in Windows- als auch in Linux-basierten Umgebungen.

Jede App läuft in einer Sandbox, aber die Isolation hängt von den App Service-Plänen ab.

  • Apps in den kostenlosen und gemeinsamen Stufen laufen auf gemeinsamen VMs

  • Apps in den Standard- und Premium-Stufen laufen auf dedizierten VMs

Beachten Sie, dass keine dieser Isolierungen andere häufige Webanfälligkeiten (wie Datei-Uploads oder Injektionen) verhindert. Und wenn eine Verwaltungsidentität verwendet wird, könnte sie in der Lage sein, ihre Berechtigungen zu kompromittieren.

Enumeration

# 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>

Anmeldeinformationen erhalten & Zugriff auf den Webanwendungscode erhalten

# 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

Zugriff auf den Docker-Container mit der Webanwendung über SSH:

# 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

Funktion Apps Grundinformationen

Azure Functions ist eine serverless Lösung, die es Ihnen ermöglicht, weniger Code zu schreiben, weniger Infrastruktur zu warten und Kosten zu sparen. Anstatt sich um das Bereitstellen und Warten von Servern zu kümmern, stellt die Cloud-Infrastruktur alle aktuellen Ressourcen bereit, die benötigt werden, um Ihre Anwendungen am Laufen zu halten.

Im Azure-Portal wird die Integration zwischen Azure Functions und Azure API Management erleichtert, sodass HTTP-Trigger-Funktionsendpunkte als REST-APIs exponiert werden können. Die auf diese Weise exponierten APIs werden mithilfe einer OpenAPI-Definition beschrieben, die eine standardisierte, sprachunabhängige Schnittstelle zu RESTful APIs bietet.

Funktion Apps unterstützen verwaltete Identitäten.

Darüber hinaus kann eine Funktion App bestimmte Endpunkte haben, die ein gewisses Maß an Authentifizierung erfordern, wie "admin" oder "anonymous". Ein Angreifer könnte versuchen, auf die anonym erlaubten Endpunkte zuzugreifen, um die Einschränkungen zu umgehen und Zugriff auf sensible Daten oder Funktionen zu erhalten.

Aufzählung

# Get only Function Apps
Get-AzFunctionApp

Referenzen

Unterstütze HackTricks

Last updated