本栏目主要是针对比赛题目进行分析和解题思路分享,只进行知识分享,不具一定的实战能力,后台不解答涉及可能侵害他人权利的问题,切勿用于违法犯罪活动。如果有工作方面的解答需求,请后台联系添加微信私聊。
2023年龙信杯服务器1部分
案情介绍
2023年9月,某公安机关指挥中心接受害人报案:通过即时通讯工具添加认识一位叫“周微”的女人,两人谈论甚欢,确定网上恋爱关系,后邀约裸聊,受害人上钩后,“周微”和受害人进行裸聊,整个过程被涉诈团伙录音录像。同时周倩以自己做直播“涨粉”为由,引导受害人下载其事先制作好的木马APP,受害人安装该APP后,嫌疑人利用录制的视频和受害人的通讯录做要挟,从而实施诈骗。
公安机关接警后,通过技术手段抓取了一段流量包,且通过公安机关的侦查与分析,锁定了该诈骗团伙的业务窝点,具了解,该团伙成员通过Telegram 联系ETH币商收币,双方在线上确定好了交易时间和交易金额(交易额为300万人民币),并先由卖币方转0.5个ETH到买币方钱包。双方人员碰头后,商定分两笔交易交割,第一笔交易价值100万的虚拟货币、第二笔交易价值200万的虚拟货币。第一笔100万的币从卖币方的地址转到中转地址(由中间人控制),再由中转地址转到买币方提供的收币地址,买币方收到币后将带来的100万现金给卖币方清点,第一笔交易完成。犯罪分子开始第二笔交易时,被警方当场截获。并将相关嫌疑人抓获,扣押安卓手机1部,笔记本电脑1台,调证服务器2台,以上检材以分别制作了镜像。检材清单见附件。请结合案情,对上述检材进行勘验与分析,完成以下题目。
龙信杯的题目适合入门,题目整体难度不大,同时具备很多知识点。这个是服务器1的部分题目,主要是对网站进行重构和数据库进行重构,然后对重构后的网站进行数据分析。除了web方向的知识之外,还需要进行镜像的仿真,为了了解仿真的机制,使用的是磁盘挂载的方式,然后更改linux的shadow文件来进行仿真和密码绕过,需要一定的网络知识的基础。
赛题和工具网盘地址:后台发送电子数据取证每日一练可以得到题目和工具(不分享企业厂商工具)
学习目标:了解网站重构和数据库重构,会使用sql语言进行数据库分析
使用工具(均为开源工具):Arsenal Image Mounter、X-ways、Winhex、Finalshell、navicat、VMware Workstation
难度:中等难度
题目一览
1.服务器系统的版本号是___。(格式:1.1.1111)
2.网站数据库的版本号是___。(格式:1.1.1111)
3.宝塔面板的“超时”时间是___分钟。(格式:50)
4.网站源码备份压缩文件SHA256值是___。(格式:64位小写)
5.分发网站sb.wiiudot.cn管理员密码默认MD5加密盐值是___。(格式:abcd)
6.分发网站sb.wiiudot.cn一共存放了___条通讯录数据。(标准格式:1234)
7.全部网站一共有___名受害人。(格式:xxx。不去重,不进行数据恢复)
8.分发网站tf.chongwuxiaoyouxi.com里面一共有___位“组员级别”的管理员。(格式:数字)
9.分发网站sb.wiiudot.cn管理员名为“0820”的邀请码是___。(格式:xxx)
10.分发网站sb.wiiudot.cn本地数据库用户sb_wiiudot_cn的密码是___。(格式:xxx)
本题所需知识点
1.linux系统目录文件介绍(内容有点多,但是很重要)
1.(根目录)
根目录是整个文件系统的起点,所有其他文件和目录都是从这里派生出来的。根目录包含了所有的系统文件、用户文件、配置文件和数据。
2./bin
用途 :存放基本用户命令的二进制文件。
示例文件 :ls , cp , mv , rm 。
描述 :这些命令通常用于系统维护和文件操作,是单用户模式下也能使用的基础命令。
3./sbin
用途 :存放系统管理员使用的二进制文件。
示例文件 :ifconfig , reboot , shutdown 。
描述 :这些命令通常用于系统管理和维护,普通用户一般没有权限执行。
4./boot
用途 :存放启动加载程序和内核文件。
示例文件 :vmlinuz (内核镜像), initrd.img (初始RAM磁盘)。
描述 :启动时所需的文件都在这里,包括启动加载程序(如GRUB)和系统内核。
5./dev
用途 :存放设备文件,代表系统中的各种硬件设备。
示例文件 :/dev/sda (硬盘设备), /dev/tty (终端设备)。
描述 :设备文件是操作系统与硬件进行交互的接口,Linux通过这些文件与外设通讯。
6./etc
用途 :存放系统的配置文件和脚本。
示例文件 :/etc/fstab (文件系统表), /etc/passwd (用户账户信息)。
描述 :系统配置和服务的管理文件都在这里,是系统管理员常用的目录。
7./home
用途 :存放用户的主目录。
示例文件 :/home/user1 (用户 user1 的主目录)。
描述 :每个用户都有自己的主目录,存放用户的个人文件和配置。
8./lib
用途 :存放系统程序和用户程序使用的共享库文件。
示例文件 :/lib/libc.so.6 (C标准库)。
描述 :共享库是程序运行时需要的动态链接库,系统启动和运行时会用到这些库文件。
9./media
用途 :挂载可移动媒体设备。
示例文件 :/media/cdrom , /media/usb 。
描述 :用于挂载和访问外部媒体设备,如CD ROM和USB驱动器。
10./mnt
用途 :临时挂载文件系统。
示例文件 :可以临时挂载任何文件系统。
描述 :系统管理员用于临时挂载设备的挂载点。
11./opt
用途 :安装附加软件包。
示例文件 :/opt/java (安装的Java环境)。
描述 :用于第三方软件的安装位置,不属于标准的系统文件。
12./proc
用途 :虚拟文件系统,存放系统进程和内核信息。
示例文件 :/proc/cpuinfo (CPU信息), /proc/meminfo (内存信息)。
描述 :动态生成的虚拟文件系统,提供内核和进程的实时信息。
13./root
用途 :超级用户(root用户)的主目录。
示例文件 :/root/.bashrc (root用户的bash配置文件)。
描述 :系统管理员的主目录,与普通用户的主目录类似。
14./run
用途 :存放系统运行时的数据。
示例文件 :/run/lock (锁文件), /run/shm (共享内存)。
描述 :包含系统启动后生成的临时文件和信息。
15./srv
用途 :存放特定服务的数据。
示例文件 :/srv/www (Web服务器的数据文件)。
描述 :用于服务所需的数据存储,如Web服务器或FTP服务器的数据目录。
16./sys
用途 :虚拟文件系统,存放与硬件相关的信息。
示例文件 :/sys/class (设备类信息)。
描述 :类似于 /proc ,用于提供和硬件相关的动态信息。
17. /tmp
用途 :存放临时文件。
示例文件 :程序运行时生成的临时文件。
描述 :系统重启后可能会清空,用于存储临时数据。
18./usr
用途 :存放用户的应用程序和文件。
示例文件 :/usr/bin (用户命令二进制文件), /usr/lib (库文件), /usr/share (共享数据)。
描述 :是系统级别的目录,存放安装的软件和文件。
19./var
用途 :存放经常变动的数据文件。
示例文件 :/var/log (日志文件), /var/mail (邮件), /var/cache (缓存)。
描述 :包含动态数据,如日志文件、邮件队列、缓存文件等。
20./www
用途:存放Web服务器的站点文件。
示例文件:网站的HTML文件、CSS文件、JavaScript文件、图片等。
描述:Web服务器如Apache、Nginx等,可以配置使用/www作为文档根目录。在这种配置下,网站的所有文件都会放在这个目录下。这个目录通常包含子目录,每个子目录对应一个网站或虚拟主机。
2.手动仿真的技能:用Arsenal Image Mounter仿真
用管理员权限打开,选择可写入,后面要绕密
这里需要搞一个linux虚拟机,或者用我生成好的hash
$5$St/4MDmasE.nEyoc$VllTary1T9FpbUoVPSYESq0JBiRNjs4kL78ekOYXMZA
用winhex挂载磁盘,然后更改/etc/shadow下面root后面的hash值(替换成`$5$St/4MDmasE.nEyoc$VllTary1T9FpbUoVPSYESq0JBiRNjs4kL78ekOYXMZA
即可)
最好这里也用管理员权限打开,用VMware创建虚拟机
前面的选项正常选择就行,然后到这里选择使用物理磁盘,选择最后一个挂载的设备
然后仿真成功,接下来按照生成的密码进行登录即可
3.宝塔面板
内容来自:https://www.bt.cn/new/btcode.htm
管理宝塔
bt
一般绕过选择下面几个关闭
bt 12 | bt 10 | bt 23 | bt 24
旧版本管理宝塔(5.x版本以下适用)
停止
/etc/init.d/bt stop
启动
/etc/init.d/bt start
重启
/etc/init.d/bt restart
查看当前面板端口
cat /www/server/panel/data/port.pl
修改面板端口,如要改成8881(CentOS 6 系统)
echo '8881' > /www/server/panel/data/port.pl && /etc/init.d/bt restart
iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 8881 -j ACCEPT
service iptables save
service iptables restart
修改面板端口,如要改成8881(CentOS 7 系统)
echo '8881' > /www/server/panel/data/port.pl && /etc/init.d/bt restart
firewall-cmd --permanent --zone=public --add-port=8881/tcp
firewall-cmd --reload
强制修改MySQL管理(root)密码,如要改成123456
cd /www/server/panel && python tools.py root 123456
修改面板密码,如要改成123456
cd /www/server/panel && python tools.py panel 123456
查看面板用户名
cd /www/server/panel && python tools.py username
查看宝塔日志
cat /tmp/panelBoot.pl
查看软件安装日志
cat /tmp/panelExec.log
站点配置文件位置
/www/server/panel/vhost
删除域名绑定面板
rm -f /www/server/panel/data/domain.conf
清理登陆限制
rm -f /www/server/panel/data/*.login
查看面板授权IP
cat /www/server/panel/data/limitip.conf
关闭访问限制
rm -f /www/server/panel/data/limitip.conf
查看许可域名
cat /www/server/panel/data/domain.conf
关闭面板SSL
rm -f /www/server/panel/data/ssl.pl && /etc/init.d/bt restart
查看面板错误日志
cat /tmp/panelBoot
查看数据库错误日志
cat /www/server/data/*.err
站点配置文件目录(nginx)
/www/server/panel/vhost/nginx
站点配置文件目录(apache)
/www/server/panel/vhost/apache
站点默认目录
/www/wwwroot
数据库备份目录
/www/backup/database
站点备份目录
/www/backup/site
站点日志
/www/wwwlogs
Nginx服务管理
nginx安装目录
/www/server/nginx
启动
/etc/init.d/nginx start
停止
/etc/init.d/nginx stop
重启
/etc/init.d/nginx restart
启载
/etc/init.d/nginx reload
nginx配置文件
/www/server/nginx/conf/nginx.conf
Apache服务管理
apache安装目录
/www/server/httpd
启动
/etc/init.d/httpd start
停止
/etc/init.d/httpd stop
重启
/etc/init.d/httpd restart
启载
/etc/init.d/httpd reload
apache配置文件
/www/server/apache/conf/httpd.conf
MySQL服务管理
mysql安装目录
/www/server/mysql
phpmyadmin安装目录
/www/server/phpmyadmin
数据存储目录
/www/server/data
启动
/etc/init.d/mysqld start
停止
/etc/init.d/mysqld stop
重启
/etc/init.d/mysqld restart
启载
/etc/init.d/mysqld reload
mysql配置文件
/etc/my.cnf
FTP服务管理
ftp安装目录
/www/server/pure-ftpd
启动
/etc/init.d/pure-ftpd start
停止
/etc/init.d/pure-ftpd stop
重启
/etc/init.d/pure-ftpd restart
ftp配置文件
/www/server/pure-ftpd/etc/pure-ftpd.conf
PHP服务管理
php安装目录
/www/server/php
启动(请根据安装PHP版本号做更改,例如:/etc/init.d/php-fpm-54 start)
/etc/init.d/php-fpm-{52|53|54|55|56|70|71|72|73|74} start
停止(请根据安装PHP版本号做更改,例如:/etc/init.d/php-fpm-54 stop)
/etc/init.d/php-fpm-{52|53|54|55|56|70|71|72|73|74} stop
重启(请根据安装PHP版本号做更改,例如:/etc/init.d/php-fpm-54 restart)
/etc/init.d/php-fpm-{52|53|54|55|56|70|71|72|73|74} restart
启载(请根据安装PHP版本号做更改,例如:/etc/init.d/php-fpm-54 reload)
/etc/init.d/php-fpm-{52|53|54|55|56|70|71|72|73|74} reload
配置文件(请根据安装PHP版本号做更改,例如:/www/server/php/52/etc/php.ini)
/www/server/php/{52|53|54|55|56|70|71|72|73|74}/etc/php.ini
Redis服务管理
redis安装目录
/www/server/redis
启动
/etc/init.d/redis start
停止
/etc/init.d/redis stop
redis配置文件
/www/server/redis/redis.conf
Memcached服务管理
memcached安装目录
/usr/local/memcached
启动
/etc/init.d/memcached start
停止
/etc/init.d/memcached stop
重启
/etc/init.d/memcached restart
启载
/etc/init.d/memcached reload
绕过宝塔面板手机登录
内容来源:https://mp.weixin.qq.com/s/7dqpcQJSRWBJD7Z3BLLQaw
(1)宝塔7.7.0版以下
在服务器上执行如下命令强制删除/www/server/panel/data/目录下的文件bind.pl,该文件是宝塔面板中用来管理BIND配置的一个脚本文件,可以方便地进行域名管理、DNS记录设置和缓存管理等操作。
rm -f /www/server/panel/data/bind.pl
上述命令运行完成后重新登录宝塔面板,就可以正常进入首页了。
(2)宝塔7.7.0版以上
新建userInfo.json
vi /www/server/panel/data/userInfo.json
参考如下格式,保证键全部存在避免读取时出错,值随意填写即可:
{
"id": 1,
"uid": 1,
"state": 1,
"username": "",
"secret_key": "",
"access_key": "",
"address": "",
"addtime": 1,
"idc_code": "",
"area": "",
"serverid": "",
"ukey": ""
}
修改public.py
vi /www/server/panel/class/public.py
查找is_bind函数的定义:
改为无条件返回True。
重新登录面板,成功正常进入首页,这样就可成功绕过宝塔强制登录手机账号。
4.虚拟机网络设置教程
首先找到自己网络所对应的ipv4地址
然后在虚拟机中更改虚拟网络设置,将nat模式的网段改为和自己ipv4地址相同的网段(改为192.168.1.XX)
本方法主要偏向入门,web大佬可以忽视
如果设置后出现问题,可以参考下面文章进行调整:
https://blog.csdn.net/seawaysyyy/article/details/101101646
5.数据库重构
首先备份数据库
mysqldump -u username -p dbname [tbname ...]> filename.sql
如果没有 root 密码,可以Mysql数据库跳过密码进行登陆修改/etc/my.cnf
vim /etc/my.cnf
在mysqld模块下面添加以下语句,保存并退出
skip-grant-tables
然后重启服务:
systemctl restart mysqld
记录一个小问题,当时进行数据库重构的时候,数据库服务一直重启失败,这时候要把相关的进程都删了,然后启动
6.网站重构调试
在config.php的文件里,有关于是否显示错误信息的地方,这个在重构网站的时候建议打开,方便进行调试
题目解析
为了避免出现网络配置问题,这里根据网站情况把ip地址更改(登录宝塔之后可以看到网站绑定的ip,然后再回来更改。这里为了方便做题,建议先更改一下)
1.服务器系统的版本号是___。(格式:1.1.1111)
7.9.2009
在etc文件夹下面存放了关于系统的信息,里面有一个centos release的文件,存放的是操作系统的版本信息。
2.网站数据库的版本号是___。(格式:1.1.1111)
因为网站的目录是/www,所以在里面找到mysql的位置,里面有版本信息相关的文件
3.宝塔面板的“超时”时间是___分钟。(格式:50)
下面为了方便进行终端操作和资产查看,这里使用finalshell来进行远程连接服务器
然后登录宝塔面板,为了方便登录宝塔,先对一些操作进行绕过
一般绕过选择下面几个关闭
bt 12 | bt 10 | bt 23 | bt 24
# bt 23 && bt 11 && bt 12 && bt 13 && bt 24 && bt 5
然后为了避免端口占用和获取密码
使用bt 8
和bt 5
更改信息,使用bt 14
来获取面板信息,方便登录
登录之后要绑定手机号,如果联网情况下,用自己的手机号登录就行,要是断网比赛,可以尝试绕过验证
查看一些宝塔面板的版本是8.0.1cat /www/server/panel/class/common.py | grep 'version'
使用finalshell直接上传一个写好的userInfo.json(内容见前面)
给注释掉,然后写一个return True
然后重启面板就能直接操作了
超时时间是7200秒也就是120分钟
4.网站源码备份压缩文件SHA256值是___。(格式:64位小写)
在备份目录的位置找到源码备份的文件
复制路径之后计算sha256hash值,得到0bdeeacf755126dae9efd38f6a6d70323aa95217b629fd389e0e81f9b406be39
5.分发网站sb.wiiudot.cn管理员密码默认MD5加密盐值是___。(格式:abcd)
一般密码的盐值都是在源码里面,这里可以用xways搜,可以找到在common.php里面,这里要注意选择的是sb.wiiudot.cn网站目录下面。
6.分发网站sb.wiiudot.cn一共存放了___条通讯录数据。(标准格式:1234)
下面对分发网站进行重建,首先对站点的域名进行修改,方便本地能够访问,然后对数据库的ip地址改为本地端127.0.0.1
然后对数据库的信息进行更改,设置为本地端,用户名设置为root
使用navicat进行数据库连接,因为直接连接数据库涉及网络配置问题,所以这里使用ssh来进行连接(因为前面改过数据库的ip,所以这里能够访问到sb_wiiudot_cn这个数据库)
数据库中显示是67277条
另一种方式:将网站的重构后进行登录,这里对登录判断的函数进行修改,实现绕密
用户名使用admin,源代码里面有说到管理员用户,或者看后台日志也能看到,这里不多叙述,密码任意
登录后发现后台显示的是67097条数据(通过多次比赛的经验来看,一般都是要找网站重构后显示的数据)
7.全部网站一共有___名受害人。(格式:xxx。不去重,不进行数据恢复)
一共有三个网站,每一个数据库设置都要修改一下。这里题目中不去重,我采取的是各个网站间不去重来做的
然后重启一下mysql的服务,就会看到navicat增加了几个数据库
分别查询后得到267+57+182=506个
8.分发网站tf.chongwuxiaoyouxi.com里面一共有___位“组员级别”的管理员。(格式:数字)
看表的关联关系和数据定义,可看到id=22的是组员
下面对admin_cate_id进行筛选,计算id=22的数量
一共有26个
9.分发网站sb.wiiudot.cn管理员名为“0820”的邀请码是___。(格式:xxx)
先看一下0820的id是多少
在appconfig的表里面可以找到邀请码:443074,对应的id是141
10.分发网站sb.wiiudot.cn本地数据库用户sb_wiiudot_cn的密码是___。(格式:xxx)
在数据库mysql中可以找到用户的密码信息,但这个是加密过的
前面改密码的时候已经看到过密码,看一下和数据库中的是不是一样的
发现密码不一样,之前有提到过源码备份,看一下备份的信息:地址(http://web.chacuo.net/safemysql)
发现备份中的密码是KE5f3xnFHYAnG5Dt
生成的密码和数据库密码一致,所以是备份中的密码(有点小坑)
总结
这套题目主要是对linux的服务器进行了解析,从镜像仿真到网站重构,基本涉及到了常用的服务器取证技巧。除了题解中所写的部分,也可以了解一下网站文件的架构以及linux根目录下面其他文件的内容,以便对服务器有一个更好的了解。
原文始发于微信公众号(网络安全与取证研究):电子数据取证每日一练-服务器部分1
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论