Translated ['', 'src/generic-methodologies-and-resources/basic-forensic-

This commit is contained in:
Translator 2025-08-21 02:33:01 +00:00
parent e8eb4c7133
commit 85e18148aa
2 changed files with 156 additions and 51 deletions

View File

@ -17,7 +17,7 @@
### Usnjrnl
**USN日志**更新序列号日志是NTFSWindows NT文件系统的一个特性用于跟踪卷的变化。[**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv)工具允许检查这些变化
**USN日志**更新序列号日志是NTFSWindows NT文件系统的一个特性用于跟踪卷更改。[**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv)工具允许检查这些更改
![](<../../images/image (801).png>)
@ -50,26 +50,26 @@
### SetMace - 反取证工具
该工具可以修改两个属性`$STARNDAR_INFORMATION``$FILE_NAME`。然而从Windows Vista开始必须在活动操作系统中才能修改此信息。
该工具可以修改两个属性`$STARNDAR_INFORMATION``$FILE_NAME`。然而从Windows Vista开始必须在实时操作系统中修改此信息。
## 数据隐藏
NFTS使用集群和最小信息大小。这意味着如果一个文件占用一个半集群**剩余的一半将永远不会被使用**,直到文件被删除。因此,可以在这个松弛空间中**隐藏数据**。
NFTS使用集群和最小信息大小。这意味着如果一个文件占用一个半集群**剩下的半个集群将永远不会被使用**,直到文件被删除。因此,可以在这个松弛空间中**隐藏数据**。
有像slacker这样的工具可以在这个“隐藏”空间中隐藏数据。然而`$logfile``$usnjrnl`的分析可以显示一些数据被添加:
![](<../../images/image (1060).png>)
然后,可以使用像FTK Imager这样的工具检索松弛空间。请注意,这种工具可以保存内容为模糊或甚至加密的形式。
然后,可以使用FTK Imager等工具检索松弛空间。请注意,这种工具可以保存内容为模糊或甚至加密的形式。
## UsbKill
这是一个工具如果检测到USB端口的任何更改将**关闭计算机**。\
发现这一点的方法是检查正在运行的进程并**审查每个正在运行的python脚本**。
发现这一点的一种方法是检查正在运行的进程并**审查每个正在运行的python脚本**。
## 实时Linux发行版
这些发行版在**RAM**内存中**执行**。检测它们的唯一方法是**在NTFS文件系统以写权限挂载的情况下**。如果仅以读权限挂载,则无法检测到入侵。
这些发行版在**RAM**内存中**执行**。检测它们的唯一方法是**如果NTFS文件系统以写权限挂载**。如果仅以读权限挂载,则无法检测到入侵。
## 安全删除
@ -100,7 +100,7 @@ NFTS使用集群和最小信息大小。这意味着如果一个文件占用一
### 禁用时间戳 - 最后访问时间
每当从Windows NT服务器上的NTFS卷打开文件夹时系统会花时间**更新每个列出文件夹的时间戳字段**称为最后访问时间。在使用频繁的NTFS卷上这可能会影响性能。
每当从Windows NT服务器上的NTFS卷打开文件夹时系统会花时间**更新每个列出文件夹的时间戳字段**,称为最后访问时间。在一个使用频繁的NTFS卷上这可能会影响性能。
1. 打开注册表编辑器Regedit.exe
2. 浏览到`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem`
@ -109,7 +109,7 @@ NFTS使用集群和最小信息大小。这意味着如果一个文件占用一
### 删除USB历史
所有**USB设备条目**都存储在Windows注册表的**USBSTOR**注册表项下该项包含在将USB设备插入PC或笔记本电脑时创建的子键。您可以在这里找到此键`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`。**删除此项**将删除USB历史。\
所有**USB设备条目**都存储在Windows注册表的**USBSTOR**注册表项下,该项包含在将USB设备插入PC或笔记本电脑时创建的子键。您可以在这里找到此键`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`。**删除此项**将删除USB历史。\
您还可以使用工具[**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html)确保您已删除它们(并删除它们)。
另一个保存USB信息的文件是`C:\Windows\INF`中的文件`setupapi.dev.log`。这也应该被删除。
@ -119,9 +119,9 @@ NFTS使用集群和最小信息大小。这意味着如果一个文件占用一
**列出**影子副本使用`vssadmin list shadowstorage`\
**删除**它们运行`vssadmin delete shadow`
您还可以通过GUI删除它们按照[https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html](https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html)中提出的步骤进行操作
您还可以通过GUI删除它们按照[https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html](https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html)中提出的步骤。
要禁用影子副本,请参[此处的步骤](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows)
要禁用影子副本,请参[此处的步骤](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows)
1. 通过在单击Windows开始按钮后在文本搜索框中输入“services”打开服务程序。
2. 从列表中找到“卷影复制”,选择它,然后右键单击访问属性。
@ -154,9 +154,9 @@ NFTS使用集群和最小信息大小。这意味着如果一个文件占用一
## 高级日志记录与跟踪篡改2023-2025
### PowerShell ScriptBlock/Module日志记录
### PowerShell脚本块/模块日志记录
最近版本的Windows 10/11和Windows Server保留**丰富的PowerShell取证文物**`Microsoft-Windows-PowerShell/Operational`事件4104/4105/4106。攻击者可以实时禁用或清除它们
最近版本的Windows 10/11和Windows Server在`Microsoft-Windows-PowerShell/Operational`下保留**丰富的PowerShell取证文物**事件4104/4105/4106。攻击者可以实时禁用或清除它们
```powershell
# Turn OFF ScriptBlock & Module logging (registry persistence)
New-ItemProperty -Path "HKLM:\\SOFTWARE\\Microsoft\\PowerShell\\3\\PowerShellEngine" \
@ -180,11 +180,11 @@ WriteProcessMemory(GetCurrentProcess(),
GetProcAddress(GetModuleHandleA("ntdll.dll"), "EtwEventWrite"),
patch, sizeof(patch), NULL);
```
公共 PoCs (例如 `EtwTiSwallow`) 在 PowerShell 或 C++ 中实现相同的原语。由于补丁是 **进程本地** 的,运行在其他进程中的 EDR 可能会错过它。检测:比较内存中的 `ntdll` 与磁盘上的 `ntdll`,或在用户模式之前进行钩子。
公共 PoCs (例如 `EtwTiSwallow`) 在 PowerShell 或 C++ 中实现相同的原语。由于补丁是 **进程本地** 的,运行在其他进程中的 EDR 可能会错过它。检测:比较内存中的 `ntdll` 与磁盘上的,或在用户模式之前进行钩子。
### 备用数据流 (ADS) 复兴
2023 年的恶意软件活动(例如 **FIN12** 加载程序)已被发现将第二阶段二进制文件放置在 ADS 中,以避免传统扫描器的检测
2023 年的恶意软件活动(例如 **FIN12** 加载程序)已被发现将第二阶段二进制文件放置在 ADS 中,以避开传统扫描器
```cmd
rem Hide cobalt.bin inside an ADS of a PDF
type cobalt.bin > report.pdf:win32res.dll
@ -196,22 +196,99 @@ wmic process call create "cmd /c report.pdf:win32res.dll"
### BYOVD & “AuKill” (2023)
自带易受攻击驱动程序现在在勒索软件入侵中常规用于 **反取证**
自带易受攻击驱动程序现在常用于勒索软件入侵中的 **反取证**
开源工具 **AuKill** 加载一个已签名但易受攻击的驱动程序 (`procexp152.sys`),以在 **加密和日志销毁之前** 暂停或终止 EDR 和取证传感器:
```cmd
AuKill.exe -e "C:\\Program Files\\Windows Defender\\MsMpEng.exe"
AuKill.exe -k CrowdStrike
```
驱动程序随后被移除,留下最的痕迹。
缓解措施:启用 Microsoft 脆弱驱动程序阻止列表 (HVCI/SAC),并对来自用户可写路径的内核服务创建进行警报。
驱动程序随后被移除,留下最的痕迹。
缓解措施:启用 Microsoft 漏洞驱动程序黑名单 (HVCI/SAC),并对来自用户可写路径的内核服务创建进行警报。
---
## Linux 反取证:自我修补和云 C2 (20232025)
### 自我修补被攻陷的服务以减少检测 (Linux)
对手越来越多地在利用服务后立即“自我修补”,以防止重新利用并抑制基于漏洞的检测。其思路是用最新的合法上游二进制文件/JAR 替换易受攻击的组件,从而使扫描器报告主机已修补,同时保持持久性和 C2。
示例Apache ActiveMQ OpenWire RCE (CVE202346604)
- 后期利用,攻击者从 Maven Central (repo1.maven.org) 获取合法的 JAR删除 ActiveMQ 安装中的易受攻击 JAR并重启代理。
- 这关闭了初始 RCE同时保持其他立足点 (cron、SSH 配置更改、单独的 C2 植入)。
操作示例(说明性)
```bash
# ActiveMQ install root (adjust as needed)
AMQ_DIR=/opt/activemq
cd "$AMQ_DIR"/lib
# Fetch patched JARs from Maven Central (versions as appropriate)
curl -fsSL -O https://repo1.maven.org/maven2/org/apache/activemq/activemq-client/5.18.3/activemq-client-5.18.3.jar
curl -fsSL -O https://repo1.maven.org/maven2/org/apache/activemq/activemq-openwire-legacy/5.18.3/activemq-openwire-legacy-5.18.3.jar
# Remove vulnerable files and ensure the service uses the patched ones
rm -f activemq-client-5.18.2.jar activemq-openwire-legacy-5.18.2.jar || true
ln -sf activemq-client-5.18.3.jar activemq-client.jar
ln -sf activemq-openwire-legacy-5.18.3.jar activemq-openwire-legacy.jar
# Apply changes without removing persistence
systemctl restart activemq || service activemq restart
```
法医/狩猎技巧
- 检查服务目录以寻找未计划的二进制/JAR 替换:
- Debian/Ubuntu: `dpkg -V activemq` 并将文件哈希/路径与仓库镜像进行比较。
- RHEL/CentOS: `rpm -Va 'activemq*'`
- 查找磁盘上存在但不被包管理器拥有的 JAR 版本,或更新的符号链接。
- 时间线:`find "$AMQ_DIR" -type f -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sort` 以关联 ctime/mtime 与妥协窗口。
- Shell 历史/进程遥测:在初始利用后立即有 `curl`/`wget``repo1.maven.org` 或其他工件 CDN 的证据。
- 变更管理:验证谁应用了“补丁”以及原因,而不仅仅是补丁版本的存在。
### 带有承载令牌和反分析启动器的云服务 C2
观察到的交易技巧结合了多个长期 C2 路径和反分析打包:
- 密码保护的 PyInstaller ELF 加载器以阻碍沙箱和静态分析(例如,加密的 PYZ临时提取到 `/_MEI*`)。
- 指标:`strings` 命中如 `PyInstaller``pyi-archive``PYZ-00.pyz``MEIPASS`
- 运行时工件:提取到 `/tmp/_MEI*` 或自定义 `--runtime-tmpdir` 路径。
- 使用硬编码 OAuth Bearer 令牌的 Dropbox 支持的 C2
- 网络标记:`api.dropboxapi.com` / `content.dropboxapi.com`,带有 `Authorization: Bearer <token>`
- 在代理/NetFlow/Zeek/Suricata 中搜索来自不正常同步文件的服务器工作负载的 Dropbox 域的出站 HTTPS。
- 通过隧道进行并行/备份 C2例如Cloudflare Tunnel `cloudflared`),在一个通道被阻止时保持控制。
- 主机 IOCs`cloudflared` 进程/单元,配置在 `~/.cloudflared/*.json`,出站 443 到 Cloudflare 边缘。
### 持久性和“加固回滚”以维持访问Linux 示例)
攻击者经常将自我修补与持久访问路径配对:
- Cron/Anacron在每个 `/etc/cron.*/` 目录中编辑 `0anacron` 存根以进行定期执行。
- 搜索:
```bash
for d in /etc/cron.*; do [ -f "$d/0anacron" ] && stat -c '%n %y %s' "$d/0anacron"; done
grep -R --line-number -E 'curl|wget|python|/bin/sh' /etc/cron.*/* 2>/dev/null
```
- SSH 配置加固回滚:启用 root 登录并更改低权限帐户的默认 shell。
- 搜索 root 登录启用:
```bash
grep -E '^\s*PermitRootLogin' /etc/ssh/sshd_config
# 标志值如 "yes" 或过于宽松的设置
```
- 搜索系统帐户上的可疑交互式 shell例如`games`
```bash
awk -F: '($7 ~ /bin\/(sh|bash|zsh)/ && $1 ~ /^(games|lp|sync|shutdown|halt|mail|operator)$/) {print}' /etc/passwd
```
- 随机、短名称的信标工件8 个字母字符)被写入磁盘并联系云 C2
- 搜索:
```bash
find / -maxdepth 3 -type f -regextype posix-extended -regex '.*/[A-Za-z]{8}$' \
-exec stat -c '%n %s %y' {} \; 2>/dev/null | sort
```
防御者应将这些工件与外部暴露和服务补丁事件关联,以揭示用于隐藏初始利用的反取证自我修复。
## 参考文献
- Sophos X-Ops “AuKill: A Weaponized Vulnerable Driver for Disabling EDR” (2023年3月)
- Sophos X-Ops “AuKill: A Weaponized Vulnerable Driver for Disabling EDR” (2023年3月)
https://news.sophos.com/en-us/2023/03/07/aukill-a-weaponized-vulnerable-driver-for-disabling-edr
- Red Canary “Patching EtwEventWrite for Stealth: Detection & Hunting” (2024年6月)
- Red Canary “Patching EtwEventWrite for Stealth: Detection & Hunting” (2024年6月)
https://redcanary.com/blog/etw-patching-detection
- [Red Canary Patching for persistence: How DripDropper Linux malware moves through the cloud](https://redcanary.com/blog/threat-intelligence/dripdropper-linux-malware/)
- [CVE202346604 Apache ActiveMQ OpenWire RCE (NVD)](https://nvd.nist.gov/vuln/detail/CVE-2023-46604)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -2,16 +2,16 @@
{{#include ../../banners/hacktricks-training.md}}
## 初信息收集
## 初信息收集
### 基本信息
首先,建议准备一个包含**已知良好二进制文件和库的USB**你可以直接获取ubuntu并复制文件夹_/bin_、_/sbin_、_/lib_和_/lib64_然后挂载USB并修改环境变量以使用这些二进制文件
首先,建议准备一个带有**已知良好二进制文件和库的USB**你可以直接获取ubuntu并复制文件夹 _/bin_, _/sbin_, _/lib,__/lib64_然后挂载USB并修改环境变量以使用这些二进制文件
```bash
export PATH=/mnt/usb/bin:/mnt/usb/sbin
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
```
一旦您配置系统以使用良好且已知的二进制文件,您可以开始**提取一些基本信息**
一旦您配置系统以使用良好且已知的二进制文件,您可以开始**提取一些基本信息**
```bash
date #Date and time (Clock may be skewed, Might be at a different timezone)
uname -a #OS info
@ -33,16 +33,16 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
在获取基本信息时,您应该检查一些奇怪的事情,例如:
- **Root 进程** 通常具有较低的 PID因此如果您发现一个具有较大 PID 的 root 进程,您可能会怀疑
- 检查 **没有 shell 的用户**`/etc/passwd` 中的 **注册登录**
- 检查 **没有 shell 的用户**`/etc/shadow` 中的 **密码哈希**
- **Root 进程** 通常运行在低 PID因此如果您发现一个具有大 PID 的 root 进程,您可能会怀疑
- 检查 `/etc/passwd`没有 shell 的用户的 **注册登录**
- 检查 `/etc/shadow`没有 shell 的用户的 **密码哈希**
### 内存转储
要获取正在运行的系统的内存,建议使用 [**LiME**](https://github.com/504ensicsLabs/LiME)。\
**编译** 它,您需要使用受害者机器正在使用的 **相同内核**
> [!NOTE]
> [!TIP]
> 请记住,您 **无法在受害者机器上安装 LiME 或其他任何东西**,因为这会对其进行多项更改
因此,如果您有一个相同版本的 Ubuntu您可以使用 `apt-get install lime-forensics-dkms`\
@ -61,12 +61,12 @@ LiME 还可以用于 **通过网络发送转储**,而不是使用类似 `path=
### 磁盘成像
#### 关闭系统
#### 关
首先,您需要 **关闭系统**。这并不总是一个选项,因为有时系统可能是公司无法承受关闭的生产服务器。\
**2 种方式** 关闭系统,**正常关闭** 和 **“拔掉插头”关闭**。第一种方式将允许 **进程正常终止**,并使 **文件系统** **同步**,但这也可能允许潜在的 **恶意软件** **破坏证据**。“拔掉插头”方法可能会导致 **一些信息丢失**(由于我们已经获取了内存的镜像,丢失的信息不会很多),并且 **恶意软件将没有机会** 采取任何行动。因此,如果您 **怀疑** 可能存在 **恶意软件**,请在系统上执行 **`sync`** **命令** 然后拔掉插头。
**2 种** 关闭系统的方法,**正常关机** 和 **“拔掉插头”关机**。第一种方法将允许 **进程正常终止**,并使 **文件系统** **同步**,但这也可能允许潜在的 **恶意软件** **破坏证据**。“拔掉插头”方法可能会导致 **一些信息丢失**(由于我们已经获取了内存的图像,丢失的信息不会很多),并且 **恶意软件将没有机会** 采取任何措施。因此,如果您 **怀疑** 可能存在 **恶意软件**,请在系统上执行 **`sync`** **命令** 然后拔掉插头。
#### 获取磁盘
#### 获取磁盘
重要的是要注意,在 **将计算机连接到与案件相关的任何设备之前**,您需要确保它将以 **只读方式挂载**,以避免修改任何信息。
```bash
@ -141,9 +141,9 @@ Linux 提供工具以确保系统组件的完整性,这对于发现潜在问
- **基于 RedHat 的系统**:使用 `rpm -Va` 进行全面检查。
- **基于 Debian 的系统**:使用 `dpkg --verify` 进行初步验证,然后使用 `debsums | grep -v "OK$"`(在使用 `apt-get install debsums` 安装 `debsums` 后)来识别任何问题。
### 恶意软件/根套件检测器
### 恶意软件/Rootkit 检测器
阅读以下页面以了解可以帮助查找恶意软件的工具:
阅读以下页面以了解可以用于查找恶意软件的工具:
{{#ref}}
malware-analysis.md
@ -196,19 +196,45 @@ cat /var/spool/cron/crontabs/* \
#MacOS
ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/
```
#### Hunt: Cron/Anacron 滥用通过 0anacron 和可疑的存根
攻击者通常会编辑每个 /etc/cron.*/ 目录下的 0anacron 存根,以确保定期执行。
```bash
# List 0anacron files and their timestamps/sizes
for d in /etc/cron.*; do [ -f "$d/0anacron" ] && stat -c '%n %y %s' "$d/0anacron"; done
# Look for obvious execution of shells or downloaders embedded in cron stubs
grep -R --line-number -E 'curl|wget|/bin/sh|python|bash -c' /etc/cron.*/* 2>/dev/null
```
#### Hunt: SSH 加固回滚和后门 shell
对 sshd_config 和系统账户 shell 的更改是常见的后期利用手段,以保持访问权限。
```bash
# Root login enablement (flag "yes" or lax values)
grep -E '^\s*PermitRootLogin' /etc/ssh/sshd_config
# System accounts with interactive shells (e.g., games → /bin/sh)
awk -F: '($7 ~ /bin\/(sh|bash|zsh)/ && $1 ~ /^(games|lp|sync|shutdown|halt|mail|operator)$/) {print}' /etc/passwd
```
#### Hunt: Cloud C2 markers (Dropbox/Cloudflare Tunnel)
- Dropbox API 信标通常使用 api.dropboxapi.com 或 content.dropboxapi.com 通过 HTTPS 和 Authorization: Bearer tokens。
- 在 proxy/Zeek/NetFlow 中寻找来自服务器的意外 Dropbox 外发流量。
- Cloudflare Tunnel (`cloudflared`) 提供通过出站 443 的备份 C2。
```bash
ps aux | grep -E '[c]loudflared|trycloudflare'
systemctl list-units | grep -i cloudflared
```
### 服务
恶意软件可以作为服务安装的路径:
- **/etc/inittab**: 调用初始化脚本,如 rc.sysinit进一步指向启动脚本。
- **/etc/rc.d/** 和 **/etc/rc.boot/**: 包含服务启动的脚本,后者在较旧的 Linux 版本中找到。
- **/etc/init.d/**: 在某些 Linux 版本中使用,如 Debian用于存储启动脚本。
- **/etc/init.d/**: 在某些 Linux 版本中(如 Debian用于存储启动脚本。
- 服务也可以通过 **/etc/inetd.conf** 或 **/etc/xinetd/** 激活,具体取决于 Linux 变体。
- **/etc/systemd/system**: 系统和服务管理器脚本的目录。
- **/etc/systemd/system/multi-user.target.wants/**: 包含应在多用户运行级别启动的服务的链接。
- **/usr/local/etc/rc.d/**: 用于自定义或第三方服务。
- **\~/.config/autostart/**: 用户特定的自动启动应用程序,可以是针对用户的恶意软件的隐藏地点。
- **/lib/systemd/system/**: 安装包提供的系统范围默认单元文件。
- **\~/.config/autostart/**: 用户特定的自动启动应用程序,可以成为针对用户的恶意软件的隐藏地点。
- **/lib/systemd/system/**: 安装包提供的系统范围默认单元文件。
### 内核模块
@ -216,13 +242,13 @@ Linux 内核模块,通常被恶意软件作为 rootkit 组件使用,在系
- **/lib/modules/$(uname -r)**: 保存正在运行的内核版本的模块。
- **/etc/modprobe.d**: 包含控制模块加载的配置文件。
- **/etc/modprobe** 和 **/etc/modprobe.conf**: 全局模块设置的文件。
- **/etc/modprobe** 和 **/etc/modprobe.conf**: 用于全局模块设置的文件。
### 其他自动启动位置
Linux 使用各种文件在用户登录时自动执行程序,可能隐藏恶意软件:
- **/etc/profile.d/**\*, **/etc/profile** 和 **/etc/bash.bashrc**: 针对任何用户登录执行。
- **/etc/profile.d/**\*, **/etc/profile** 和 **/etc/bash.bashrc**: 在任何用户登录时执行。
- **\~/.bashrc**, **\~/.bash_profile**, **\~/.profile** 和 **\~/.config/autostart**: 用户特定的文件,在他们登录时运行。
- **/etc/rc.local**: 在所有系统服务启动后运行,标志着过渡到多用户环境的结束。
@ -246,7 +272,7 @@ Linux 系统通过各种日志文件跟踪用户活动和系统事件。这些
- **/var/log/xferlog**: 记录 FTP 文件传输。
- **/var/log/**: 始终检查此处是否有意外日志。
> [!NOTE]
> [!TIP]
> Linux 系统日志和审计子系统可能在入侵或恶意软件事件中被禁用或删除。由于 Linux 系统上的日志通常包含有关恶意活动的一些最有用的信息,入侵者通常会删除它们。因此,在检查可用日志文件时,重要的是查找可能表明删除或篡改的间隙或无序条目。
**Linux 为每个用户维护命令历史**,存储在:
@ -270,11 +296,11 @@ Linux 系统通过各种日志文件跟踪用户活动和系统事件。这些
- **SSH**: 检查 _\~/.ssh/authorized_keys_ 和 _\~/.ssh/known_hosts_ 以查找未经授权的远程连接。
- **Gnome 桌面**: 查看 _\~/.recently-used.xbel_ 以查找通过 Gnome 应用程序最近访问的文件。
- **Firefox/Chrome**: 检查 _\~/.mozilla/firefox__\~/.config/google-chrome_ 中的浏览器历史记录和下载,以查找可疑活动。
- **Firefox/Chrome**: 检查 _\~/.mozilla/firefox__\~/.config/google-chrome_ 中的浏览器历史和下载,以查找可疑活动。
- **VIM**: 检查 _\~/.viminfo_ 以获取使用详情,如访问的文件路径和搜索历史。
- **Open Office**: 检查最近访问的文档,以确定是否有被破坏的文件。
- **FTP/SFTP**: 检查 _\~/.ftp_history_ 或 _\~/.sftp_history_ 中的日志,以查找可能未经授权的文件传输。
- **MySQL**: 检查 _\~/.mysql_history_ 以查找执行的 MySQL 查询,可能揭示未经授权的数据库活动。
- **MySQL**: 检查 _\~/.mysql_history_ 以获取执行的 MySQL 查询,可能揭示未经授权的数据库活动。
- **Less**: 分析 _\~/.lesshst_ 以获取使用历史,包括查看的文件和执行的命令。
- **Git**: 检查 _\~/.gitconfig_ 和项目 _.git/logs_ 以查找对存储库的更改。
@ -282,7 +308,7 @@ Linux 系统通过各种日志文件跟踪用户活动和系统事件。这些
[**usbrip**](https://github.com/snovvcrash/usbrip) 是一个用纯 Python 3 编写的小软件,它解析 Linux 日志文件(`/var/log/syslog*``/var/log/messages*`,具体取决于发行版),以构建 USB 事件历史表。
了解**所有使用过的 USB** 是很有趣的,如果你有一个授权的 USB 列表来查找“违规事件”(使用不在该列表中的 USB将更有用。
了解 **所有使用过的 USB** 是很有趣的,如果你有一个授权的 USB 列表来查找“违规事件”(使用不在该列表中的 USB将更有用。
### 安装
```bash
@ -303,23 +329,23 @@ usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
检查 _**/etc/passwd**_、_**/etc/shadow**_ 和 **安全日志**,寻找不寻常的名称或在已知未授权事件附近创建和使用的账户。同时,检查可能的 sudo 暴力攻击。\
此外,检查像 _**/etc/sudoers**__**/etc/groups**_ 这样的文件,查看是否给予用户意外的权限。\
最后,**没有密码****容易猜测** 的密码的账户。
最后,**没有密码****容易猜测** 的密码的账户。
## 检查文件系统
### 在恶意软件调查中分析文件系统结构
在调查恶意软件事件时,文件系统的结构是一个重要的信息来源,揭示事件的顺序和恶意软件的内容。然而,恶意软件作者正在开发技术来阻碍这种分析,例如修改文件时间戳或避免使用文件系统进行数据存储。
在调查恶意软件事件时,文件系统的结构是重要的信息来源,揭示事件的顺序和恶意软件的内容。然而,恶意软件作者正在开发技术来阻碍这种分析,例如修改文件时间戳或避免使用文件系统进行数据存储。
为了对抗这些反取证方法,必须:
- **进行彻底的时间线分析**,使用像 **Autopsy** 这样的工具可视化事件时间线,或使用 **Sleuth Kit**`mactime` 获取详细的时间线数据。
- **调查系统 $PATH 中的意外脚本**,这些脚本可能包括攻击者使用的 shell 或 PHP 脚本。
- **检查 `/dev` 中的非典型文件**,因为它通常包含特殊文件,但可能包含与恶意软件相关的文件。
- **搜索隐藏的文件或目录**,名称可能像 ".. "(点点空格)或 "..^G"(点点控制-G这些可能隐藏恶意内容。
- **识别 setuid root 文件**,使用命令:`find / -user root -perm -04000 -print` 这将找到具有提升权限的文件,可能被攻击者滥用。
- **检查 `/dev` 中的非典型文件**,因为它通常包含特殊文件,但可能存放与恶意软件相关的文件。
- **搜索隐藏文件或目录**,名称可能为 ".. "(点点空格)或 "..^G"(点点控制-G这些可能隐藏恶意内容。
- **识别 setuid root 文件**,使用命令:`find / -user root -perm -04000 -print`这将找到具有提升权限的文件,可能被攻击者滥用。
- **检查 inode 表中的删除时间戳**,以发现大规模文件删除,可能表明存在 rootkit 或木马。
- **检查连续的 inode**,在识别一个恶意文件后,查看附近的恶意文件,因为它们可能被放在一起。
- **检查连续的 inode**,在识别一个恶意文件后,查看附近的恶意文件,因为它们可能被放在一起。
- **检查常见的二进制目录** (_/bin_、_/sbin_) 中最近修改的文件,因为这些文件可能被恶意软件更改。
````bash
# List recent files in a directory:
@ -328,14 +354,14 @@ ls -laR --sort=time /bin```
# Sort files in a directory by inode:
ls -lai /bin | sort -n```
````
> [!NOTE]
> 注意,**攻击者**可以**修改****时间**以使**文件看起来**是**合法的**,但他**无法**修改**inode**。如果您发现一个**文件**显示它与同一文件夹中其他文件**同时**创建和修改,但**inode****意外地更大**,那么该**文件的时间戳被修改**。
> [!TIP]
> 注意,**攻击者**可以**修改**时间以使**文件看起来**是**合法的**,但他**无法**修改**inode**。如果你发现一个**文件**显示它在与同一文件夹中其他文件**相同的时间**被创建和修改,但**inode**却**意外地更大**,那么该**文件的时间戳被修改**
## 比较不同文件系统版本的文件
### 文件系统版本比较摘要
比较文件系统版本并确定更改,我们使用简化的 `git diff` 命令:
为了比较文件系统版本并确定更改,我们使用简化的 `git diff` 命令:
- **要查找新文件**,比较两个目录:
```bash
@ -357,7 +383,7 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
- `R`: 重命名的文件
- `T`: 类型更改(例如,从文件到符号链接)
- `U`: 未合并的文件
- `X`: 未知文件
- `X`: 未知文件
- `B`: 损坏的文件
## 参考文献
@ -365,6 +391,8 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
- [https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems_Ch3.pdf](https://cdn.ttgtmedia.com/rms/security/Malware%20Forensics%20Field%20Guide%20for%20Linux%20Systems_Ch3.pdf)
- [https://www.plesk.com/blog/featured/linux-logs-explained/](https://www.plesk.com/blog/featured/linux-logs-explained/)
- [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203)
- **书籍Linux系统的恶意软件取证实用指南数字取证实用指南**
- **书籍Linux系统恶意软件取证实用指南数字取证实用指南**
- [Red Canary 持续性补丁DripDropper Linux恶意软件如何在云中移动](https://redcanary.com/blog/threat-intelligence/dripdropper-linux-malware/)
{{#include ../../banners/hacktricks-training.md}}