DO - Funções
Reading time: 3 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Informações Básicas
DigitalOcean Functions, também conhecido como "DO Functions", é uma plataforma de computação serverless que permite executar código sem se preocupar com a infraestrutura subjacente. Com DO Functions, você pode escrever e implantar seu código como "funções" que podem ser ativadas via API, requisições HTTP (se habilitado) ou cron. Essas funções são executadas em um ambiente totalmente gerenciado, então você não precisa se preocupar com escalabilidade, segurança ou manutenção.
No DO, para criar uma função, primeiro você precisa criar um namespace que será um agrupamento de funções.
Dentro do namespace, você pode então criar uma função.
Gatilhos
A maneira de ativar uma função via REST API (sempre habilitado, é o método que o cli usa) é acionando uma requisição com um token de autenticação como:
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="
Para ver como a ferramenta de linha de comando doctl
está obtendo esse token (para que você possa replicá-lo), o seguinte comando mostra o rastreamento completo da rede:
doctl serverless connect --trace
Quando o gatilho HTTP está habilitado, uma função web pode ser invocada através desses métodos HTTP GET, POST, PUT, PATCH, DELETE, HEAD e OPTIONS.
caution
Nas funções DO, variáveis de ambiente não podem ser criptografadas (no momento da redação deste texto).
Não consegui encontrar nenhuma maneira de lê-las a partir da CLI, mas a partir do console é direto.
URLs das funções parecem com isso: https://<random>.doserverless.co/api/v1/web/<namespace-id>/default/<function-name>
Enumeração
# 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
Não existe um endpoint de metadados do sandbox de Functions.
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.