Airflow Configuration
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Configuration File
Apache Airflow δημιουργεί ένα config file σε όλες τις μηχανές airflow που ονομάζεται airflow.cfg στον φάκελο του χρήστη airflow. Αυτό το config file περιέχει πληροφορίες ρύθμισης και μπορεί να περιέχει ενδιαφέρουσες και ευαίσθητες πληροφορίες.
Υπάρχουν δύο τρόποι για να αποκτήσετε πρόσβαση σε αυτό το αρχείο: Με την παραβίαση κάποιας μηχανής airflow ή με την πρόσβαση στην web κονσόλα.
Σημειώστε ότι οι τιμές μέσα στο config file μπορεί να μην είναι οι χρησιμοποιούμενες, καθώς μπορείτε να τις αντικαταστήσετε ρυθμίζοντας μεταβλητές περιβάλλοντος όπως AIRFLOW__WEBSERVER__EXPOSE_CONFIG: 'true'.
Αν έχετε πρόσβαση στο config file στον web server, μπορείτε να ελέγξετε την πραγματική τρέχουσα ρύθμιση στην ίδια σελίδα που εμφανίζεται το config.
Αν έχετε πρόσβαση σε κάποια μηχανή μέσα στο περιβάλλον airflow, ελέγξτε το περιβάλλον.
Ορισμένες ενδιαφέρουσες τιμές για έλεγχο κατά την ανάγνωση του config file:
[api]
access_control_allow_headers: Αυτό υποδεικνύει τους επιτρεπόμενους headers για CORSaccess_control_allow_methods: Αυτό υποδεικνύει τις επιτρεπόμενες μεθόδους για CORSaccess_control_allow_origins: Αυτό υποδεικνύει τις επιτρεπόμενες προελεύσεις για CORSauth_backend: Σύμφωνα με τα docs μερικές επιλογές μπορούν να είναι σε εφαρμογή για να ρυθμίσουν ποιος μπορεί να έχει πρόσβαση στην API:airflow.api.auth.backend.deny_all: Από προεπιλογή κανείς δεν μπορεί να έχει πρόσβαση στην APIairflow.api.auth.backend.default: Όλοι μπορούν να έχουν πρόσβαση χωρίς αυθεντικοποίησηairflow.api.auth.backend.kerberos_auth: Για να ρυθμίσετε αυθεντικοποίηση kerberosairflow.api.auth.backend.basic_auth: Για βασική αυθεντικοποίησηairflow.composer.api.backend.composer_auth: Χρησιμοποιεί την αυθεντικοποίηση composers (GCP) (από εδώ).composer_auth_user_registration_role: Αυτό υποδεικνύει τον ρόλο που θα αποκτήσει ο χρήστης composer μέσα στο airflow (Op από προεπιλογή).- Μπορείτε επίσης να δημιουργήσετε τη δική σας μέθοδο αυθεντικοποίησης με python.
google_key_path: Διαδρομή προς το GCP service account key
[atlas]
password: Κωδικός πρόσβασης Atlasusername: Όνομα χρήστη Atlas
[celery]
flower_basic_auth: Διαπιστευτήρια (user1:password1,user2:password2)result_backend: URL Postgres που μπορεί να περιέχει διαπιστευτήρια.ssl_cacert: Διαδρομή προς το cacertssl_cert: Διαδρομή προς το certssl_key: Διαδρομή προς το key
[core]
dag_discovery_safe_mode: Ενεργοποιημένο από προεπιλογή. Κατά την ανακάλυψη DAGs, αγνοήστε οποιαδήποτε αρχεία που δεν περιέχουν τις συμβολοσειρέςDAGκαιairflow.fernet_key: Κλειδί για την αποθήκευση κρυπτογραφημένων μεταβλητών (συμμετρικό)hide_sensitive_var_conn_fields: Ενεργοποιημένο από προεπιλογή, κρύβει ευαίσθητες πληροφορίες συνδέσεων.security: Ποιο μοντέλο ασφάλειας να χρησιμοποιηθεί (για παράδειγμα kerberos)
[dask]
tls_ca: Διαδρομή προς catls_cert: Διαδρομή προς το certtls_key: Διαδρομή προς το tls key
[kerberos]
ccache: Διαδρομή προς το αρχείο ccacheforwardable: Ενεργοποιημένο από προεπιλογή
[logging]
google_key_path: Διαδρομή προς τα GCP JSON creds.
[secrets]
backend: Πλήρες όνομα κλάσης του secrets backend που θα ενεργοποιηθείbackend_kwargs: Η παράμετρος backend_kwargs φορτώνεται σε ένα λεξικό και περνάται στο init της κλάσης secrets backend.
[smtp]
smtp_password: Κωδικός πρόσβασης SMTPsmtp_user: Χρήστης SMTP
[webserver]
cookie_samesite: Από προεπιλογή είναι Lax, οπότε είναι ήδη η πιο αδύναμη δυνατή τιμήcookie_secure: Ρυθμίστε τη σημαία ασφαλείας στο cookie της συνεδρίαςexpose_config: Από προεπιλογή είναι False, αν είναι true, το config μπορεί να διαβαστεί από την web κονσόλαexpose_stacktrace: Από προεπιλογή είναι True, θα δείξει python tracebacks (πιθανώς χρήσιμο για έναν επιτιθέμενο)secret_key: Αυτό είναι το κλειδί που χρησιμοποιεί το flask για να υπογράψει τα cookies (αν έχετε αυτό μπορείτε να παριστάνετε οποιονδήποτε χρήστη στο Airflow)web_server_ssl_cert: Διαδρομή προς το SSL certweb_server_ssl_key: Διαδρομή προς το SSL Keyx_frame_enabled: Προεπιλογή είναι True, οπότε από προεπιλογή η κλοπή κλικ δεν είναι δυνατή
Web Authentication
Από προεπιλογή η web authentication καθορίζεται στο αρχείο webserver_config.py και είναι ρυθμισμένη ως
AUTH_TYPE = AUTH_DB
Αυτό σημαίνει ότι η αυθεντικοποίηση ελέγχεται σε σχέση με τη βάση δεδομένων. Ωστόσο, είναι δυνατές και άλλες ρυθμίσεις όπως
AUTH_TYPE = AUTH_OAUTH
Για να αφήσετε την αυθεντικοποίηση σε τρίτες υπηρεσίες.
Ωστόσο, υπάρχει επίσης μια επιλογή να επιτρέψετε την πρόσβαση σε ανώνυμους χρήστες, ρυθμίζοντας την παρακάτω παράμετρο στο επιθυμητό ρόλο:
AUTH_ROLE_PUBLIC = 'Admin'
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

