2020年“磐云杯”网络空间安全技能竞赛全国拉赛
一、竞赛阶段
竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值
第一阶段
单兵模式系统渗透测试 任务1 Wireshark数据包分析 100分钟 100
任务2 系统漏洞扫描与利用 100
任务3 服务漏洞扫描于测试 100
任务4 Web渗透测试 100
任务5 Windows操作系统渗透测试 100
任务6 Linux操作系统渗透测试 100
任务7 主机存活扫描渗透测试 100
备战阶段 攻防对抗准备工作 20分钟 0
第二阶段
分组对抗 系统加固:15分钟 60分钟 300
渗透测试:45分钟
二、拓扑图
PC机环境:
物理机:Windows7;
虚拟机:kali1.0
虚拟机:kali2.0
虚拟机:bt5
虚拟机:WindowsXP
三、竞赛任务书
(一)第一阶段任务书(700分)
任务1. Wireshark数据包分析(100分)
任务环境说明:
服务器场景:PYsystemWH1
服务器场景操作系统:Windows(版本不详)
1.使用Wireshark查看并分析PYsystemWH1桌面下的captureWH.pcapng数据包文件,找出黑客获取到的可成功登录目标服务器FTP的账号密码,并将黑客获取到的账号密码作为Flag值(用户名与密码之间以英文逗号分隔,例如:root,toor)提交;(9分)
2.继续分析数据包captureWH.pcapng,找出黑客使用获取到的账号密码登录FTP的时间,并将黑客登录FTP的时间作为Flag值(例如:14:22:08)提交;(13分);
3.继续分析数据包captureWH.pcapng,找出黑客连接FTP服务器时获取到的FTP服务版本号,并将获取到的FTP服务版本号作为Flag值提交;(15分);
4.继续分析数据包captureWH.pcapng,找出黑客成功登录FTP服务器后执行的第一条命令,并将执行的命令作为Flag值提交;(11分);
5.继续分析数据包captureWH.pcapng,找出黑客成功登录FTP服务器后下载的关键文件,并将下载的文件名称作为Flag值提交;(13分);
6.继续分析数据包captureWH.pcapng,找出黑客暴力破解目标服务器Telnet服务并成功获取到的用户名与密码,并将获取到的用户名与密码作为Flag值(用户名与密码之间以英文逗号分隔,例如:root,toor)提交;(9分);
7.继续分析数据包captureWH.pcapng,找出黑客在服务器网站根目录下添加的文件,并将该文件的文件名称作为Flag值提交;(13分);
8.继续分析数据包captureWH.pcapng,找出黑客在服务器系统中添加的用户,并将添加的用户名与密码作为Flag值(用户名与密码之间以英文逗号分隔,例如:root,toor)提交。(17分);
任务2. 系统漏洞扫描与利用(100分)
任务环境说明:
服务器场景:PYsystemWH1
服务器场景操作系统:Windows(版本不详)
-
通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH1以半开放式不进行ping的扫描方式,要求扫描信息输出格式为xml文件格式,从生成扫描结果获取局域网(例如172.16.101.0/24)中存活靶机,以xml格式向指定文件输出信息(使用工具Nmap,使用必须要使用的参数),并将以xml格式向指定文件输出信息必须要使用的参数作为Flag值提交;(13分)
nmap -sS -sP -oX .xml -
根据第1题扫描的回显信息分析靶机服务开放端口,分析开放的服务,并将共享服务(445/tcp)的开放状态作为Flag值提交;
open -
在本地PC的渗透测试平台kali2.0中,使用命令初始化MSF数据库,并将使用的命令作为Flag值提交 ;
msfdb init -
在本地PC的渗透测试平台Kali2.0中,打开MSF,使用db_import将扫描结果导入到数据库中,并查看导入的数据,将查看该数据要使用的命令作为Flag值提交;
hosts -
在msfconsole使用search命令搜索MS17010漏洞利用模块,并将回显结果中的漏洞公开时间作为Flag值提交;
xx-xx-xx -
在msfconsole中利用MS17010漏洞攻击模块,将调用此模块的命令作为Flag值提交;use
7.在上一步的基础上查看需要配置的选项,并将回显中必须配置的选项名作为Flag值提交 Rhosts
8.使用set 命令设置目标IP(在第7题的基础上),并检测漏洞是否存在,将回显结果中最后一个单词作为Flag值提交
任务3. 服务漏洞扫描于测试(100分)
任务环境说明:
服务器场景:PYsystemWH1
服务器场景操作系统:Windows(版本不详)
- 通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH1进行系统服务及版本扫描渗透测试,并将该操作显示结果中3389端口的服务状态信息作为Flag值提交;
ms-wbt-server - 在msfconsole中用search命令搜索MS12020RDP拒绝访问攻击模块,并将回显结果中的漏洞披露时间作为Flag值(如:2012-10-16)提交;
2012-03-16
3.在msfconsole中利用MS12020RDP拒绝访问漏洞辅助扫描模块,将调用此模块的命令作为Flag值提交;
use
4.在第3题的基础上查看需要配置的选项,并将回显中必须要设置的选项名作为Flag值提交;RHOSTS
5.使用set命令设置目标IP(在第4题的基础上),并检测漏洞是否存在,运行此模块将回显结果中倒数第二行最后一个单词作为Flag值提交;
complete
6.在msfconsole中利用MS12010RDP拒绝访问攻击模块,将调用此模块的命令作为Flag值提交;use
7.使用set命令设置目标IP(在第6题的基础上)使用MS12020拒绝访问攻击模块,运行此模块将回显结果中倒数第一行的最后一个单词作为Flag值提交;completed
8.进入靶机关闭远程桌面服务,再次运行MS12020拒绝访问攻击模块,运行此模块将回显结果中倒数第二行的最后一个单词作为Flag值提交;
Unreachable/down
任务4. Web渗透测试(100分)
任务环境说明:
服务器场景:PYsystemWH4
服务器场景操作系统:未知
- 通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH4进行渗透测试,将该场景中Apache的版本号作为Flag值(例如:2.2.3)提交; nmap -sV 、nikto -h
- 通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH4进行渗透测试,将该场景中PHP的版本号作为Flag值(例如:5.2.14)提交;
Nikto -h - 通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH4进行渗透测试,将该场景中数据库的版本号作为Flag值(例如:5.0.22)提交;
Nmap -sV 、sqlmap -b、nikto -h - 通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH4进行渗透测试,将该场景的内核版本号作为Flag值(例如:2.6.18)提交;
包含/…/…/proc/version%00 、php://intup <?php system(‘uname -a’);?>
5.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH4进行渗透测试,将该场景桌面上222文件夹中唯一一个图片中的英文单词作为Flag值提交;(17分)
6. 通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH4进行渗透测试,将该场景 /var/www/html/目录中唯一一个后缀为.shtml的文件内容作为Flag值提交;
任务5. Windows操作系统渗透测试(100分)
任务环境说明:
服务器场景:PYsystemWH5
服务器场景操作系统:Windows(版本不详)
1.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH5进行系统服务及版本扫描渗透测试,并将该操作显示结果中445端口对应的服务版本信息字符串作为Flag值提交;(7分)
2.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH5进行渗透测试,将该场景网络连接信息中的DNS信息作为Flag值 (例如:114.114.114.114) 提交;(9分)
3.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH5进行渗透测试,将该场景桌面上111文件夹中唯一一个后缀为.docx文件的文件名称作为Flag值提交;(11分)
4.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH5进行渗透测试,将该场景桌面上111文件夹中唯一一个后缀为.docx文件的文档内容作为Flag值提交;(15分)
5.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH5进行渗透测试,将该场景桌面上222文件夹中唯一一个图片中的英文单词作为Flag值提交;(17分).
6.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH5进行渗透测试,将该场景中的当前最高账户管理员的密码作为Flag值提交;(20分)
7.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH5进行渗透测试,将该场景中回收站内文件的文档内容作为Flag值提交。(21分)
任务6. Linux操作系统渗透测试(100分)
任务环境说明:
服务器场景:PYsystemWH6
服务器场景操作系统:Linux(版本不详)
1.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH6进行系统服务及版本扫描渗透测试,并将该操作显示结果中21端口对应的服务版本信息字符串作为Flag值提交;(5分)
2.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH6进行渗透测试,将该场景/home/guest目录中唯一一个后缀为.pdf文件的文件名称作为Flag值提交;(7分)
3.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH6进行渗透测试,将该场景/home/guest目录中唯一一个后缀为.pdf文件的文件内容作为Flag值提交;(9分)
4.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH6进行渗透测试,将该场景/var/www目录中唯一一个后缀为.bmp文件的文件名称作为Flag值提交;(7分)
5.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH6进行渗透测试,将该场景/var/www目录中唯一一个后缀为.bmp的图片文件中的英文单词作为Flag值提交;(9分)
6.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH6进行渗透测试,将该场景/var/vsftpd目录中唯一一个后缀为.docx文件的文件名称作为Flag值提交;(8分)
7.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH6进行渗透测试,将该场景/var/vsftpd目录中唯一一个后缀为.docx文件的文件内容作为Flag值提交;(11分)
8.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH6进行渗透测试,将该场景/root目录中唯一一个后缀为.txt文件的文件名称作为Flag值提交;(21分)
9.通过本地PC中渗透测试平台Kali2.0对服务器场景PYsystemWH6进行渗透测试,将该场景/root目录中唯一一个后缀为.txt文件的文件内容作为Flag值提交。(23分)
任务7. 主机存活扫描渗透测试(100分)
任务环境说明:
服务器场景:PYsystemWH1
服务器场景操作系统:Windows(版本不详)
2.继续编辑命名为ScanAliveHost.py的Python程序文件,使该程序实现主机存活扫描渗透测试批量扫描目标网段存活主机的功能,填写该文件当中空缺的F2字符串,将该字符串作为Flag提交;
3. 继续编辑命名为ScanAliveHost.py的Python程序文件,使该程序实现主机存活扫描渗透测试批量扫描目标网段存活主机的功能,填写该文件当中空缺的F3字符串,将该字符串作为Flag提交;
4. 继续编辑命名为ScanAliveHost.py的Python程序文件,使该程序实现主机存活扫描渗透测试批量扫描目标网段存活主机的功能,填写该文件当中空缺的F4字符串,将该字符串作为Flag提交;
5. 继续编辑命名为ScanAliveHost.py的Python程序文件,使该程序实现主机存活扫描渗透测试批量扫描目标网段存活主机的功能,填写该文件当中空缺的F5字符串,将该字符串作为Flag提交;
6.继继续编辑命名为ScanAliveHost.py的Python程序文件,使该程序实现主机存活扫描渗透测试批量扫描目标网段存活主机的功能,填写该文件当中空缺的F6字符串,将该字符串作为Flag提交;
7. 继续编辑命名为ScanAliveHost.py的Python程序文件,使该程序实现主机存活扫描渗透测试批量扫描目标网段存活主机的功能,填写该文件当中空缺的F7字符串,将该字符串作为Flag提交;
(二)第二阶段任务书(300分)
假定各位选手是某电子商务企业的信息安全工程师,负责企业某些服务器的安全防护,该服务器可能存在着各种问题和漏洞。你需要尽快对该服务器进行安全加固,15分钟之后将会有其它参赛队选手对这些服务器进行渗透。
根据《赛场参数表》提供的第二阶段的信息,请使用PC的谷歌浏览器登录实战平台。
靶机服务器环境说明:
场景1:CentOS2019024(无法打开控制台操作该靶机,只能获取到该靶机的IP,选手需要通过其他方法进入靶机才能进行加固),服务器操作系统:CentOS(版本不详);
场景2:Windows2019024(无法打开控制台操作该靶机,只能获取到该靶机的IP,选手需要通过其他方法进入靶机才能进行加固),服务器场景操作系统:Windows(版本不详)。
注意事项:
1.不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;
2.Flag值为每台靶机服务器的唯一性标识,每台靶机服务器仅有1个;
3.靶机服务器的Flag值存放在/root/flagvalue.txt文件或C:\flagvalue.txt文件中;
4.在登录自动评分系统后,提交对手靶机服务器的Flag值,同时需要指定对手靶机服务器的IP地址;
5. CentOS2019024靶机服务器如下服务及端口不允许关闭:80、3306、7000-8000双向、8080;Windows2019024靶机服务器如下服务及端口不允许关闭:21、80、7000-8000双向;
6.系统加固时需要保证靶机对外提供服务的可用性,服务只能更改配置,不允许更改内容;
7.本环节是对抗环节,不予补时。
可能的漏洞列表如下:
1.服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
2.靶机服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的相关漏洞,利用此漏洞获取一定权限;
3.靶机服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相关漏洞,利用此漏洞获取一定权限;
4.靶机服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相关漏洞,与别的漏洞相结合获取一定权限并进行提权;
5.操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程代码执行的服务,并利用此漏洞获取系统权限;
6.操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢出漏洞的服务,并利用此漏洞获取系统权限;
7.操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的后门直接获取到系统权限。
评分说明:
规则1:每提交1次对手靶机服务器的Flag值增加2分,每当被对手提交1次自身靶机服务器的Flag值扣除2分,每个对手靶机服务器的Flag值只能提交一次;
规则2:系统自动启动违规检测和扣分机制,如发现如下违规行为,系统均给予自动扣分,每检测到一次违规行为扣除一次分数,扣分明细显示在违规记录中,计算在第二阶段总成绩中:
1)攻防阶段启用Flag检测机制,如发现Flag异常(譬如:删除、修改、移动、杀进程),记为一次违规行为,每次扣分3分;
2)攻防阶段启用服务端口检测机制,如发现关闭题目要求开启的端口,记为一次违规行为,每端口每次扣分1分;
3)攻防阶段靶机服务器IP地址为DHCP自动获取,不允许修改,如修改触发上述所有检测机制;
4)在加固时间后,选手自己关闭靶机服务器或被他人关闭,触发上述所有检测机制,且裁判员不予帮助重启。
规则3:第二阶段总分为300分,初始分为100分。在实际得分和大屏显示中,某选手得分可能会显示负分或者超过300分;凡是负分的,本阶段评判成绩一律为0分;凡是超过300分的,本阶段评判成绩一律为300分;0-300分的评判成绩保持不变。
五、评分标准
1.评分阶段
竞赛阶段 阶段名称 任务阶段 分值 评分方式
第一阶段
权重70% 单兵模式系统渗透测试 任务1 100 机考评分
任务2 100 机考评分
任务3 100 机考评分
任务4 100 机考评分
任务5 100 机考评分
任务6 100 机考评分
任务7 100 机考评分
第二阶段
权重30% 分组对抗 系统攻防演练 300 机考评分
2.第一阶段评分规则
规则1:第一阶段总分为700分,分为7个任务,每道题细分在赛题中标明;
规则2:系统自动评分和排名,显示在大屏幕上;
规则3:同分的选手会根据系统提供的答题时间进行排名,答题时间为最后一个正确FLAG值提交的时间,先提交者排名靠前。
3.第二阶段评分规则
规则1:第二阶段总分为300分,初始分为100分;
规则2:每提交1次对手靶机的FLAG值得分,每当被对手提交1次自身靶机的FLAG值扣分,每个对手靶机的FLAG值只能提交一次,得分和扣分的具体分值在赛题中标明;
规则3:系统自动启动违规检测和扣分机制,如发现如下违规行为,系统均给予自动扣分,每检测到一次违规行为扣除一次分值,扣分明细显示在扣分榜中,记录在第二阶段总成绩中:
1)攻防阶段启用FLAG检测机制,如发现FLAG异常(譬如:删除、修改、杀进程),记为一次违规行为,扣除相应分值;
2)攻防阶段启用服务端口检测机制,如发现关闭题目要求开启的端口,记为一次违规行为,扣除相应分值;
3)攻防阶段靶机IP参数不允许修改,如修改记为一次违规行为,扣除相应分值;
4)在加固时间后,选手自己关闭靶机或被他人关闭,均记为三次违规行为,扣除相应分值,且裁判员不予帮助重启。
规则4:选手的得分显示在大屏,某选手的显示成绩可能会显示负分或者超过300分;凡是负分的,本阶段“复核成绩”一律为0分;凡是超过300分的,本阶段“复核成绩”一律为300分;选手成绩排名次序保持不变,得分相同的选手根据“显示成绩”以及得分时间点不同而排名不同。
【注】
显示成绩:这是系统自动打出的分值,会显示在大屏幕上,分值可能是负值,可能是超过第二阶段满分300分的分值;
复核成绩:分值在0-300分之间,是裁判长根据系统导出的成绩进行修订,保证第二阶段成绩不影响其他阶段成绩。
4.整体合分规则
规则1:最终成绩由第一阶段成绩和第二阶段复核成绩相加得来,如果总分相同,以第二阶段复核成绩高低排序,第二阶段复核成绩高者靠前;
规则2:如果第二阶段复核成绩也相同,以第二阶段提交正确FLAG值(显示成绩)高低排序,显示成绩高者排名靠前;
规则3:第二阶段提交正确FLAG值(显示成绩)相同,以第二阶段提交最后一个正确的FALG时间排序,先完成者排名靠前。
5.成绩录入规则
规则1:成绩录入系统的分值不能相同;
规则2:同分选手,按照排名顺序,从最后一位选手开始,排名每靠前一位,增加0.01分录入系统。