DO - Functions

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Grundlegende Informationen

DigitalOcean Functions, auch bekannt als "DO Functions", ist eine serverlose Computing-Plattform, die es Ihnen ermöglicht, Code auszuführen, ohne sich um die zugrunde liegende Infrastruktur kümmern zu müssen. Mit DO Functions können Sie Ihren Code als "Funktionen" schreiben und bereitstellen, die über API, HTTP-Anfragen (falls aktiviert) oder cron ausgelöst werden können. Diese Funktionen werden in einer vollständig verwalteten Umgebung ausgeführt, sodass Sie sich keine Gedanken über Skalierung, Sicherheit oder Wartung machen müssen.

In DO müssen Sie zunächst einen Namensraum erstellen, der die Funktionen gruppiert. Innerhalb des Namensraums können Sie dann eine Funktion erstellen.

Trigger

Die Möglichkeit, eine Funktion über REST-API auszulösen (immer aktiviert, dies ist die Methode, die der CLI verwendet), besteht darin, eine Anfrage mit einem Authentifizierungstoken wie folgt auszulösen:

curl -X POST "https://faas-lon1-129376a7.doserverless.co/api/v1/namespaces/fn-c100c012-65bf-4040-1230-2183764b7c23/actions/functionname?blocking=true&result=true" \
-H "Content-Type: application/json" \
-H "Authorization: Basic MGU0NTczZGQtNjNiYS00MjZlLWI2YjctODk0N2MyYTA2NGQ4OkhwVEllQ2t4djNZN2x6YjJiRmFGc1FERXBySVlWa1lEbUxtRE1aRTludXA1UUNlU2VpV0ZGNjNqWnVhYVdrTFg="

Um zu sehen, wie das doctl-CLI-Tool dieses Token erhält (damit Sie es replizieren können), zeigt der folgende Befehl die vollständige Netzwerkspur:

doctl serverless connect --trace

Wenn der HTTP-Trigger aktiviert ist, kann eine Webfunktion über diese HTTP-Methoden GET, POST, PUT, PATCH, DELETE, HEAD und OPTIONS aufgerufen werden.

In DO-Funktionen können Umgebungsvariablen nicht verschlüsselt werden (zum Zeitpunkt dieses Schreibens). Ich konnte keinen Weg finden, sie über die Befehlszeile zu lesen, aber über die Konsole ist es einfach.

Funktions-URLs sehen so aus: https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>

Enumeration

# Namespace
doctl serverless namespaces list

# Functions (need to connect to a namespace)
doctl serverless connect
doctl serverless functions list
doctl serverless functions invoke <func-name>
doctl serverless functions get <func-name>

# Logs of executions
doctl serverless activations list
doctl serverless activations get <activation-id> # Get all the info about execution
doctl serverless activations logs <activation-id> # get only the logs of execution
doctl serverless activations result <activation-id> # get only the response result of execution

# I couldn't find any way to get the env variables form the CLI

Es gibt keinen Metadaten-Endpunkt aus der Functions-Sandbox.

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated