hacktricks/forensics/basic-forensic-methodology/malware-analysis.md

8.6 KiB
Raw Blame History

恶意软件分析

从零开始学习AWS黑客技术成为 htARTE (HackTricks 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规则。查看这些教程第1部分第2部分第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 后,其他蓝队可以使用它来更快地识别恶意软件。

创建或修改 IOCs 的工具是 IOC 编辑器
您可以使用 Redline 等工具在设备中搜索定义的 IOCs

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 Malware Detect

Linux Malware Detect (LMD) 是一款在 GNU GPLv2 许可下发布的 Linux 恶意软件扫描器,专为共享托管环境中面临的威胁而设计。它使用来自网络边缘入侵检测系统的威胁数据来提取正在攻击中积极使用的恶意软件,并生成用于检测的签名。此外,威胁数据还来自用户通过 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可执行文件的信息如导入、导出、头文件同时也会检查病毒总数并找到潜在的攻击技术。

Detect It Easy(DiE)

DiE 是一个工具,用于检测文件是否被加密,同时也能找到打包器

NeoPI

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

php-malware-finder

PHP-malware-finder 尽其所能检测混淆/可疑代码,以及使用PHP函数的文件,这些函数经常在恶意软件/webshells中使用。

Apple Binary Signatures

在检查某些恶意软件样本时,你应该始终检查二进制文件的签名,因为签名它的开发者可能已经与恶意软件有关。

#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

检测技术

文件堆叠

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

基线

如果文件夹的文件不应该被修改,您可以计算文件夹原始文件哈希值并将它们与当前文件进行比较。任何被修改的都将是可疑的

统计分析

当信息被保存在日志中时,您可以检查统计数据,比如每个文件被访问的次数,因为网页外壳可能是其中之一

从零开始学习AWS黑客攻击直到成为专家通过 htARTE (HackTricks AWS 红队专家)

其他支持HackTricks的方式