当前位置: 首页 > news >正文

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

【网络取证篇】取证实战之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,如有侵权,请联系删除。

相关文章:

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

【网络取证篇】取证实战之PHP服务器镜像网站重构及绕密分析 在裸聊敲诈、虚假理财诈骗案件类型中,犯罪分子为了能实现更低成本、更快部署应用的目的,其服务器架构多为常见的初始化网站架构,也称为站库同体服务器!也就是说网站应用…...

[python]使用 Pandas 处理 Excel 数据:分割与展开列操作

在数据处理的过程中,时常需要对 Excel 表格中的数据进行清洗与转换,下面介绍使用 Python 中的 Pandas 库对 Excel 文件中的数据进行操作,具体包括分割列、展开数据、清除空格以及格式转换等操作。 目标: 读取一个没有表头的 Exc…...

单片机的选择因素

在选择单片机型号时,需要根据具体的应用需求来选择合适的单片机。单片机(Microcontroller Unit, MCU)是一种将计算机的主要部分集成在一个芯片上的微型计算机,它通常包括处理器、存储器、输入/输出接口等。随着技术的发展&#xf…...

软件测试兼容性测试丨分布式测试与多设备管理

本文将从分布式测试的概念、重要性以及实施方法入手,紧接着探讨多设备管理的必要性和管理策略,最后分析其对软件测试行业的前景与影响。 分布式测试简介 什么是分布式测试? 分布式测试是指将测试任务分散到不同的计算机或者设备上进行&…...

Linux驱动开发(13):输入子系统–按键输入实验

计算机的输入设备繁多,有按键、鼠标、键盘、触摸屏、游戏手柄等等,Linux内核为了能够将所有的输入设备进行统一的管理, 设计了输入子系统。为上层应用提供了统一的抽象层,各个输入设备的驱动程序只需上报产生的输入事件即可。 下…...

微服务篇-微服务保护:使用 Sentinel 来实现请求限流、线程隔离、服务熔断和 Fallback 备用方案的使用

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 微服务保护 1.1 请求限流方案 1.2 线程隔离方案 1.3 服务熔断方案 2.0 Sentinel 2.1 Sentinel 安装 2.2 微服务整合 3.0 Sentinel-请求限流 4.0 Sentinel-线程隔离…...

vscode 排除文件夹搜索

排除的文件夹 node_modules/,dist/...

设计模式学习之——装饰者模式

装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地向一个现有的对象添加新的行为,同时又不改变其结构。 一、定义与特点 定义:装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者…...

【Vulkan入门】10-CreatePipeline

目录 先叨叨Git信息关键代码TestPipeline::Initialize() 编译运行 先叨叨 到上篇为止已经创建了FrameBuffer和RenderPass。建立Pipeline的先决条件已经具备。本篇就来创建Pipeline。 Git信息 repository: https://gitee.com/J8_series/easy-car-uitag: 10-CreatePipelineurl…...

C++11 (一)

一、 C11的发展历史 C11是C 的第二个主要版本,并且是从 C98 起的最重要更新。 它引入了大量更改,标准化了既有实践,并改进了对C程序员可用的抽象。在它最终由IS0在2011年8月12日采纳前,人们曾使用名称“C0x”,因为它曾…...

系统性能优化

一、概述 性能优化的目标:是提高系统或应用程序的响应时间、吞吐量、cpu、内存、磁盘IO、网络、流量、JVM、Tomcat、DB等方面的性能指标。 性能优化需要有一些技巧:对于整个产品或项目而言,比如可以从前端优化、后端优化、架构优化、高并发…...

IMX6ULL开发板挂载 Ubuntu 的 NFS 目录,并以交叉编译得到的hello程序进行测试

首先参考博文 https://blog.csdn.net/wenhao_ir/article/details/144404637 使得IMX6ULL开发板、PC机上的USB网卡、VMware中的Ubuntu能互相Ping 通 然后开始将Ubuntu 的 NFS 目录挂载到Ubuntu中。 为什么挂载? 答:其实是把 Ubuntu中的某个目录通过NFS网…...

Xcode模拟器运行报错:The request was denied by service delegate

Xcode模拟器运行报错:The request was denied by service delegate 造成的原因: (1)新的苹果M系列芯片的Mac电脑 (2)此电脑首次安装启动Xcode的应用程序 (3)此电脑未安装Rosetta 2 解决方法: …...

ubuntu18.04配置实时内核

ubuntu系统:18.04 当前内核:5.4.0-84-generic 待安装实时内核: 5.6.19-rt11 1、查看当前版本 uname -r 2、下载内核与补丁 一种方式从官网自己下载 官方内核下载地址官方补丁下载地址阿里镜像内核下载地址(速度快&#xff0…...

Unity中Mesh重叠顶点合并参考及其应用

在Unity中,如果将一个模型文件(比如从max里面导出一个fbx文件)导入到编辑器中之后,Unity会把所有在原来在面列表中公用的顶点复制一份,保证每个三角形使用的顶点都是单独的,不与其它三角形共用顶点&#xf…...

倚光科技助力自由曲面设计与加工

近年来,自由曲面因其在光学、汽车、航空航天等领域的广泛应用,受到设计师和工程师的高度关注。自由曲面作为一种具有更高自由度的非球面透镜,能够在光学系统中实现更加精确的光线控制,优化像差校正,并且在满足功能需求…...

PWM调节DCDC参数计算原理

1、动态电压频率调整DVFS SOC芯片的核电压、GPU电压、NPU电压、GPU电压等,都会根据性能和实际应用场景来进行电压和频率的调整。 即动态电压频率调整DVFS(Dynamic Voltage and Frequency scaling),优化性能和功耗。 比如某SOC在…...

[Pro Git#3] 远程仓库 | ssh key | .gitignore配置

目录 1. 分布式版本控制系统的概念 2. 实际使用中的“中央服务器” 3. 远程仓库的理解 4. 新建远程仓库 5. 克隆远程仓库 6. 设置SSH Key 实验 一、多用户协作与公钥管理 二、克隆后的本地与远程分支对应 三、向远程仓库推送 四、拉取远程仓库更新 五、配置Git忽略…...

Freertos任务切换

一、操作系统进行任务切换的时机: 采用信号量实现任务的互斥: 二、FreeRTOS 任务切换场合 PendSV 中断的时候提到了上下文(任务)切换被触发的场合: ● 可以执行一个系统调用 ● 系统滴答定时器(SysTick)中断。 1、执行系统调用 执行系统…...

go开发中interface和方法接收器的使用

Go 语言中的接口和方法接收器学习 Go 中的 interface 就像是一个神奇的魔法杖,能让你轻松地将不同的类型拉到同一个阵营里。与其他语言的接口不同,Go 的接口无需显式声明“我实现了你”,只要你满足了接口规定的方法,Go 就会自动认…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

让AI看见世界:MCP协议与服务器的工作原理

让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

HashMap中的put方法执行流程(流程图)

1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...

LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》

这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...