【网络取证篇】取证实战之PHP服务器镜像网站重构及绕密分析

news2024/12/20 3:17:03

【网络取证篇】取证实战之PHP服务器镜像网站重构及绕密分析

在裸聊敲诈、虚假理财诈骗案件类型中,犯罪分子为了能实现更低成本、更快部署应用的目的,其服务器架构多为常见的初始化网站架构,也称为站库同体服务器!也就是说网站应用程序,数据库及用户账号信息、交易记录,文件(如相关的Apk、视频图片)等资源都部署在同一台服务器中,因此,我们在现场勘验或者获取调证后的涉案网站和数据库都同一个服务器镜像内。

在取证分析时我们通常对服务器镜像进行仿真后,查看历史命令等启动相应服务,进入宝塔面板或修改本地hosts文件等实现网站还原,使用改密或者修改后台登录逻辑等进入后台,用Navical或PHPMyadmin等登录涉案数据库查看相关数据。

然而由于各个案件情况不一致,嫌疑人对网站修改配置各式各样、web中间件或数据库环境受到损坏、一些调证回来的镜像文件本地仿真环境限制等因素导致网站还原失败,从而迟滞了我们案件的进程。

本文通过对某虚假理财类案的调证服务器镜像进行仿真,初始网站还原失败,通过一步步的查找分析配置环境,最后成功重构PHP网站—【凌风、蘇小沐】

1、进入宝塔面板

宝塔面板6.0之后,命令bt集成了很多我们需要的命令,方便我们对宝塔面板相关信息进行修改。

宝塔面板命令行序号注释
1重启面板服务
2停止面板服务
3启动面板服务
4重载面板服务
5修改面板密码
6修改面板用户名
7强制修改MySQL密码
8改面板端口
9清除面板缓存
10清除登录限制
11取消入口限制
12取消域名绑定限制
13取消IP访问限制
14查看面板默认信息
15清理系统垃圾
16修复面板(检查错误并更新面板文件到最新版)
17设置日志切割是否压缩
18设置是否自动备份面板
22显示面板错误日志
23关闭BasicAuth认证
24关闭谷歌认证
25设置是否保存文件历史副本

此次涉案服务器中宝塔面板版本低于6.0。输入bt命令后并没有显示相关宝塔的信息。
在这里插入图片描述

我们使用老版本宝塔面板登录命令:bt default 得到进入宝塔面板的网址、用户名和初始密码,验证后发现密码错误。
在这里插入图片描述

2、使用修改面板密码命令修改密码

使用修改面板密码命令修改密码,例如:改成123456 : cd /www/server/panel && python tools.py panel 123456 ,成功登录宝塔面板。

(一)找回网站源码

1、查找网站源码默认存储位置

登录宝塔面板后,我们发现为空,而且宝塔面板操作日志中仅仅有一条清空日志,回收站中也没有源码。
在这里插入图片描述
在这里插入图片描述

2、查找宝塔的主数据库配置信息

【宝塔的主数据库路径:/www/server/panel/data/default.db】

宝塔的主数据库,网站信息面板配置什么的都在这里面,随即查看下宝塔面板路径:/www/server/panel/data/default.db中的数据库文件,使用navicat打开发现宝塔面板操作日志,发现有将源码压缩并转移到backup文件夹下的操作记录日志。
在这里插入图片描述

然后查找backup路径,在此果然发现了网站源码备份,遂将其还原至默认路径下。

(二)还原网站前台

在启动中间件和MySQL数据库后网站依旧进不去,报错提示无法连接到 MySQL 数据库。

由于前面有更改过许多默认路径及配置,这里猜测比较可能的原因是网站数据库配置文件未配置好。在启动中间件和MySQL数据库后网站依旧进不去,报错提示无法连接到 MySQL 数据库。

由于前面有更改过许多默认路径及配置,这里猜测比较可能的原因是网站数据库配置文件未配置好。

在这里插入图片描述

1、定位网站数据库配置文件

在网站源码中发现PHP读取配置文件为:db_settings.PHP。
在这里插入图片描述

当然,这里也可以用一种通用的方法快速定位网站数据库配置文件,因为网站数据库中不可避免的会存储数据库的数据库名、用户名、密码等,将网站源码下载到电脑本地后,可以使用FileLocatorPro等文本内容搜索工具搜索包含数据库名"database"或用户名"user"、密码"password"等关键词快速定位到网站数据库配置文件。
在这里插入图片描述

2、配置IP

在宝塔面板中修改数据库密码为123456,根据宝塔面板中的数据库名、用户名、密码等配置网站数据库配置文件,保证两者相同。修改网站数据库配置文件中host改为仿真起来ifconfig得到的IP。
在这里插入图片描述
在这里插入图片描述

这时网站数据库配置文件已经配好了,但是登录网站依旧报错。
在这里插入图片描述

3、修改访问权限

剩下的就是访问权限的问题了,在宝塔面板中发现数据库权限为"指定IP"访问,尝试将数据库权限升级为所有人均能访问。
在这里插入图片描述

再次登录网站,成功显示登陆页面,还原涉案网站前台。

在这里插入图片描述

(三)获取前端管理员账户

1、数据库检索

此时,继续查找有用信息,在数据库中搜索发现用户列表里有管理员信息,猜测其前台登录不仅仅有受害人,也可能有前端管理员权限用户信息。
在这里插入图片描述

在网站源码中发现PHP不仅读取配置文件db_settings.PHP。还读取了functions.inc.PHP、main.inc.PHP两个文件。
在这里插入图片描述

2、修改登录代码逻辑

遍历之后发现functions.inc.PHP为控制前台用户登录的文件,其中发现登录网站的密码加密盐值不是固定的!!!
在这里插入图片描述

【盐值规律:盐值是从0123456789abcdef中随机抽取10个!!!所以我们不能通过随机注册用户后生成的密码密文来替换我们想要登录的某用户!!!】

【破解方法:虽然盐值随机,但是我们可以通过修改代码逻辑进入其它用户,将选中的==(等于)改为!=(不等于),就可以用随便非正确的密码登录任意用户账号!!!】

【破解方法:虽然盐值随机,但是我们可以通过修改代码逻辑进入其它用户,将选中的==(等于)改为!=(不等于),就可以用随便非正确的密码登录任意用户账号!!!】

【破解方法:虽然盐值随机,但是我们可以通过修改代码逻辑进入其它用户,将选中的==(等于)改为!=(不等于),就可以用随便非正确的密码登录任意用户账号!!!】
在这里插入图片描述
修改后,使用前端管理员用户名登录显示如下。
在这里插入图片描述

3、登入后台管理员界面

在/www/wwwlogs/路径下找到网站登录日志,找到后台登录网址。
在这里插入图片描述

在数据库中找到后台登录账号和密码密文。
在这里插入图片描述

此密码密文为32位,推测是MD5加密,在线解密得明文密码。
在这里插入图片描述

随即用管理员账号成功登陆后台。

在这里插入图片描述

(四) 【后台绕密拓展思考】

如果密码不是MD5加密,或者说MD5解密不出来,我们也可以修改源码逻辑进入,首先用虚假的账号和密码登录后台,查看报错内容。
在这里插入图片描述

然后在宝塔面板中网站源码页面点击文件查找,输入报错内容,点击包含子目录,点击查找,就能查找出包含此报错内容的文件。
在这里插入图片描述

随后点击编辑,进入编辑文档界面。

在这里插入图片描述

将选中的!(不等于)改成(等于),后台任意密码即可登录。

(五)【本案启示】

一是熟悉工具各种参数配置文件信息等。比如宝塔面板,我们通常用命令bt就能查看修改宝塔相关信息,但殊不知在宝塔6.0以下版本并没有集成到bt中,需要用复杂的命令行进行解析。

二是在网站源码丢失时,可以通过宝塔面板日志或在服务器中敲击"history"命令查看输入过的历史命令,来了解嫌疑人历史相关操作,从而有可能找回源码。

