技术无好坏,反而是人心。只做学习使用,无不良引导

简介

​ 服务器的重构在取证中非常重要,网站的重构可以给我们提供更多可视化的信息。

题目文件链接

  • 网站重构练习1:试题特殊,需要联系我
  • 网站重构练习2:试题特殊,需要联系我

网站重构练习1

进行仿真

​ 打开仿真软件进行镜像的仿真,linux的登录账号和密码会是root和123456

image-20230426105355810

image-20230426105731821

虚拟机网卡配置

​ 尝试使用xshell连接,但发现不行,所以我们尝试使用ping命令,发现ping不通,所以我们查阅资料,发现需要将网卡配置成和NAT模式下的虚拟机网卡的ip

1.尝试连接

image-20230426111403136

image-20230426111438658

2.查看虚拟机网卡信息

点击编辑里的虚拟机网络编辑器

image-20230426111738442

查看网卡VMnet8的ip

image-20230426111914933

3.修改镜像的网卡配置文件

​ 输入以下命令,修改网卡的配置信息

1
vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改之前

image-20230426125904430

修改之后

image-20230426130429383

接着输入命令

1
service network restart

image-20230426130558275

查看ip

1
ifconfig

image-20230426130709479

4.使用xshell进行连接

image-20230426130821638

成功连接

image-20230426130853465

image-20230426130927163

网站重构

发现使用宝塔的命令,输入宝塔命令,用以启动宝塔面板

1
bt 14

image-20230426131230214

使用链接访问宝塔面板,并使用账号和密码登录,但是失败

image-20230426131659959

在xshell输入以下命令,进行密码修改

1
cd /www/server/panel && btpython tools.py panel testpasswd s8nbhvgh

image-20230426131846022

testpasswd就是修改后的密码,当然你可以设置为其他的。

成功登录宝塔面板

image-20230426131958028

查看网站域名信息

image-20230426132123547

找到这个网站的文件中的config.php文件进行相关信息的修改

image-20230426141331824

进行访问域名,但是被定位到互联网上的一个网站,不是我们要重构的网站

image-20230426132504519

因为我们没有将域名指向我们本地,所以访问的是互联网上的资源,我们在本地的hosts文件里进行以下配置

image-20230426132710381

再次进行访问(划重点:这时要把你电脑的代理关掉,不然还是会指向互联网的资源,我也不知道为啥)

image-20230426133927304

发现mysql服务没有启动,使用xshell把mysql的docker进行启动,输入以下命令,查看mysql 的docker信息

1
docker ps -a

image-20230426134307286

接着输入以下命令启动mysql服务

1
docker start mysql5.6

image-20230426134454728

进入网站

最后让我们再次访问这个域名吧,我第一次重构的时候以为是浏览器的原因,使用谷歌清除了cookie也进不去,这一次我进去,不知道为啥?

谷歌浏览器:

image-20230426135744718

火狐浏览器

image-20230426135009093

brave浏览器:

image-20230426135815928

总结

  1. 网站配置文件的修改
  2. 将域名指向本地hosts
  3. 重启mysql的docker
  4. 在最后访问域名时候记得清楚浏览器的cookie啥的,这一点也很关键
  5. 最重要的一步:别使用代理

网站重构练习2

进入仿真

​ 打开仿真软件进行镜像的仿真,linux的登录账号和密码会是root和123456

image-20230429003304329

虚拟机网卡配置

1.查看虚拟机网卡信息

点击编辑里的虚拟机网络编辑器

image-20230429003637436

