hacktricks/generic-methodologies-and-resources/basic-forensic-methodology/malware-analysis.md
2024-04-06 18:13:07 +00:00

7.4 KiB
Raw Blame History

恶意软件分析

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

支持HackTricks的其他方式

取证备忘单

https://www.jaiminton.com/cheatsheet/DFIR/#

在线服务

离线防病毒和检测工具

Yara

安装

sudo apt-get install -y yara

准备规则

使用此脚本从 github 下载并合并所有 yara 恶意软件规则:https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9
创建 rules 目录并执行该脚本。这将创建一个名为 malware_rules.yar 的文件,其中包含所有恶意软件的 yara 规则。

wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py

扫描

yara -w malware_rules.yar image  #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder

YaraGen: 检查恶意软件并创建规则

您可以使用工具 YaraGen 从二进制文件生成 yara 规则。查看这些教程:Part 1, Part 2, Part 3

python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m  ../../mals/

ClamAV

安装

sudo apt-get install -y clamav

扫描

sudo freshclam      #Update rules
clamscan filepath   #Scan 1 file
clamscan folderpath #Scan the whole folder

Capa

Capa检测可执行文件中的潜在恶意功能PE、ELF、.NET。因此它会发现诸如Att&ck战术或可疑功能例如

  • 检查OutputDebugString错误
  • 作为服务运行
  • 创建进程

获取它在Github存储库中。

IOCs

IOC表示威胁指标。IOC是一组用于识别一些潜在不受欢迎的软件或已确认恶意软件的条件。蓝队使用这种定义来在其系统网络搜索此类恶意文件
共享这些定义非常有用因为当在计算机中识别恶意软件并为该恶意软件创建IOC时其他蓝队可以使用它更快地识别恶意软件。

创建或修改IOC的工具是IOC Editor
您可以使用诸如Redline之类的工具在设备中搜索定义的IOC

Loki

Loki是一个用于简单威胁指标的扫描器。
检测基于四种检测方法:

1. File Name IOC
Regex match on full file path/name

2. Yara Rule Check
Yara signature matches on file data and process memory

3. Hash Check
Compares known malicious hashes (MD5, SHA1, SHA256) with scanned files

4. C2 Back Connect Check
Compares process connection endpoints with C2 IOCs (new since version v.10)

Linux 恶意软件检测

Linux 恶意软件检测 (LMD) 是一个针对 Linux 的恶意软件扫描器,采用 GNU GPLv2 许可发布,旨在解决共享托管环境中面临的威胁。它利用来自网络边缘入侵检测系统的威胁数据,提取正在攻击中使用的恶意软件,并生成用于检测的签名。此外,威胁数据还来自用户提交的数据,使用 LMD 结账功能以及恶意软件社区资源。

rkhunter

类似 rkhunter 这样的工具可用于检查文件系统中可能存在的 rootkits 和恶意软件。

sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]

FLOSS

FLOSS 是一个工具,将尝试使用不同的技术在可执行文件中查找混淆的字符串。

PEpper

PEpper 检查可执行文件中的一些基本内容二进制数据、熵、URL 和 IP、一些 yara 规则)。

PEstudio

PEstudio 是一个工具,可以获取 Windows 可执行文件的信息,如导入、导出、头部,还会检查病毒总数并查找潜在的 Att&ck 技术。

Detect It Easy(DiE)

DiE 是一个工具,用于检测文件是否加密,并查找打包程序。

NeoPI

NeoPI 是一个使用各种统计方法来检测文本/脚本文件中混淆和加密内容的 Python 脚本。NeoPI 的预期目的是帮助检测隐藏的 Web shell 代码。

php-malware-finder

PHP-malware-finder 尽最大努力检测混淆/可疑代码以及使用 PHP 函数的文件,这些函数通常在恶意软件/webshell 中使用。

Apple 二进制签名

在检查一些恶意软件样本时,您应始终检查二进制文件的签名,因为签署它的开发人员可能已与恶意软件相关联。

#Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"

#Check if the apps contents have been modified
codesign --verify --verbose /Applications/Safari.app

#Check if the signature is valid
spctl --assess --verbose /Applications/Safari.app

检测技术

文件堆叠

如果你知道某个包含web服务器文件的文件夹是在某个日期上次更新的。检查所有web服务器文件的创建和修改日期,如果有任何可疑日期,则检查该文件。

基线

如果文件夹中的文件不应该被修改,你可以计算文件夹中原始文件哈希值,并将其与当前文件进行比较。任何被修改的内容都会引起怀疑

统计分析

当信息保存在日志中时,你可以检查统计数据比如每个web服务器文件被访问的次数因为web shell可能是其中之一