美亚杯2020 - 团体赛 Zello&Xeno服务器部分 Write Up¶
Zello服务器镜像模拟¶
Zello服务器使用了LVM2硬盘,因此导致了火眼仿真程序生成的虚拟机文件无法直接启动,需要手动在配置中将“EFI引导”更改为“BOIS(Legacy)引导”。
在镜像文件的GPT分区类型也指出该分区为BOIS引导分区。参见GPT 分区详解。
此外,还可以将LVM2分区直接挂载在物理机上,再用火眼对LVM2分区进行仿真操作。
01 Zello服务器的哈希值(SHA256)是甚么?¶
在取证大师中对整个镜像进行SHA256计算即可。
02 卷组是何时创建的?¶
LVM在每个物理卷头部都维护了一个metadata,其中包含有关于分区的基本信息。参见LVM2---Logical Volume Manager。
通过对LVM2分区进行16进制查看即可得到相关信息,其中包含有分区名称、分区创建时间、物理卷的PV UUID、物理卷的VG UUID等信息。同样的信息可以在/etc/lvm/backup/
目录下找到。
03 卷组的名称是甚么?¶
除了在02题中所述的metadata中以外,还可以通过使用火眼证据分析软件自动识别出LVM2分区的名称(该软件也可以直接读取LVM2分区中的文件)。
04 物理卷的PV UUID是多少?¶
05 卷组的VG UUID是甚么?¶
除了在02题中所述的metadata中以外,通过火眼仿真后还可以使用lvm命令进行查看:
sudo lvdisplay -a
sudo pvdisplay
sudo vgdisplay
06 Zello服务器的Linux内核版本是甚么?¶
07 Zello服务器的操作系统版本是甚么?¶
通过uname -a
或uname -r
查看内核版本;
查看/proc/version
文件;
查看/etc/lsb-release
文件;
08 Zello服务器的主机名是甚么?¶
通过uname -a
或uname -n
查看主机名;
查看/etc/hostname
文件。
09 Zello服务器的计算器ID是甚么?¶
“计算器ID”其实就是“计算机ID”,大概是香港那边独特的表达方式吧。
查看/etc/machine-id
文件。
10 Zello服务器中使用的wordpress版本是甚么?¶
仿真之后访问网站后台即可在右下角看到版本号。而火狐浏览器的历史记录中就包含了网站的后台地址,甚至打开浏览器之后恢复的上一次异常关闭页面中就有后台页面。
或者在/var/www/html/wordpress/wp-include/version.php
中查看。
11 Zello服务器与之同步的主机名是甚么?¶
查看hosts或/etc/ntp.conf
文件。
关于ntp.conf
文件的作用,详见ntp.conf配置文件详解。
12 Zello服务器的时区是甚么?¶
通过date
命令或查看/etc/timezone
文件。
13 有多少个本地用户已登录到Zello服务器?¶
查看/etc/passwd
文件。
其中每行各个字段含义如下:
普通用户有两个特征:一是UID介于500~65535之间;二是shell的起始位置为/bin/bash
。
14 植入网络目录(Webdirectory)的网页壳层(Web Shell)的哈希值(MD5)是甚么?¶
将/var/www/html/wordpress/
目录下的全部文件,导出,使用杀毒软件查杀(windows defender在导出时就会报毒)。
或者以eval(
为关键词检索导出文件中的php文件。(使用的搜索工具为FileLocatorPro)
15 \var\www\html\wordpress\net\2020\Login index.php有甚么作用?¶
16 钓鱼网站伪装成甚么网站?¶
查看index.php
可以发现这个页面是伪造的Netflix的登录页面,其中第一行包含了crypt.php
,结合上一题杀毒软件对crypt.php
的报毒,应该是钓鱼网页。
17 下列哪个IP对Zello服务器进行了蛮力攻击?¶
查看/var/log/apache2/
目录下的access.log.x`文件,其中有几个被压缩,需要解包。可以在
access.log.3文件中发现
203.186.94.68`对服务器进行了1432次请求。
18 Zello Web服务器的URL是甚么?¶
参见第10、11题。
19 LVM2容器的第一个扇区是什么?¶
20 Zello服务器中LVM2容器的大小(以字节为单位)是甚么?¶
在取证大师中查看没有识别出来的LVM2分区(显示为“未分配簇”)的相关信息。辣鸡取证大师终于派上用场了
21 在Zello服务器以及Alice的装置中可以找到甚么共同文件?¶
可以在Zello镜像的/var/www/html/wordpress/net/2020/login/
目录下找到R3ZZ.txt
。
22 2020年8月29日在Xeno服务器中发现的攻击类型是甚么?¶
查看日志可以发现当天服务器收到了大量的GET/POST请求,并且请求的为某几个特定页面,攻击方式应为HTTP GET/POST Flood。
23 哪个IP地址在日志中条目数量最多?¶
先去除日志中所有损坏的行,然后写一个简单的python脚本对出现的IP的次数进行统计即可。
也可以使用搜索工具对每个选项中的IP进行搜索。不懂取证警告
dic = {}
with open("1.txt", "r", encoding='utf-8') as f:
for i in f:
ip = i.split(' ')[0]
if ip in dic:
dic[ip] += 1
else:
dic[ip] = 1
print(dic)
24 这个登录次数最多的IP地址,它访问最多的是哪个页面?¶
继续写python脚本。
也可以使用搜索工具进行正则匹配,对每个选项中的页面进行搜索。不懂取证警告+1
times = {
'A': 0,
'B': 0,
'C': 0,
'D': 0,
'E': 0,
}
with open("1.txt", "r", encoding='utf-8') as f:
for i in f:
if "14.102.184.0" in i:
if "/listen.icepush.xml HTTP/1.1\" 200" in i:
times['A'] += 1
elif "/risk.xhtml HTTP/1.1\" 200" in i:
times['B'] += 1
elif "/explorer.xhtml HTTP/1.1\" 200" in i:
times['C'] += 1
elif "/login.jsp HTTP/1.1\" 200" in i:
times['D'] += 1
elif "/listViewRisjs.xhtml HTTP/1.1\" 200 " in i:
times['E'] += 1
print(times)
25 这个登录次数最多的IP地址来自哪个国家或地区?¶
使用离线IP查询工具进行查询,得知是香港的IP。
实际上,这个IP地址就是Daniel的家庭IP地址……
26 这个登录次数最多的IP地址,合共有多少次成功登录?¶
python脚本:
time = 0
with open("1.txt", "r", encoding='utf-8') as f:
for i in f:
if "14.102.184.0" in i and "login" in i:
dd = i.split(' ')
if '200' in dd:
time += 1
print(time)
但因为损坏部分中也可能存在登陆成功的日志,所以实际登录成功次数会略高一些。
27 除DDoS之外,还可能涉及其他攻击吗?¶
28 从该网站下载了多少数据?¶
python脚本:
data = 0
with open("1.txt", "r", encoding='utf-8') as f:
for i in f:
if "14.102.184.0" in i:
dd = i.split(' ')[-2]
if dd.isdigit():
data += int(dd)
print(data)