Toolsmith - GSE Edition: snapshot.ps1
我最近花费了不少时间准备GIAC安全专家(GSE)考试,这是每四年重新认证的要求之一。我最初在2012年参加了考试,对我来说,三分之一的课程内容属于“不用即忘”的类型。GSE考试涵盖GSEC、GCIH和GCIA。随着我的日常工作从分析师转向领导岗位,这些年我不得不“重新学习”数据包分析技能。多亏了Packetrix虚拟机和SANS 503练习手册,偏移量、标志位和分段,哦我的天!一切顺利,任务完成,我的认证已续期至2020年10月,仍然是GSE #52,但花了几周时间埋头于18本课程书籍,让我想起了其中描述的一些优秀工具。因此,这是关于其中一些工具、它们的价值和使用场景系列文章的第一篇。
我将从snapshot.ps1开始。它实际上是SEC505:保护Windows和PowerShell自动化下载包的一部分,但也在GCIH课程中讨论。本质上,snapshot.ps1代表了一个脚本,用于封装与SANS Windows入侵发现速查表相关的活动。
该脚本由SEC505作者Jason Fossen提供,可以在课程下载包的Day 5-IPSec文件夹中找到。该脚本“转储大量配置数据用于审计和取证分析”,并允许您“比较不同时间创建的快照文件以提取差异”。
要使用snapshot.ps1,请将脚本放入一个可以安全创建子目录的目录中,因为脚本会创建一个以计算机命名的子目录,然后写入各种包含系统配置数据的文件。以管理员权限运行snapshot.ps1。
该脚本运行在Windows 7、Server 2008及更新的Windows操作系统上(我在Windows 10 Redstone 2上运行过),需要PowerShell 3.0或更高版本。如果您想要转储系统启动和登录时自动运行的程序以及运行SHA256文件哈希,还需要在PATH中有autorunsc.exe和sha256deep.exe。
也就是说,如果您必须让脚本运行得更快,我是说快得多,可以在snapshot.ps1的末尾禁用文件哈希,运行时间减少90%。然而,Jason指出,这是脚本用于识别对抗活动最有用的方面之一。他还指出,snapshot.ps1是一个入门脚本;您可以并且应该添加更多命令。例如,参考toolsmith #112:红队 vs 蓝队 - PowerSploit vs PowerForensics,在导入PowerForensics后,您可以添加类似Get-ForensicTimeline | Sort-Object -Property Date | Where-Object { $.Date -ge “12/30/2015” -and $.Date -le “01/04/2016” } | WriteOut -FileName Timeline的内容,这将为您提供2015年12月30日至2016年1月4日之间的文件系统时间线。但等等,还有更多!想要不需要autorunsc.exe获取自动运行程序?下载@p0w3rsh3ll的AutoRuns模块,运行Import-Module AutoRuns.psm1,然后运行Get-Command -Module AutoRuns以确保模块已加载,最后注释掉autorunsc.exe -accepteula -a -c | Out-File -FilePath AutoRuns.csv,然后添加Get-PSAutorun | WriteOut -FileName AutoRuns。
然后只需运行.\Snapshot.ps1,并观察以计算机命名的目录被填充,在我的例子中是0V3RW4TCH-2016-10-31-9-7,如图1所示。
图1:Snapshot.ps1运行
大多数结果文件以机器可读的XML、CSV和TXT格式写入,以及通过reg.exe注册表导出生成的REG文件。
一个很好的结果文件示例是通过dir -Path c:\ -Hidden -Recurse -ErrorAction SilentlyContinue | Select-Object FullName,Length,Mode,CreationTime,LastAccessTime,LastWriteTime | Export-Csv -Path FileSystem-Hidden-Files.csv生成的。生成的CSV就像一次邪恶记忆之旅,所有我过去测试过的金块都留下了痕迹。这正是在真实响应场景中您要寻找的内容,如图2所示。
图2:Snapshot.ps1抓取隐藏文件
当然,有很多相关的DFIR收集脚本,但我真的很喜欢这个,并计划进一步调整它。Jason做得很好,这只是考虑参加SEC505或追求GSE的众多原因之一!干杯……下次见。