AWS MWAA Luka typu wildcard w koncie roli wykonawczej

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks

Luka

Rola wykonawcza MWAA (rola IAM, której używają Airflow workers do uzyskiwania dostępu do zasobów AWS) wymaga tej obowiązkowej polityki, aby działać:

{
"Effect": "Allow",
"Action": [
"sqs:ChangeMessageVisibility",
"sqs:DeleteMessage",
"sqs:GetQueueAttributes",
"sqs:GetQueueUrl",
"sqs:ReceiveMessage",
"sqs:SendMessage"
],
"Resource": "arn:aws:sqs:us-east-1:*:airflow-celery-*"
}

Dziki znak (*) w pozycji identyfikatora konta pozwala roli na interakcję z dowolną kolejką SQS w dowolnym koncie AWS, która zaczyna się od airflow-celery-. Jest to wymagane, ponieważ AWS tworzy wewnętrzne kolejki MWAA w oddzielnym koncie zarządzanym przez AWS. Nie ma ograniczeń dotyczących tworzenia kolejek z prefiksem airflow-celery-.

Nie do naprawienia: Usunięcie znaku wieloznacznego przed wdrożeniem całkowicie psuje MWAA — scheduler nie może umieszczać zadań w kolejce dla workerów.

Dokumentacja potwierdzająca podatność i uznająca wektor: AWS Documentation

Eksploatacja

Wszystkie Airflow DAGs uruchamiane są z uprawnieniami roli wykonawczej. DAGi są skryptami Python, które mogą wykonywać dowolny kod — mogą użyć yum lub curl do instalacji narzędzi, pobrania złośliwych skryptów lub importu dowolnej biblioteki Python. DAGi są pobierane z przypisanego folderu S3 i uruchamiane automatycznie zgodnie z harmonogramem; wszystko, czego potrzebuje atakujący, to możliwość wykonania PUT do tej ścieżki w bucketcie.

Każdy, kto może pisać DAGi (zazwyczaj większość użytkowników w środowiskach MWAA), może nadużyć tego uprawnienia:

  1. Data Exfiltration: Utwórz kolejkę o nazwie airflow-celery-exfil w zewnętrznym koncie, napisz DAG, który wyśle do niej wrażliwe dane za pomocą boto3

  2. Command & Control: Pobierać polecenia z zewnętrznej kolejki, wykonywać je, zwracać wyniki — tworząc trwały backdoor przez SQS APIs

  3. Cross-Account Attacks: Wstrzyknąć złośliwe wiadomości do kolejek innych organizacji, jeśli stosują wzorzec nazewnictwa

Wszystkie ataki omijają kontrole sieciowe, ponieważ korzystają z AWS APIs, a nie bezpośrednich połączeń internetowych.

Wpływ

To błąd architektoniczny w MWAA, którego nie da się złagodzić za pomocą IAM. Każde wdrożenie MWAA zgodne z dokumentacją AWS ma tę podatność.

Omijanie kontroli sieciowej: Te ataki działają nawet w prywatnych VPC bez dostępu do internetu. Wywołania SQS API używają wewnętrznej sieci AWS i VPC endpoints, całkowicie omijając tradycyjne kontrole bezpieczeństwa sieci, firewalle i monitorowanie ruchu wychodzącego. Organizacje nie mogą wykryć ani zablokować tej ścieżki data exfiltration za pomocą kontroli na poziomie sieci.

Tip

Ucz się & ćwicz AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Wspieraj HackTricks