服务器取证之网站重构练习(持续更新)
技术无好坏,反而是人心。只做学习使用,无不良引导
简介
服务器的重构在取证中非常重要,网站的重构可以给我们提供更多可视化的信息。
题目文件链接
- 网站重构练习1:试题特殊,需要联系我
- 网站重构练习2:试题特殊,需要联系我
网站重构练习1
进行仿真
打开仿真软件进行镜像的仿真,linux的登录账号和密码会是root和123456
虚拟机网卡配置
尝试使用xshell连接,但发现不行,所以我们尝试使用ping命令,发现ping不通,所以我们查阅资料,发现需要将网卡配置成和NAT模式下的虚拟机网卡的ip
1.尝试连接
2.查看虚拟机网卡信息
点击编辑里的虚拟机网络编辑器
查看网卡VMnet8的ip
3.修改镜像的网卡配置文件
输入以下命令,修改网卡的配置信息
1 | vi /etc/sysconfig/network-scripts/ifcfg-ens33 |
修改之前
修改之后
接着输入命令
1 | service network restart |
查看ip
1 | ifconfig |
4.使用xshell进行连接
成功连接
网站重构
发现使用宝塔的命令,输入宝塔命令,用以启动宝塔面板
1 | bt 14 |
使用链接访问宝塔面板,并使用账号和密码登录,但是失败
在xshell输入以下命令,进行密码修改
1 | cd /www/server/panel && btpython tools.py panel testpasswd s8nbhvgh |
testpasswd就是修改后的密码,当然你可以设置为其他的。
成功登录宝塔面板
查看网站域名信息
找到这个网站的文件中的config.php文件进行相关信息的修改
进行访问域名,但是被定位到互联网上的一个网站,不是我们要重构的网站
因为我们没有将域名指向我们本地,所以访问的是互联网上的资源,我们在本地的hosts文件里进行以下配置
再次进行访问(划重点:这时要把你电脑的代理关掉,不然还是会指向互联网的资源,我也不知道为啥)
发现mysql服务没有启动,使用xshell把mysql的docker进行启动,输入以下命令,查看mysql 的docker信息
1 | docker ps -a |
接着输入以下命令启动mysql服务
1 | docker start mysql5.6 |
进入网站
最后让我们再次访问这个域名吧,我第一次重构的时候以为是浏览器的原因,使用谷歌清除了cookie也进不去,这一次我进去,不知道为啥?
谷歌浏览器:
火狐浏览器:
brave浏览器:
总结
- 网站配置文件的修改
- 将域名指向本地hosts
- 重启mysql的docker
- 在最后访问域名时候记得清楚浏览器的cookie啥的,这一点也很关键
- 最重要的一步:别使用代理
网站重构练习2
进入仿真
打开仿真软件进行镜像的仿真,linux的登录账号和密码会是root和123456
虚拟机网卡配置
1.查看虚拟机网卡信息
点击编辑里的虚拟机网络编辑器
查看网卡VMnet8的ip(我是为了省事,直接把网卡改为和镜像的一样的了,这样后面可以直接进phpadmin里面看数据库)
2.修改镜像的网卡配置文件
输入以下命令,修改网卡的配置信息
1 | vi /etc/sysconfig/network-scripts/ifcfg-ens33 |
修改之前
修改之后
接着输入命令
1 | service network restart |
查看ip
1 | ifconfig |
3.使用xshell进行连接
成功连接
网站重构
宝塔面板相关设置
发现使用宝塔的命令,进行宝塔的相关配置
首先重启宝塔面板的服务,不然连接不上宝塔面板
1 | bt 1 |
接着使用命令修改宝塔面板的密码,之前的密码出错了,需要修改
1 | bt 5 |
使用命令,进入宝塔面板
1 | bt 14 |
进入面板
网站相关配置修改
1.查看网站相关域名
2.将域名指向本地,在本地的hosts文件里进行以下相关配置
mysql、nginx、防火墙相关配置
mysql相关配置
尝试使用phpadmin连接数据库,发现连接不上
查看历史命令是因为mysql的服务被操作过,要重启服务
执行以下命令
1 | systemctl restart mysql |
在宝塔面板发现数据库的账号为root密码为15dbefa4aae110a5
尝试连接mysql
1 | mysql -u root -p |
nginx相关配置
查看历史命令发现关闭了nginx的服务
执行下面的命令重启nginx服务
1 | systemctl restart nginx |
使用命令查看nginx的状态
1 | sudo systemctl status nginx |
防火墙相关配置
查看历史命令发现对防火墙服务进行以下操作。
让我们看看ai怎么说
使用以下命令查看当前防火墙的状态,发现为active状态
1 | systemctl status firewalld |
接着我们执行下面的命令,将防火墙关闭
1 | systemctl stop firewalld |
再次执行systemctl status firewalld查看状态,发现状态为inactive
进入网站
后台登录地址
在网站的日志文件里,发现后台登录url
登录
使用http://www.honglian7001.com/admin进行访问,需要找到账号和密码
网站源码获取
找到下面路径进行压缩
将压缩包,下载到本地
寻找登录密码
我们想到数据库中有管理员admin的账号密码,但是这个密码是进行了md5加密的(这个是这个试题中的一个题目中知道,这里不在详述),接着我们是使用VScode进行搜索md5,查询管理员后台登录密码的加密方式,发现进行了3次的md5加密,还进行了加盐加密。
尝试在数据库中寻找账号和密码,使用navicat进行远程连接,用以查看数据库的内容,进行以下设置
找到app_admin表中,发现加密后的密码,这个很难进行解密
方法一:在网站源码里搜索数据库中的密码的md5值
在数据库中发现管理员账号admin对应的密码的md5值为
1 | 2d17c53d0d682bbb7eac2e76828a4d79 |
在源码检索这个值
上图在06.log这个日志文件里可知密码被修改为了ABC123456(日志文件厉害啊)
尝试登录,发现成功登录,成功进入后台
方法二:使用自己设置密码的加密结果替换数据库中的md5值
加密算法
1 | function password($password, $password_code='lshi4AsSUrUOwWV') |
改写为php代码,计算我们自己设置的密码的md5值(别问我为什么会php,用的ai生成的,ai改变世界好吧)
1 | <?php |
输出结果为
1 | 9eb2b9ad495a75f80f9cf67ed08bbaae |
在数据库中将数据库中的密码的md5值2d17c53d0d682bbb7eac2e76828a4d79替换为9eb2b9ad495a75f80f9cf67ed08bbaae
现在登录密码被我们修改为123456,尝试登录,发现成功登录
总结
- 本次的题目进了几次复现才成功重构。
- 记得查看linux服务器的history记录,你的收获会很大。
- 记得关闭防火墙服务。(感谢学弟的提醒手动@Jokak)