三是网站前台也有可能会有部分特权用户,也就是前端管理员用户,进入其管理页面后可以获取相关权限,了解更多信息。其管理的小队成员列表更能帮助我们迅速理清人物架构。

四是网站后台的寻找和破密、绕密,方式多种多样,有些时候网站的密码加密盐值不是固定的,密码随机生成,并不能用普通的替换绕密,等等。

以上这些只是个人的一些粗浅看法,在网络高速发展的今天,我们并不能期望对手比我们弱,比我们什么都不懂,这是不现实的!我更期望的是大家积极探讨,集思广益,了解更多的知识,融会贯通,来更好的应用到相关案件服务中。

总结

书写片面,纯粹做个记录,有错漏之处欢迎指正。

公众号回复关键词【网络取证】自动获取资源合集。公众号已接入AI取证小助手,可在公众号内发送问题自动获取简易解答。

【声明:欢迎转发收藏,个人创作不易,喜欢记得点点赞!!!转载引用请注明出处,著作所有权归 [蘇小沐] 所有】

【注:共享资源收集于官网或互联网公开材料,仅供学习研究,如有侵权请联系删除,谢谢!】

记录

开始编辑:2024年 11月 28日‍

最后编辑:2024年 11月 30日

END往期精彩回顾

Image

▲ 【网络取证篇】宝塔面板server和panel的目录功能说明

