DO - Fonksiyonlar

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Temel Bilgiler

DigitalOcean Fonksiyonları, “DO Fonksiyonları” olarak da bilinir, altyapı hakkında endişelenmeden kod çalıştırmanıza olanak tanıyan bir sunucusuz bilişim platformudur. DO Fonksiyonları ile kodunuzu API, HTTP istekleri (eğer etkinleştirilmişse) veya cron aracılığıyla tetiklenebilen “fonksiyonlar” olarak yazıp dağıtabilirsiniz. Bu fonksiyonlar tamamen yönetilen bir ortamda çalıştırılır, bu nedenle ölçeklendirme, güvenlik veya bakım konusunda endişelenmenize gerek yoktur.

DO’da bir fonksiyon oluşturmak için önce bir ad alanı oluşturmanız gerekir; bu, fonksiyonları gruplandıracaktır.
Ad alanının içinde bir fonksiyon oluşturabilirsiniz.

Tetikleyiciler

REST API aracılığıyla bir fonksiyonu tetikleme yöntemi (her zaman etkin, cli’nin kullandığı yöntem) bir kimlik doğrulama token’ı ile bir istek tetiklemektir:

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="

doctl cli aracının bu token’ı nasıl aldığını görmek için (bunu tekrarlayabilmeniz için), aşağıdaki komut tam ağ izini gösterir:

doctl serverless connect --trace

HTTP tetikleyici etkinleştirildiğinde, bir web işlevi bu HTTP yöntemleri GET, POST, PUT, PATCH, DELETE, HEAD ve OPTIONS aracılığıyla çağrılabilir.

Caution

DO işlevlerinde, ortam değişkenleri şifrelenemez (bu yazının yazıldığı sırada).
CLI’den okumak için herhangi bir yol bulamadım ama konsoldan oldukça basit.

İşlev URL’leri şu şekilde görünür: 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

Caution

Functions sandbox’tan metadata endpoint yoktur.

Tip

AWS Hacking’i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin