DO - Functions

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Informações Básicas

As Funções DigitalOcean, também conhecidas como "DO Functions", são uma plataforma de computação serverless que permite executar código sem se preocupar com a infraestrutura subjacente. Com as DO Functions, você pode escrever e implantar seu código como "funções" que podem ser acionadas via API, solicitaçõ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 irá agrupar funções. Dentro do namespace, você pode então criar uma função.

Gatilhos

A maneira de acionar uma função via REST API (sempre habilitado, é o método que o cli usa) é acionando uma solicitaçã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 acionador HTTP está habilitado, uma função da web pode ser invocada por meio destes métodos HTTP GET, POST, PUT, PATCH, DELETE, HEAD e OPTIONS.

Nas funções DO, as variáveis de ambiente não podem ser criptografadas (no momento desta escrita). Não consegui encontrar nenhuma maneira de lê-las a partir da CLI, mas a partir do console é direto.

Os URLs das funções se 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

Não há um endpoint de metadados no sandbox de Funções.

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Última actualización