# 恶意软件分析
{% hint style="success" %}
学习并练习 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
学习并练习 GCP 黑客技术:[**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
支持 HackTricks
* 检查[**订阅计划**](https://github.com/sponsors/carlospolop)!
* **加入** 💬 [**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 来分享黑客技巧。
{% endhint %}
## 取证备忘单
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
## 在线服务
* [VirusTotal](https://www.virustotal.com/gui/home/upload)
* [HybridAnalysis](https://www.hybrid-analysis.com)
* [Koodous](https://koodous.com)
* [Intezer](https://analyze.intezer.com)
* [Any.Run](https://any.run/)
## 离线防病毒和检测工具
### Yara
#### 安装
```bash
sudo apt-get install -y yara
```
#### 准备规则
使用此脚本从 github 下载并合并所有 yara 恶意软件规则: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\
创建名为 _**rules**_ 的目录并执行该脚本。这将创建一个名为 _**malware\_rules.yar**_ 的文件,其中包含所有恶意软件的 yara 规则。
```bash
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
```
#### 扫描
```bash
yara -w malware_rules.yar image #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder
```
#### YaraGen: 检查恶意软件并创建规则
您可以使用工具 [**YaraGen**](https://github.com/Neo23x0/yarGen) 从二进制文件生成 yara 规则。查看这些教程:[**Part 1**](https://www.nextron-systems.com/2015/02/16/write-simple-sound-yara-rules/), [**Part 2**](https://www.nextron-systems.com/2015/10/17/how-to-write-simple-but-sound-yara-rules-part-2/), [**Part 3**](https://www.nextron-systems.com/2016/04/15/how-to-write-simple-but-sound-yara-rules-part-3/)
```bash
python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m ../../mals/
```
### ClamAV
#### 安装
```
sudo apt-get install -y clamav
```
#### 扫描
```bash
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
clamscan folderpath #Scan the whole folder
```
### [Capa](https://github.com/mandiant/capa)
**Capa**检测可执行文件中的潜在恶意**功能**:PE、ELF、.NET。因此,它将查找诸如Att\&ck战术或可疑功能,例如:
- 检查OutputDebugString错误
- 作为服务运行
- 创建进程
获取它在[**Github存储库**](https://github.com/mandiant/capa)中。
### IOCs
IOC表示威胁指标。IOC是一组**用于识别**一些潜在不受欢迎的软件或已确认**恶意软件**的条件。蓝队使用这种定义来在其**系统**和**网络**中**搜索此类恶意文件**。\
共享这些定义非常有用,因为当在计算机中识别出恶意软件并为该恶意软件创建了一个IOC时,其他蓝队可以使用它更快地识别出恶意软件。
创建或修改IOCs的工具是[**IOC Editor**](https://www.fireeye.com/services/freeware/ioc-editor.html)**。**\
您可以使用诸如[**Redline**](https://www.fireeye.com/services/freeware/redline.html)之类的工具在设备中**搜索定义的IOCs**。
### Loki
[**Loki**](https://github.com/Neo23x0/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)**](https://www.rfxn.com/projects/linux-malware-detect/) 是一个针对 Linux 的恶意软件扫描器,采用 GNU GPLv2 许可发布,旨在解决共享托管环境中面临的威胁。它利用来自网络边缘入侵检测系统的威胁数据,提取正在攻击中使用的恶意软件并生成用于检测的签名。此外,威胁数据还来自用户提交的具有 LMD 结帐功能和恶意软件社区资源。
### rkhunter
类似 [**rkhunter**](http://rkhunter.sourceforge.net) 这样的工具可用于检查文件系统中可能存在的 **rootkits** 和恶意软件。
```bash
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
```
### FLOSS
[**FLOSS**](https://github.com/mandiant/flare-floss) 是一个工具,将尝试使用不同的技术来查找可执行文件中的混淆字符串。
### PEpper
[PEpper](https://github.com/Th3Hurrican3/PEpper) 检查可执行文件中的一些基本内容(二进制数据、熵、URL 和 IP、一些 yara 规则)。
### PEstudio
[PEstudio](https://www.winitor.com/download) 是一个工具,允许获取 Windows 可执行文件的信息,如导入、导出、头部,还会检查病毒总数并找到潜在的 Att\&ck 技术。
### Detect It Easy(DiE)
[**DiE**](https://github.com/horsicq/Detect-It-Easy/) 是一个工具,用于检测文件是否**加密**,还可以找到**打包程序**。
### NeoPI
[**NeoPI**](https://github.com/CiscoCXSecurity/NeoPI) 是一个使用各种**统计方法**来检测文本/脚本文件中的**混淆**和**加密**内容的 Python 脚本。NeoPI 的预期目的是帮助**检测隐藏的 Web shell 代码**。
### **php-malware-finder**
[**PHP-malware-finder**](https://github.com/nbs-system/php-malware-finder) 尽最大努力检测**混淆**/**可疑代码**以及使用**经常用于** **恶意软件**/**Web shell** 的 **PHP** 函数的文件。
### Apple 二进制签名
在检查一些**恶意软件样本**时,您应始终检查二进制文件的签名,因为签名的**开发人员**可能已与**恶意软件**有关。
```bash
#Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
#Check if the app’s 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可能是其中之一**。