-
Notifications
You must be signed in to change notification settings - Fork 505
/
delete_volume_shadows.py
36 lines (28 loc) · 1.3 KB
/
delete_volume_shadows.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
# or more contributor license agreements. Licensed under the Elastic License
# 2.0; you may not use this file except in compliance with the Elastic License
# 2.0.
# Name: Volume Shadow Copy Deletion with vssadmin and wmic
# RTA: delete_volume_shadow.py
# signal.rule.name: Volume Shadow Copy Deletion via VssAdmin
# ELastic Detection: Volume Shadow Copy Deletion via WMIC
# ATT&CK: T1107
# Description: Uses both vssadmin.exe and wmic.exe to delete volume shadow copies.
from . import common
from . import RtaMetadata
metadata = RtaMetadata(
uuid="ae6343cc-3b56-4f60-854f-7102db519ec4",
platforms=["windows"],
endpoint=[],
siem=[{"rule_id": "dc9c1f74-dac3-48e3-b47f-eb79db358f57", "rule_name": "Volume Shadow Copy Deletion via WMIC"}],
techniques=["T1490"],
)
@common.requires_os(*metadata.platforms)
def main():
common.log("Deleting volume shadow copies...")
common.execute(["vssadmin.exe", "delete", "shadows", "/for=c:", "/oldest", "/quiet"])
# Create a volume shadow copy so that there is at least one to delete
common.execute(["wmic.exe", "shadowcopy", "call", "create", "volume=c:\\"])
common.execute(["wmic.exe", "shadowcopy", "delete", "/nointeractive"])
if __name__ == "__main__":
exit(main())