Anti-Forensic Techniques

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

支持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. 从列表中找到 "Volume Shadow Copy",选择它,然后通过右键单击访问属性。

  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:

最后更新于