> For the complete documentation index, see [llms.txt](https://hacktricks.xsx.tw/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacktricks.xsx.tw/generic-methodologies-and-resources/basic-forensic-methodology/anti-forensic-techniques.md).

# Anti-Forensic Techniques

<details>

<summary><strong>从零开始学习AWS黑客技术，成为专家</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE（HackTricks AWS红队专家）</strong></a><strong>！</strong></summary>

支持HackTricks的其他方式：

* 如果您想看到您的**公司在HackTricks中做广告**或**下载PDF格式的HackTricks**，请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
* 探索[**PEASS家族**](https://opensea.io/collection/the-peass-family)，我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)
* **加入** 💬 [**Discord群**](https://discord.gg/hRep4RUj7f) 或 [**电报群**](https://t.me/peass) 或在**Twitter**上关注我们 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**。**
* 通过向[**HackTricks**](https://github.com/carlospolop/hacktricks)和[**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github仓库提交PR来分享您的黑客技巧。

</details>

## 时间戳

攻击者可能有兴趣**更改文件的时间戳**以避免被检测。\
可以在MFT中的属性`$STANDARD_INFORMATION`和`$FILE_NAME`中找到时间戳。

这两个属性都有4个时间戳：**修改**，**访问**，**创建**和**MFT注册修改**（MACE或MACB）。

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

### TimeStomp - 反取证工具

该工具**修改**了\*\*`$STANDARD_INFORMATION`**中的时间戳信息**但是**没有修改**`$FILE_NAME`**中的信息。因此，可以**识别**出**可疑**的**活动\*\*。

### Usnjrnl

**USN日志**（更新序列号日志）是NTFS（Windows NT文件系统）的一个功能，用于跟踪卷的更改。[**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv)工具允许检查这些更改。

![](/files/MoisTYaUx4Nx8cnOJY8s)

上图是该**工具显示的输出**，可以观察到对文件进行了一些**更改**。

### $LogFile

**文件系统中所有元数据更改都会被记录**，这个过程称为[预写式日志记录](https://en.wikipedia.org/wiki/Write-ahead_logging)。记录的元数据保存在名为`**$LogFile**`的文件中，位于NTFS文件系统的根目录中。可以使用诸如[LogFileParser](https://github.com/jschicht/LogFileParser)之类的工具来解析此文件并识别更改。

![](/files/STe6RHJh4t1l3ArEEsMX)

再次，在工具的输出中，可以看到**进行了一些更改**。

使用相同的工具，可以确定**时间戳何时被修改**：

![](/files/j0N8HTmqRzLFxyVgSDqQ)

* 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`的分析可以显示添加了一些数据：

![](/files/zvjfOe9tECxygPoQHodm)

因此，可以使用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_TrackProgs`和`HKEY_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`
* 右键单击`EnablePrefetcher`和`EnableSuperfetch`
* 对每个进行修改，将值从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或笔记本电脑时创建的子键。您可以在此处找到此键 H`KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`。**删除此**将删除USB历史记录。\
您还可以使用工具[**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html)确保已删除它们（并删除它们）。

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

### 禁用阴影副本

使用`vssadmin list shadowstorage`**列出**阴影副本\
运行`vssadmin delete shadow`**删除**它们

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

要禁用阴影副本[这里的步骤](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows):

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

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

### 覆盖已删除的文件

* 您可以使用一个**Windows工具**：`cipher /w:C` 这将指示cipher从C驱动器中的可用未使用磁盘空间中删除任何数据。
* 您还可以使用诸如[**Eraser**](https://eraser.heidi.ie)之类的工具

### 删除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-log` 或 `WEvtUtil.exe cl`

### 禁用$UsnJrnl

* `fsutil usn deletejournal /d c:`
