第一届创享杯 服务器部分题解
检材分析
多个文件组成,可能为集群或者RAID阵列
只有server05 这个大的能解析,其他全部不能解析,考虑其他几个是raid阵列,raid阵列的特征是无法单独解析,容量相同。
服务器取证
49、 请对所给服务器检材进行分析,写出该Linux系统用户“hop”访问该系统的IP地址。(答案格式:192.168.1.1) 10.10.10.110
登陆记录中这个uid是1000的还是比较扎眼的
50、 请对所给服务器检材进行分析,写出网站域名的别名。(答案格式如:www.abc.com) www.xxshop123.com
对服务器各项内容进行检查
发现存在mysql服务和apache服务,一个网站存在应该是没跑了
问网站域名的别名,查看apache配置文件,起仿真,进去查看。
在后面raid重组的时候再讲解如何仿真。可以先看后面raid重组这一块。
仿真起了之后,对整个文件系统进行检查,
ServerAdmin jackzhang@126.com php_admin_value open_basedir /var/shop:/tmp:/var/tmp:/proc:/data/www/default/kod ServerName www.shopx789.com ServerAlias www.xxshop123.com DocumentRoot /var/shop/public SetOutputFilter DEFLATE Options FollowSymLinks AllowOverride All Order Deny,Allow Require all granted DirectoryIndex index.php index.html index.htm ErrorLog /data/wwwlog/www.shopx.com/error.log CustomLog /data/wwwlog/www.shopx.com/access.log combined
可以看到ServerAlias是www.xxshop123.com,所以别名是www.xxshop123.com
在查看配置文件的过程中,发现网站的目录DocumentRoot /var/shop/public
51、 请对所给服务器检材进行分析,请写出管理员安装“gcc-c+±4.8.5-39.el7.x86_64”编译器的时间。(答案格式如:12:12:12) 10:21:31
[root@ZhangLi 1]# rpm -qi gcc-c++-4.8.5-39.el7.x86_64Name : gcc-c++Version : 4.8.5Release : 39.el7Architecture: x86_64Install Date: Sun 26 Apr 2020 10:21:31 AM CSTGroup : Development/LanguagesSize : 17265731License : GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions and LGPLv2+ and BSDSignature : RSA/SHA256, Fri 23 Aug 2019 05:24:16 AM CST, Key ID 24c6a8a7f4a80eb5Source RPM : gcc-4.8.5-39.el7.src.rpmBuild Date : Wed 07 Aug 2019 01:15:38 AM CSTBuild Host : x86-02.bsys.centos.orgRelocations : (not relocatable)Packager : CentOS BuildSystem <http://bugs.centos.org>Vendor : CentOSURL : http://gcc.gnu.orgSummary : C++ support for GCCDescription :This package adds C++ support to the GNU Compiler Collection.It includes support for most of the current C++ specification,including templates and exception handling.
raid重组
52、 请对所给服务器检材进行分析,写出raid磁盘组配置的条带是多少KB?(答案格式如:321) 512
因为根据我们的分析服务器应该是一个主盘server5作为系统盘,其他四个server1-4作为raid整列,有4块盘,有很多种阵列的可能。
将所有磁盘一起添加到仿真列表中,将系统盘放在第一块,
若不能识别系统类型,可以手动选择一个centos或者linux,仿真之后,它会自动把这些盘分成系统盘和数据盘,这就是顺序的重要性
直接仿真起,经过漫长的等待,进入到一个dracut的emergency shell
感觉有点像是除掉centos系统的内核级的shell,啥工具都没有,重启一下进rescue
进入一个类似恢复模式的内核
即可进系统
也可以修复一下磁盘,给最新内核进行重建initramfs文件,重启选择第一个即可进入原来的系统
查看磁盘信息,熟悉一下,这是美亚常考的点之一,这个raid题很像第三届美亚杯的风格,大家可以再研究一下这篇题解,也是写的很详细的
(7条消息) 2017第三届美亚杯全国电子数据取证大赛团队赛write up_奇乃正的博客-CSDN博客_美亚杯镜像文件
[root@ZhangLi ~]# fdisk -lDisk /dev/sdd: 1073 MB, 1073741824 bytes, 2097152 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x8c6af17b Device Boot Start End Blocks Id System/dev/sdd1 2048 2097151 1047552 fd Linux raid autodetectDisk /dev/sdc: 1073 MB, 1073741824 bytes, 2097152 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x029117a1 Device Boot Start End Blocks Id System/dev/sdc1 2048 2097151 1047552 fd Linux raid autodetectDisk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0xcc1d7915 Device Boot Start End Blocks Id System/dev/sdb1 2048 2097151 1047552 fd Linux raid autodetectDisk /dev/sde: 1073 MB, 1073741824 bytes, 2097152 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x882f59d7 Device Boot Start End Blocks Id System/dev/sde1 2048 2097151 1047552 fd Linux raid autodetectDisk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk label type: dosDisk identifier: 0x000c2a2c Device Boot Start End Blocks Id System/dev/sda1 * 2048 2099199 1048576 83 Linux/dev/sda2 2099200 41943039 19921920 8e Linux LVMDisk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk /dev/md5: 3211 MB, 3211788288 bytes, 6273024 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 524288 bytes / 1572864 bytes
可以看到一些 Linux raid autodetect 系统已经自动检测到这些盘作为raid一部分了,可以看到最下面的
Disk /dev/md5: 3211 MB, 3211788288 bytes, 6273024 sectors
md5这个设备并不是一般正常的磁盘的名称,像是mdadm这个raid操作命令创建的raid5阵列,考虑mdadm组的软raid,使用mdadm命令查看
[root@ZhangLi ~]# mdadm -D /dev/md5/dev/md5: Version : 1.2 Creation Time : Sun Apr 26 09:57:19 2020 Raid Level : raid5 Array Size : 3136512 (2.99 GiB 3.21 GB) Used Dev Size : 1045504 (1021.00 MiB 1070.60 MB) Raid Devices : 4 Total Devices : 4 Persistence : Superblock is persistent Update Time : Sun Oct 23 23:22:20 2022 State : clean Active Devices : 4 Working Devices : 4 Failed Devices : 0 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512KConsistency Policy : resync Name : localhost.localdomain:5 UUID : 128f3c5e:010a93d5:2348ec03:9e575180 Events : 36 Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 active sync /dev/sdc1 2 8 49 2 active sync /dev/sdd1 4 8 65 3 active sync /dev/sde1
可以看到这个raid的所有信息尽在掌握!无需重组
将raid先随便挂载到一个文件夹下查看一下里面文件,发现是mysql数据库文件
可以看到条带大小是512K
网站重构
对网站重构
apache已经起了,数据库没起,启动数据库
启动失败,查看报错,发现数据库数据目录应该在/myshop下
查看该目录,发现该目录下无内容,想起之前的raid中是数据库文件,把之前的raid挂载到该目录下再重启mysql
[root@ZhangLi 1]# systemctl start mysqldJob for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.[root@ZhangLi 1]# systemctl status mysqld.service● mysqld.service - LSB: start and stop MySQL Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Tue 2022-10-25 17:52:07 CST; 4s ago Docs: man:systemd-sysv-generator(8) Process: 3289 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=1/FAILURE)Oct 25 17:52:06 ZhangLi.localdomain systemd[1]: Starting LSB: start and stop MySQL...Oct 25 17:52:06 ZhangLi.localdomain mysqld[3289]: Starting MySQL.Logging to '/myshop/mysql-error.log'.Oct 25 17:52:07 ZhangLi.localdomain mysqld[3289]: ERROR! The server quit without updating PID file (/myshop/mysql.pid).Oct 25 17:52:07 ZhangLi.localdomain systemd[1]: mysqld.service: control process exited, code=exited status=1Oct 25 17:52:07 ZhangLi.localdomain systemd[1]: Failed to start LSB: start and stop MySQL.Oct 25 17:52:07 ZhangLi.localdomain systemd[1]: Unit mysqld.service entered failed state.Oct 25 17:52:07 ZhangLi.localdomain systemd[1]: mysqld.service failed.[root@ZhangLi 1]# cd /myshop[root@ZhangLi myshop]# l[root@ZhangLi myshop]# mount /dev/md5 /myshop[root@ZhangLi myshop]# ls[root@ZhangLi myshop]# cd ..[root@ZhangLi /]# ls1 bin boot data dev etc home lib lib64 media mnt myshop opt proc root run sbin srv sys tmp usr var[root@ZhangLi /]# cd myshop[root@ZhangLi myshop]# lsauto.cnf ibdata1 ib_logfile0 ib_logfile1 lost+found mysql mysql-error.log mysql.pid performance_schema shopx[root@ZhangLi myshop]# systemctl start mysqld[root@ZhangLi myshop]# systemctl status mysqld.service● mysqld.service - LSB: start and stop MySQL Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled) Active: active (running) since Tue 2022-10-25 17:54:41 CST; 2s ago Docs: man:systemd-sysv-generator(8) Process: 3702 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS) CGroup: /system.slice/mysqld.service ├─3712 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/myshop --pid-file=/myshop/mysql.pid └─4086 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/myshop --plugin-dir=/usr/local/mysql/lib64/plugin --user=mysql --log-error=/myshop/mysql-error.log...Oct 25 17:54:41 ZhangLi.localdomain systemd[1]: Starting LSB: start and stop MySQL...Oct 25 17:54:41 ZhangLi.localdomain mysqld[3702]: Starting MySQL SUCCESS!Oct 25 17:54:41 ZhangLi.localdomain systemd[1]: Started LSB: start and stop MySQL.[root@ZhangLi myshop]#
数据库已经启动成功了,访问网站
禁止访问,想到之前apache配置文件没写127.0.0.1,考虑可能需要使用郁闷访问,在本机hosts文件写映射
访问域名,成功访问但是提示无网络访问权限,我们查看/var/shop/public下的index.php查看一下访问规则,是否有停用或者其他验证
包含了/…/thinkphp/base.php和/core.php两个文件,打开这两个文件查看
发现core.php开头去检测是否能连的上谷歌,把这一串全部删掉再刷新页面
成功进网站,但是报错,
解密这串像个一句话木马base64编码
发现是个形如数据库配置文件的东西,我们查看一下我们的数据库配置文件是否还安好
果然是数据库寄了,我们用解密后的数据库配置文替换,刷新页面,网站重构完成
查找网站后台,一般查找后台的方法,先考虑网站运行目录下的文件,因为一般这个文件夹下的文件外部才能访问能得到,其他文件夹外部无法访问,后台要做到能访问。
查看application下的模块,是存在admin这个管理目录的,后台入口文件肯定会指向这个文件夹的,以此为思路。
发现Readme.php指向admin这个模块,故后台登陆页面为Readme.php。
尝试访问,访问成功,验证我们的猜想。
绕过登陆密码登陆后台,绕过登陆密码之前的题目讲的很仔细了,这里不赘述了。
后台绕过密码还有问题的看蓝信中的专题课。
这里绕过密码采用报错输出的方法
在源码中查找密码错误
在AdminService.php处找到登录逻辑,将密码校验逻辑结果通过报错输出
// 密码校验 $login_pwd = LoginPwdEncryption($params['login_pwd'], $admin['login_salt']); if($login_pwd != $admin['login_pwd']) { return DataReturn('密码错误', -3); }
// 密码校验 $login_pwd = LoginPwdEncryption($params['login_pwd'], $admin['login_salt']); if($login_pwd != $admin['login_pwd']) { return DataReturn('密码错误'.LoginPwdEncryption($params['login_pwd'], $admin['login_salt']), -3); }
输出字符串替换数据库中admin的密码串
这里链接数据库可能需要ssh隧道
至此网站重构结束,进入后台,开始解题
53、 请对所给服务器检材进行分析,写出在该商城中销售的商品“口罩”的单价是多少。(答案格式如:98) 25
54、 请对所给服务器检材进行分析,写出网站“售后管理员”角色的登入账号。(答案格式如:abcabc) admin888
55、 请对所给服务器检材进行分析,找出网站根路径,写出网站后台页面的名称。(答案格式如:Abcabc.php,区分大小写) Readme.php
56、 请对所给服务器检材进行分析,请判断该商场网站是使用哪个用户去连MySQL数据库的,请写出用户名称。(答案格式如:abcd) root
57、 请对所给服务器检材进行分析,登录网站管理后台,请写出“广东片区自提点”联系人的手机号码。(答案格式如:13812345678) 18999887788
未找到,觉得应该在数据库备份文件里。
58、 请对所给服务器检材进行分析,会员“伊玲”在该网站购物总共消费了多少金额。(答案格式如:10248) 29204
数据量较少,直接口算,若数据量大编写sql语句。
59、 请对所给服务器检材进行分析,会员“萍萍”在该网站购买“女士斜跨风情包”是通过上门取货方式收货,请写出上门取货码(数字)。(答案格式如:8888) 767
这里我写的是0767
60、 请对所给服务器检材进行分析,写出网站首页中预留的商店邮箱的账号。(答案格式如:abc123@123.com) jackzhang@sina.com
61、 请对所给服务器检材进行分析,从Linux系统中找出管理员备份的“商城”数据库文件,请导出该文件并计算其MD5值。(答案格式如:41F930B015A8CE90E02AF3A2F8FB33AF,字母大写) E06063C457447D2418420F64CD45ED58
未找到,找到的同学请指教一下。
62、 请对所给服务器检材进行分析,写出网站的数据库连接密码。(答案格式如:abcabc,区分大小写) mysqlshopxo
docker
本机无ftp,想到有容器,取证大师也能跑出有容器
63、 请对所给服务器检材进行分析,写出ftp服务端配置过的admin用户登入密码。(答案格式如:abc123,区分大小写) admin789
64、 请对所给服务器检材进行分析,根据上题获取ftp用户admin的密码信息,想办法访问该ftp服务,请写出共享文件的数量。(答案格式如:9) 2
ftp用户admin用户下文件即admin共享的文件
Grignard
2022.10.25
来源地址:https://blog.csdn.net/Grignard_/article/details/127607576