DO - Funzioni
Reading time: 3 minutes
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
Informazioni di base
DigitalOcean Functions, conosciuto anche come "DO Functions", è una piattaforma di computing serverless che ti consente di eseguire codice senza dover preoccuparti dell'infrastruttura sottostante. Con DO Functions, puoi scrivere e distribuire il tuo codice come "funzioni" che possono essere attivate tramite API, richieste HTTP (se abilitate) o cron. Queste funzioni vengono eseguite in un ambiente completamente gestito, quindi non devi preoccuparti di scalabilità, sicurezza o manutenzione.
In DO, per creare una funzione devi prima creare uno spazio dei nomi che sarà un gruppo di funzioni.
All'interno dello spazio dei nomi puoi quindi creare una funzione.
Attivatori
Il modo per attivare una funzione tramite REST API (sempre abilitato, è il metodo utilizzato dal cli) è attivando una richiesta con un token di autenticazione come:
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="
Per vedere come lo strumento cli doctl
ottiene questo token (in modo da poterlo replicare), il seguente comando mostra l'intera traccia di rete:
doctl serverless connect --trace
Quando il trigger HTTP è abilitato, una funzione web può essere invocata attraverso questi metodi HTTP GET, POST, PUT, PATCH, DELETE, HEAD e OPTIONS.
caution
Nelle funzioni DO, le variabili di ambiente non possono essere criptate (al momento della scrittura di questo documento).
Non sono riuscito a trovare alcun modo per leggerle dalla CLI, ma dalla console è semplice.
Gli URL delle funzioni sembrano così: https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>
Enumerazione
# 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
caution
Non c'è un endpoint dei metadati dal sandbox delle Funzioni.
tip
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.