[Image
▲ 【镜像仿真篇】WindowsServer服务器镜像仿真

](https://mp.weixin.qq.com/s?__biz=MzI2MTUwNjI4Mw==&mid=2247486098&idx=1&sn=34c4f8668ef0a5a5ad2fb72e648bca2b&scene=21#wechat_redirect)

关注我,了解更多取证知识,别忘了点赞+在看哦!!!

本文转自 https://mp.weixin.qq.com/s/uVcd5tV3Yt-nasX7qn5cOQ,如有侵权,请联系删除。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2262476.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构进阶】AVL树深度剖析 + 实现(附源码)

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:数据结构 目录 前言 一、AVL树的概念 二、AVL树底层解析及实现 1. 节点的定义 2. 接口声明 3. AVL树的插入 3.1 更新平衡因子 3.2 旋转(重点…

java_断点调试(debug)

按照如下配置好后,即可点击“F7”,进入相应的方法,查看源码 package com.hspedu.debug_;//debug对象创建的过程,加深对调试的理解 public class Debug01 {public static void main(String[] args) {//创建对象的流程//(1&#xff…

YOLOv11融合[CVPR2024]Starnet中的star block特征提取模块

YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《Rewrite the Stars》 一、 模块介绍 论文链接:https://arxiv.org/abs/2403.19967 代码链接:https://github.com/ma-xu/Rewri…

【kubernetes】k8s集群的简述与搭建

简述 Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序 关键特性 自动化部署和回滚:Kubernetes 可以自动化地部署和回滚应用程序,确保应用程序始终处于预期的状态。服务发现…

SpringBoot+vue实现WebSocket通信

WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务器主动向客户端推送数据。 WebSocket的主要特点: 全双工通信:客户端和服务器之间的数据可以同时双向传输低延迟&…

【BUG】记一次context canceled的报错

文章目录 案例分析gorm源码解读gin context 生命周期context什么时候cancel的什么时候context会被动cancel掉呢? 野生协程如何处理 案例分析 报错信息 {"L":"ERROR","T":"2024-12-17T11:11:33.0050800","file"…

H5 中 van-popup 的使用以及题目的切换

H5 中 van-popup 的使用以及题目的切换 在移动端开发中,弹窗组件是一个常见的需求。vant 是一个轻量、可靠的移动端 Vue 组件库,其中的 van-popup 组件可以方便地实现弹窗效果。本文将介绍如何使用 van-popup 实现题目详情的弹窗展示,并实现…

【第一节】Git的简介和安装

目录 一、git的介绍 二、git 的安装 2.1 Linux 平台安装 2.2 源码安装 2.3 Windows 平台安装 2.4 Mac 平台安装 2.5 Git 配置 2.5.1 配置文件 2.5.2 用户信息配置 2.5.3 文本编辑器配置 2.5.4 差异分析工具配置 2.5.5 查看配置信息 一、git的介绍 Git 是一种开源的…

奇怪的知识又增加了,ESP32下的Lisp编程:ULisp--Lisp for microcontrollers

ESP32下有MicroPython,那么我就在想,有Lisp语言支持吗?答案是果然有!有ULisp,专门为MCU设计的Lisp! 网址:uLisp - Lisp for microcontrollers 介绍:用于微控制器的 Lisp 适用于 Ar…

决策树的生成与剪枝

决策树的生成与剪枝 决策树的生成生成决策树的过程决策树的生成算法 决策树的剪枝决策树的损失函数决策树的剪枝算法 代码 决策树的生成 生成决策树的过程 为了方便分析描述,我们对上节课中的训练样本进行编号,每个样本加一个ID值,如图所示…

51c嵌入式~单片机~合集2

我自己的原文哦~ https://blog.51cto.com/whaosoft/12362395 一、不同的电平信号的MCU怎么通信? 下面这个“电平转换”电路,理解后令人心情愉快。电路设计其实也可以很有趣。 先说一说这个电路的用途:当两个MCU在不同的工作电压下工作&a…

Kerberos实验

kdc:192.168.72.163 客户端(机器账户win10):192.168.72.159 用户:administrator 抓包:开机登录win10,使用administrator域用户凭据登录。 生成 Kerberos 解密文件 抓取 krbtgt 用户和 win1…

AI一键分析小红书对标账号‼️

宝子们,AI小助手近期发现了一款宝藏AI工具,拥有对标账号AI分析功能,只需10秒就能全面掌握对标账号的运营情况,并且可以根据分析结果提供创作方向和灵感,轻松助力1:1复刻起号! 功能亮点: &…

大腾智能CAD:国产云原生三维设计新选择

在快速发展的工业设计领域,CAD软件已成为不可或缺的核心工具。它通过强大的建模、分析、优化等功能,不仅显著提升了设计效率与精度,还促进了设计思维的创新与拓展,为产品从概念构想到实体制造的全过程提供了强有力的技术支持。然而…

VMware虚拟机 Ubuntu没有共享文件夹的问题

在虚拟机的Ubuntu系统中,共享文件目录存放在 mnt/hgfs 下面,但是我安装完系统并添加共享文件后发现,在mnt下连/hgfs目录都没有。 注意:使用共享文件目录需要已安装VMtools工具。 添加共享文件目录 一:在超级用户下 可…

OpenGL ES 01 渲染一个四边形

项目架构 着色器封装 vertex #version 300 es // 接收顶点数据 layout (location 0) in vec3 aPos; // 位置变量的属性位置值为0 layout (location 1) in vec4 aColors; // 位置变量的属性位置值为1 out vec4 vertexColor; // 为片段着色器指定一个颜色输出void main() {gl…

leetcode二叉搜索树部分笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 二叉搜索树 1. 二叉搜索树的最小绝对差2. 二叉搜索树中第 K 小的元素3. 验证二叉搜索树 1. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root ,返回 树中…

推送本地仓库到远程git仓库

目录 推送本地仓库到远程git仓库1.1修改本地仓库用户名1.2 push 命令1.3远程分支查看 推送本地仓库到远程git仓库 删除之前的仓库中的所有内容,从新建库,同时创建一个 A.txt 文件 清空原有的远程仓库内容,重新创建一个新的仓库,…

暂停一下,给Next.js项目配置一下ESLint(Next+tailwind项目)

前提 之前开自己的GitHub项目,想着不是团队项目,偷懒没有配置eslint,后面发现还是不行。eslint的存在可以帮助我们规范代码格式,同时 ctrl s保存立即调整代码格式是真的很爽。 除此之外,团队使用eslint也是好处颇多…