查看网卡VMnet8的ip(我是为了省事,直接把网卡改为和镜像的一样的了,这样后面可以直接进phpadmin里面看数据库

image-20230429003659276

2.修改镜像的网卡配置文件

​ 输入以下命令,修改网卡的配置信息

1
vi /etc/sysconfig/network-scripts/ifcfg-ens33

修改之前

image-20230429004011787

修改之后

image-20230429004140133

接着输入命令

1
service network restart

image-20230429004237812

查看ip

1
ifconfig

image-20230429004333919

3.使用xshell进行连接

image-20230429004420072

成功连接

image-20230429004438840

网站重构

宝塔面板相关设置

发现使用宝塔的命令,进行宝塔的相关配置

首先重启宝塔面板的服务,不然连接不上宝塔面板

1
bt 1

image-20230429004754505

接着使用命令修改宝塔面板的密码,之前的密码出错了,需要修改

1
bt 5

image-20230429005002750

使用命令,进入宝塔面板

1
bt 14

image-20230429005308977

进入面板

image-20230429005441372

image-20230429005504934

网站相关配置修改

1.查看网站相关域名

image-20230429005634680

2.将域名指向本地,在本地的hosts文件里进行以下相关配置

image-20230429005852022

mysql、nginx、防火墙相关配置

mysql相关配置

尝试使用phpadmin连接数据库,发现连接不上

image-20230429010831831

image-20230429010855164

查看历史命令是因为mysql的服务被操作过,要重启服务

image-20230429011001760

执行以下命令

1
2
systemctl restart mysql
systemctl restart mysqld

在宝塔面板发现数据库的账号为root密码为15dbefa4aae110a5

image-20230429011641695

尝试连接mysql

1
mysql -u root -p

image-20230429011740570

nginx相关配置

查看历史命令发现关闭了nginx的服务

执行下面的命令重启nginx服务

1
systemctl restart nginx

image-20230429012912083

使用命令查看nginx的状态

1
sudo systemctl status nginx

image-20230429121940647

防火墙相关配置

查看历史命令发现对防火墙服务进行以下操作。

image-20230429100753420

让我们看看ai怎么说

image-20230429100713775

使用以下命令查看当前防火墙的状态,发现为active状态

1
systemctl status firewalld

image-20230429122309841

接着我们执行下面的命令,将防火墙关闭

1
systemctl stop firewalld

image-20230429101035320

再次执行systemctl status firewalld查看状态,发现状态为inactive

image-20230429122444336

进入网站

后台登录地址

在网站的日志文件里,发现后台登录url

image-20230429083824173

image-20230429084508308

登录

使用http://www.honglian7001.com/admin进行访问,需要找到账号和密码

image-20230429084753417

网站源码获取

找到下面路径进行压缩

image-20230429090844594

将压缩包,下载到本地

image-20230429091010797

寻找登录密码

​ 我们想到数据库中有管理员admin的账号密码,但是这个密码是进行了md5加密的(这个是这个试题中的一个题目中知道,这里不在详述),接着我们是使用VScode进行搜索md5,查询管理员后台登录密码的加密方式,发现进行了3次的md5加密,还进行了加盐加密。

image-20230429091238834

尝试在数据库中寻找账号和密码,使用navicat进行远程连接,用以查看数据库的内容,进行以下设置

image-20230429085231549

image-20230429085438008

找到app_admin表中,发现加密后的密码,这个很难进行解密

image-20230429085647959

方法一:在网站源码里搜索数据库中的密码的md5值

在数据库中发现管理员账号admin对应的密码的md5值为

1
2d17c53d0d682bbb7eac2e76828a4d79

在源码检索这个值

image-20230429095312004

上图在06.log这个日志文件里可知密码被修改为了ABC123456日志文件厉害啊

尝试登录,发现成功登录,成功进入后台

image-20230429095541271

image-20230429095615675

方法二:使用自己设置密码的加密结果替换数据库中的md5值

加密算法

1
2
3
4
function password($password, $password_code='lshi4AsSUrUOwWV')
{
return md5(md5($password) . md5($password_code));
}

改写为php代码,计算我们自己设置的密码的md5值(别问我为什么会php,用的ai生成的,ai改变世界好吧)

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

function password($password, $password_code = 'lshi4AsSUrUOwWV')
{
// 对密码进行两次 MD5 加密,并拼接上密码编码再次进行 MD5 加密
return md5(md5($password) . md5($password_code));
}

// example usage:
$password = '123456';
$hashed_password = password($password);
echo $hashed_password;
?>

输出结果为

1
9eb2b9ad495a75f80f9cf67ed08bbaae

image-20230429093028441

在数据库中将数据库中的密码的md5值2d17c53d0d682bbb7eac2e76828a4d79替换为9eb2b9ad495a75f80f9cf67ed08bbaae

image-20230429095845144

现在登录密码被我们修改为123456,尝试登录,发现成功登录

image-20230429095940333

总结

  • 本次的题目进了几次复现才成功重构。
  • 记得查看linux服务器的history记录,你的收获会很大。
  • 记得关闭防火墙服务。(感谢学弟的提醒手动@Jokak)