在之前的文章中,我们描述了本地/物理取证与云取证之间的差异,以及如何创建可分发到多个区域的VM镜像。本文将具体说明如何获取被标记调查的虚拟机(Virtual Machine)关联的虚拟硬盘(VHD)。
调查场景
Azure安全中心警报显示,ContosoOps资源组下的订阅B中名为"ContosoWeb"的虚拟机可能存在Web Shell。我们假设租户包含2个订阅,每个订阅有若干资源组,且IT安全团队具有跨租户权限。
获取虚拟机磁盘
步骤1:创建磁盘快照
我们选择文件容器(File container)存储快照,以便通过网络直接调查而无需多次复制。以下是关键PowerShell脚本:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
######################################### 变量定义 #########################################
$srcSubId = '222222-2222-2222-2222-222222222222' # 源订阅ID
$destSubId = '111111-1111-1111-1111-111111111111' # 目标订阅ID
$srcRGName ='ContosoOps' # 包含VM的资源组
$destRGName = 'ContosoSecurity' # 目标存储账户资源组
$vmName = 'ContosoWeb' # 待调查VM名称
$srcLocation = 'westus' # 源区域
$dstLocation = 'westus' # 目标区域
$SnapshotName = 'ContosoWeb-Snapshot' # 快照名称
$destSA = 'contososecuritystorage' # 存储账户名
$destSAContainer = 'investigations' # 存储容器名
############################# 创建OS磁盘快照 #############################
Select-AzureRmSubscription -SubscriptionId $srcSubId
$vm = Get-AzureRmVM -ResourceGroupName $srcRGName -Name $vmName
$disk = Get-AzureRmDisk -ResourceGroupName $srcRGName -DiskName $vm.StorageProfile.OsDisk.Name
$snapshot = New-AzureRmSnapshotConfig -SourceUri $disk.Id -CreateOption Copy -Location $srcLocation
New-AzureRmSnapshot -ResourceGroupName $srcRGName -Snapshot $snapshot -SnapshotName $SnapshotName
##################### 将快照复制到文件容器 #######################
$snapSasUrl = Grant-AzureRmSnapshotAccess -ResourceGroupName $destRGName -SnapshotName $snapshotName -DurationInSecond 7200 -Access Read
Select-AzureRmSubscription -SubscriptionId $srcSubId
$targetStorageContext = (Get-AzureRmStorageAccount -ResourceGroupName $destRGName -Name $destSA).Context
Start-AzureStorageFileCopy -AbsoluteUri $snapSasUrl.AccessSAS -DestShareName $destSAContainer -DestContext $targetStorageContext -DestFilePath $SnapshotName -Force
|
清理原始快照:
1
|
Remove-AzureRmSnapshot -ResourceGroupName $srcRGName -SnapshotName $SnapshotName -Force
|
步骤2:访问包含磁盘的共享
可以通过以下命令挂载文件共享:
Windows:
1
|
net use * \\contososecuritystorage.file.core.windows.net\investigations /u:contososecuritystorage
|
Linux:
1
|
sudo mount -t cifs \\contososecuritystorage.file.core.windows.net\investigations\ -o username=contososecuritystorage
|
密码为存储容器的访问密钥,可通过Azure Storage Explorer获取。
最终成果
我们成功将潜在感染的VM磁盘快照传输到存储账户的文件共享中,可通过网络直接访问进行分析。下一篇文章将介绍如何自动化部分调查流程。