反取证技术

Reading time: 9 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks

时间戳

攻击者可能会对文件的时间戳进行更改以避免被检测。
可以在MFT中的属性$STANDARD_INFORMATION __ 和 __ $FILE_NAME中找到时间戳。

这两个属性都有4个时间戳:修改访问创建MFT注册修改(MACE或MACB)。

Windows资源管理器和其他工具显示来自**$STANDARD_INFORMATION**的信息。

TimeStomp - 反取证工具

该工具修改****$STANDARD_INFORMATION中的时间戳信息不修改****$FILE_NAME中的信息。因此,可以识别可疑活动**。

Usnjrnl

USN日志(更新序列号日志)是NTFS(Windows NT文件系统)的一个特性,用于跟踪卷的更改。UsnJrnl2Csv工具允许检查这些更改。

上图是工具显示的输出,可以观察到对文件进行了某些更改

$LogFile

对文件系统的所有元数据更改都会被记录,这一过程称为写前日志。记录的元数据保存在名为**$LogFile**的文件中,该文件位于NTFS文件系统的根目录。可以使用LogFileParser等工具解析此文件并识别更改。

再次,在工具的输出中可以看到进行了某些更改

使用同一工具可以识别时间戳被修改到哪个时间

  • CTIME: 文件创建时间
  • ATIME: 文件修改时间
  • MTIME: 文件的MFT注册修改
  • RTIME: 文件访问时间

$STANDARD_INFORMATION$FILE_NAME比较

识别可疑修改文件的另一种方法是比较两个属性上的时间,寻找不匹配

纳秒

NTFS时间戳的精度100纳秒。因此,找到时间戳为2010-10-10 10:10:00.000:0000的文件是非常可疑的

SetMace - 反取证工具

该工具可以修改两个属性$STARNDAR_INFORMATION$FILE_NAME。然而,从Windows Vista开始,必须在活动操作系统中修改此信息。

数据隐藏

NFTS使用集群和最小信息大小。这意味着如果一个文件占用一个半集群,剩下的半个集群将永远不会被使用,直到文件被删除。因此,可以在这个松弛空间中隐藏数据

有像slacker这样的工具可以在这个“隐藏”空间中隐藏数据。然而,对$logfile$usnjrnl的分析可以显示某些数据被添加:

然后,可以使用像FTK Imager这样的工具检索松弛空间。请注意,这种工具可以保存内容为模糊或甚至加密的形式。

UsbKill

这是一个工具,如果检测到USB端口的任何更改,将关闭计算机
发现这一点的一种方法是检查正在运行的进程并审查每个正在运行的python脚本

实时Linux发行版

这些发行版在RAM内存中执行。检测它们的唯一方法是在NTFS文件系统以写入权限挂载的情况下。如果仅以读取权限挂载,则无法检测到入侵。

安全删除

https://github.com/Claudio-C/awesome-data-sanitization

Windows配置

可以禁用多种Windows日志记录方法,以使取证调查变得更加困难。

禁用时间戳 - UserAssist

这是一个注册表项,维护用户运行每个可执行文件的日期和时间。

禁用UserAssist需要两个步骤:

  1. 设置两个注册表项,HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgsHKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled,都设置为零,以表示我们希望禁用UserAssist。
  2. 清除看起来像HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\<hash>的注册表子树。

禁用时间戳 - Prefetch

这将保存有关执行的应用程序的信息,目的是提高Windows系统的性能。然而,这对于取证实践也可能有用。

  • 执行regedit
  • 选择文件路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters
  • 右键单击EnablePrefetcherEnableSuperfetch
  • 选择修改,将每个值从1(或3)更改为0
  • 重启

禁用时间戳 - 最后访问时间

每当从Windows NT服务器上的NTFS卷打开文件夹时,系统会花时间更新每个列出文件夹的时间戳字段,称为最后访问时间。在使用频繁的NTFS卷上,这可能会影响性能。

  1. 打开注册表编辑器(Regedit.exe)。
  2. 浏览到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
  3. 查找NtfsDisableLastAccessUpdate。如果不存在,请添加此DWORD并将其值设置为1,这将禁用该过程。
  4. 关闭注册表编辑器,并重启服务器。

删除USB历史

所有USB设备条目都存储在Windows注册表中的USBSTOR注册表项下,该项包含在您将USB设备插入PC或笔记本电脑时创建的子键。您可以在这里找到此键HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR删除此项将删除USB历史。
您还可以使用工具USBDeview确保您已删除它们(并删除它们)。

另一个保存USB信息的文件是C:\Windows\INF中的文件setupapi.dev.log。这也应该被删除。

禁用影子副本

列出影子副本使用vssadmin list shadowstorage
删除它们运行vssadmin delete shadow

您还可以通过GUI删除它们,按照https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html中提出的步骤进行操作。

要禁用影子副本,请参见此处的步骤

  1. 通过在点击Windows开始按钮后在文本搜索框中输入“services”打开服务程序。
  2. 从列表中找到“卷影复制”,选择它,然后右键单击访问属性。
  3. 从“启动类型”下拉菜单中选择禁用,然后通过单击应用和确定确认更改。

还可以在注册表HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot中修改将要在影子副本中复制的文件的配置。

覆盖已删除文件

  • 您可以使用Windows工具cipher /w:C这将指示cipher从C驱动器的可用未使用磁盘空间中删除任何数据。
  • 您还可以使用像Eraser这样的工具。

删除Windows事件日志

  • Windows + R --> eventvwr.msc --> 展开“Windows日志” --> 右键单击每个类别并选择“清除日志”
  • for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"
  • Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }

禁用Windows事件日志

  • reg add 'HKLM\SYSTEM\CurrentControlSet\Services\eventlog' /v Start /t REG_DWORD /d 4 /f
  • 在服务部分禁用“Windows事件日志”服务
  • WEvtUtil.exec clear-logWEvtUtil.exe cl

禁用$UsnJrnl

  • fsutil usn deletejournal /d c:

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE)

支持 HackTricks