2021年全国职业院校技能大赛(中职组)
比赛环境可以私信博主获得,网络安全竞赛讨论可以加扣群421865857
网络安全竞赛试题
(1)
(总分100分)
一、竞赛项目简介
“网络安全”竞赛共分A. 基础设施设置与安全加固;B. 网络安全事件响应、数字取证调查和应用安全;C. CTF夺旗-攻击;D. CTF夺旗-防御等四个模块。根据比赛实际情况,竞赛赛场实际使用赛题参数、表述及环境可能有适当修改,具体情况以实际比赛发放赛题为准。竞赛时间安排和分值权重见表1。
表1 竞赛时间安排与分值权重
模块编号 |
模块名称 |
竞赛时间 (小时) |
权值 |
A |
基础设施设置与安全加固 |
3 |
20% |
B |
网络安全事件响应、数字取证调查和应用安全 |
40% |
|
C |
CTF夺旗-攻击 |
3 |
20% |
D |
CTF夺旗-防御 |
20% |
|
总计 |
6 |
100% |
二、竞赛注意事项
1.比赛期间禁止携带和使用移动存储设备、计算器、通信工具及参考资料。
2.请根据大赛所提供的比赛环境,检查所列的硬件设备、软件清单、材料清单是否齐全,计算机设备是否能正常使用。
3.在进行任何操作之前,请阅读每个部分的所有任务。各任务之间可能存在一定关联。
4.操作过程中需要及时按照答题要求保存相关结果。比赛结束后,所有设备保持运行状态,评判以最后提交的成果为最终依据。
5.比赛完成后,比赛设备、软件和赛题请保留在座位上,禁止将比赛所用的所有物品(包括试卷等)带离赛场。
6.禁止在提交资料上填写与竞赛无关的标记,如违反规定,可视为0分。
竞赛内容
(本模块20分)
一、项目和任务描述:
假定你是某企业的网络安全工程师,对于企业的服务器系统,根据任务要求确保各服务正常运行,并通过综合运用登录和密码策略、数据库安全策略、流量完整性保护策略、事件监控策略、防火墙策略等多种安全策略来提升服务器系统的网络安全防御能力。本模块要求对具体任务的操作截图并加以相应的文字说明,以word文档的形式书写,以PDF格式保存,以赛位号作为文件名.
二、服务器环境说明
Windows 用户名:administrator,密码:123456
Linux 用户名:root,密码:123456
三、具体任务(每个任务得分以电子答题卡为准)
请对服务器Windows、Linux按要求进行相应的设置,提高服务器的安全性。
1.密码策略(Windows, Linux)
a.最小密码长度不少于16个字符。
Win+r输入secpol.msc>账号策略>密码策略>修改密码长度最小值即可
2.登录策略(Windows, Linux)
a.在用户登录系统时,应该有“For authorized users only”提示信息;
Win+R>本地策略>安全选项>修改交互式登陆:试图登陆的用户的消息标题
b.远程用户非活动会话连接超时应小于等于5分钟。
3.用户安全管理(Windows)
a.设置user1用户只能在上班时间(周一至周五的9:00~18:00)可以登录,将user1的登录时间配置界面截图;
net user user1 /time:m-f,9am-6pm
b.在组策略中只允许管理员账号从网络访问本机。
Win+r输入secpol.msc>本地策略>用户权限分配>修改从网络访问计算机,删除除管理员账号以外的账号,并只设置管理员
4.以普通帐户mysql安全运行mysql服务,禁止mysql以管理员帐号权限运行;
在/etc/my.cnf中mysqld项下添加user=mysql配置为重启服务
5.删除默认数据库(test);
drop database test;
6.改变默认mysql管理员用户为:SuperRoot;
update mysql.user where user=”root” set user=” SuperRoot”;
7.使用mysql内置MD5加密函数加密用户user1的密码为(P@ssw0rd1!);
update mysql.user set password=md5(P@ssw0rd1!) where user=”user1”;
8.赋予user1用户对数据库所有表只有select,insert,delete,update权限。
grant select,insert,delete,update on *.* to ‘user1’@’localhost’;
9.对Web网站进行HTTP重定向HTTPS设置,仅使用HTTPS协议访问网站(Windows)(注:证书颁发给test.com 并通过https://www.test.com访问Web网站)。
10.将Web服务器开启审核策略
登录事件 成功/失败;
特权使用 成功;
策略更改 成功/失败;
进程跟踪 成功/失败;
Win+r输入secpol.msc>本地策略>审核策略
11.SSH服务加固(Linux)
a.修改ssh服务端口为2222;
b.ssh禁止root用户远程登录。
vim /etc/ssh/ssh_config>修改指定内容 >去掉注释>重启服务
12.VSFTPD服务加固(Linux)
a.vsftpd禁止匿名用户上传;
vim /etc/vsftpd/vsftpd.conf>去掉注释>将选项改为NO>保*任务说明:仅能获取Server8的IP地址
1.通过本地PC中渗透测试平台Kali对服务器场景Server8进行系统服务及版本扫描渗透测试,并将该操作显示结果中21端口对应的服务版本信息字符串作为Flag值提交;
首先用nmap 进行扫描指定21端口版本 然后用nmap -sS -n -p-进行扫描查看是否有后门
2.找到/var/www目录中的图片文件,将文件名称作为Flag值提交:
如果有后门进行赋权然后在网页里查看图片文件
3.找到/var/www目录中的图片文件,将图中的英文单词作为Flag值提交;
进入shell chmod 777 赋权 查看
4.找到/home/guest目录中的txt文件,将文件内容作为Flag值提交;
把目录下的txt文件赋权 直接查看就行
5.找到/root目录中的txt文件,将文件内容作为Flag值提交。
把目录下的txt文件赋权 直接查看就行
存退出>重启服务
b.设置无任何操作的超时时间为5分钟。
vim /etc/vsftpd/vsftpd.conf>去掉注释>将时间改为300>保存退出>重启服务
13.IIS加固(Windows)
a.开启IIS的日志审计记录(日志文件保存格式为W3C,只记录日期、时间、客户端IP地址、用户名、方法);
打开iis管理器,找到Default Web site>日志修改必要参数点击确定即可
b.为了减轻网站负载,设置网站最大并发连接数为1000。
Default Web Site 右键>管理网站>高级设置>设置最大并发连接数为1000
所有服务器开启防火墙,为防止勒索病毒攻击对防火墙进行加固策略:
14.Windows系统禁用445端口;
15.Windows系统禁用23端口;
新建规则>规则类型设置端口>协议和端口设置tcp和445或者23>操作设置阻止连接>配置文件设置所有>名称445或者30即可
16.Linux系统禁用23端口;
Iptables -A INPUT -p 23 -j DROP
Iptables -A OUTPUT -p 23 -j DROP
17.Linux系统禁止别人ping通;
18.为确保安全Linux系统禁止所有人通过ssh连接除了172.16.1.1这个ip
vim /etc/ssh/sshd_config 最后一行添加>AllowUsers 172.16.1.1>重启服务
(本模块40分,每个子任务4分)
一、项目和任务描述:
假定你是某网络安全技术支持团队成员,某企业的服务器系统被黑客攻击,你的团队前来帮助企业进行调查并追踪本次网络攻击的源头,分析黑客的攻击方式,发现系统漏洞,提交网络安全事件响应报告,修复系统漏洞,删除黑客在系统中创建的后门,并帮助系统恢复正常运行。
二、服务器环境参考(以实际赛题为准)
操作系统:Windows/Linux
三、PC机环境参考(以实际赛题为准)
物理机:Windows7或Windows10;
虚拟机1:Ubuntu Linux(用户名:root;密码:123456),安装工具集:Backtrack5,安装开发环境:Python3;
虚拟机2:Kali1.0(用户名:root;密码:123456);
虚拟机3:Kali2.0(用户名:root;密码:123456);
虚拟机4:WindowsXP(用户名:administrator;密码:123456)。
四、具体任务
任务说明:Flag格式:Flag{Xxxx123},括号中的内容作为Flag值,提交Xxxx123即可
*任务说明:仅能获取Server1的IP地址
(valotility!!!用这个工具)
1.从内存中获取到用户admin的密码并且破解密码,以Flag{admin,password}形式提交(密码为6位);
volatility -f name --profile=WinXPSP2x86 hashdump -y (注册表 system 的 virtual 地址 )-s (SAM 的 virtual 地址)
2.获取当前系统ip地址及主机名,以Flag{ip:主机名}形式提交;
volatility.exe -f victor_PC_memdump.dmp --profile=Win7SP1x64 netscan
3.获取当前系统浏览器搜索过的关键词,作为Flag提交;
看给的包,找浏览的关键词
Eg:volatility -f name --profile=WinXPSP2x86 iehistory
进到靶机里面,查看浏览器的历史记录,或者ctrl+H查看
4.当前系统中存在挖矿进程,请获取指向的矿池地址,以Flag{ip:端口}形式提交;
查看任务管理器,看进程、性能、(应用历史记录)、等等信息,找出来它占CUP啥的信息,占的最多的就是,再根据这些去找端口
5.恶意进程在系统中注册了服务,请将服务名以Flag{服务名}形式提交.
volatility -f name --profile=Win7SP1x64 hivelist
*任务说明:仅能获取Server2的IP地址
1.使用Wireshark查看并分析Server2桌面下的capture.pcapng数据包文件,找出黑客获取到的可成功登录目标服务器FTP服务的账号密码,并将黑客获取到的账号密码作为Flag值(用户名与密码之间以英文逗号分隔,例如:root,toor)提交;
Wirshark分析它给的wirshark包
用过滤条件过滤(ftp contains “230”)
过滤完了之后找信息
2.继续分析capture.pcapng数据包文件,找出黑客使用获取到的账号密码登录FTP服务的时间,并将黑客登录FTP的时间作为Flag值(例如:14:22:08)提交;
根据上题找到的包,再去找那个登录时间
3.继续分析capture.pcapng数据包文件,找出黑客成功登录FTP服务后执行的第一条命令,并将执行的命令作为Flag值提交;
根据上题找到的包,查看追踪流,找第一条命令
4.继续分析capture.pcapng数据包文件,找出黑客成功登录FTP服务后下载的关键文件,并将下载的文件名称作为Flag值提交;
过滤wirshark包,ftp-data,找长度最长的包,查看
5.继续分析capture.pcapng数据包文件,找出黑客成功登录FTP服务后下载的关键文件,并将下载的文件内容作为Flag值提交。
根据上题,过滤wirshark包,ftp-data,找长度最长的包,查看,查看完之后,用ftp登录下载
或者在kali里用sftp(它比ftp好)
*任务说明:仅能获取Server3的IP地址
1.通过本地PC中渗透测试平台Kali对靶机场景Server3进行系统服务及版本扫描渗透测试,以xml格式向指定文件输出信息(使用工具Nmap),将以xml格式向指定文件输出信息必须要使用的参数作为Flag值提交;
oX
2.在本地PC的渗透测试平台Kali中,使用命令初始化MSF数据库并将此命令作为Flag值提交;
msfdb init
3.在本地PC的渗透测试平台Kali中,打开MSF,使用db_import将扫描结果导入到数据库中,并查看导入的数据,将查看该数据要使用的命令作为Flag值提交;
hosts
4.在MSF工具中用search命令搜索CVE-2019-0708漏洞利用模块,将回显结果中的漏洞公开时间作为Flag值(如:2017-10-16)
提交;
Search CVE-2019-0708
Use 调用模块 输入info
5.在MSF工具中调用CVE-2019-0708漏洞攻击模块,并检测靶机是否存在漏洞,将回显结果中最后一个单词作为Flag值提交。
Check
B-4任务四:Python代码分析
*任务说明:仅能获取Server4的IP地址,Server4 FTP服务用户名:user,密码:123456
FTP服务器登陆账号密码获取文件,一定要注意当前目录剩下的文件,这种题应该比较简单不会很难一定要掌握一些之前考过的库和一些基础的知识点(一定要会)
1.完善Flag1.py文件,填写该文件当中空缺的Flag1字符串,并将该字符串作为Flag值提交;
2.完善Flag1.py文件,填写该文件当中空缺的Flag2字符串,并将该字符串作为Flag值提交;
3.完善Flag1.py文件,填写该文件当中空缺的Flag3字符串,并将该字符串作为Flag值提交;
4.完善Flag1.py文件,填写该文件当中空缺的Flag4字符串,并将该字符串作为Flag值提交;
5.将完善好的脚本文件执行,将执行成功后的回显内容作为Flag值提交。
*任务说明:Server5 用户名:administrator,密码:123456
参考p10上的内容,p10对应的5个信息隐写文件,具体思路可能与c语言有关,或者是按照ctf上的做题方法隐藏信息获取最终的flag文件。
1.找出文件夹1中的文件,将文件中的隐藏信息作为Flag值提交;
2.找出文件夹2中的文件,将文件中的隐藏信息作为Flag值提交;
3.找出文件夹3中的文件,将文件中的隐藏信息作为Flag值提交;
4.找出文件夹4中的文件,将文件中的隐藏信息作为Flag值提交;
5.找出文件夹5中的文件,将文件中的隐藏信息作为Flag值提交。
*任务说明:仅能获取Server6的IP地址
听别人说貌似与xss和upload漏洞有关
建议去练习xss-labs/upload-labs刷完基本上没问题。
1.通过URL访问http://靶机IP/1,对该页面进行渗透测试,找到Flag1作为Flag值提交;
2.通过URL访问http://靶机IP/2,对该页面进行渗透测试, 找到Flag2作为Flag值提交;
3.通过URL访问http://靶机IP/3,对该页面进行渗透测试, 找到Flag3作为Flag值提交;
4.通过URL访问http://靶机IP/4,对该页面进行渗透测试, 找到Flag4作为Flag值提交;
5.通过URL访问http://靶机IP/5,对该页面进行渗透测试, 找到Flag5作为Flag值提交。
*任务说明:仅能获取Server7的IP地址
1.通过本地PC中渗透测试平台Kali对服务器场景Server7进行系统服务及版本扫描渗透测试,并将该操作显示结果中445端口对应的服务状态信息字符串作为Flag值提交;
Nmap -sV -p -n 445 + ip
2.找到网络适配器信息,将首选DNS服务器地址作为Flag值提交;
1.445打进去,看适配器
2.nslookup
3.找到桌面上111文件夹中后缀为.docx的文件,将文档内容作为Flag值提交;
1.cd /Desktop dir
2.下载
4.找到回收站内的文档,将文档内容作为Flag值提交;
1.C:dir /a 进回收站 dir
2.下载
5.获取系统最高权限管理员账户的密码,将密码作为Flag值提交。
1.load mimikatz
kerbevos或wdigest
2.hushdump
ophcrack
*任务说明:仅能获取Server8的IP地址
1.通过本地PC中渗透测试平台Kali对服务器场景Server8进行系统服务及版本扫描渗透测试,并将该操作显示结果中21端口对应的服务版本信息字符串作为Flag值提交;
Nmap -sV -n -p 21 + ip
2.找到/var/www目录中的图片文件,将文件名称作为Flag值提交;
1.msfconsole
use linux/samba/is_known_pipename
2.ftp
3.有80端口的话,进去之后chmod 777提权,在网页上查看(ip+文件名)
3.找到/var/www目录中的图片文件,将图中的英文单词作为Flag值提交;
1.msfconsole
use linux/samba/is_known_pipename
下载
2.ftp下载
3.有80端口的话,进去之后chmod 777提权,在网页上查看(ip+文件名)
4.找到/home/guest目录中的txt文件,将文件内容作为Flag值提交;
1.msfconsole
use linux/samba/is_known_pipename
进路径查看
2.ftp下载
3.有80端口的话,进去之后移动路径,chmod 777提权,在网页上查看(ip+文件名)
5.找到/root目录中的txt文件,将文件内容作为Flag值提交。
1.msfconsole
use linux/samba/is_known_pipename
进路径查看
2.ftp下载
3.有80端口的话,进去之后移动路径,chmod 777提权,在网页上查看(ip+文件名)
B-9任务九:缓冲区溢出
首先可以通过ftp进去获取到靶机中的B0.py文件,进入靶机后不要首先拿到文件以后就直接退出,看看当前的ftp目录有没有别的其他文件可能会对剩下的题目有帮助,然后获取到文件以后尽量在kali Linux中填写.
盲猜用到的库: struct subprocess还有一些内置库。
大体思路是监听端口写入payload反弹获取shell基本上所有的溢出漏洞。
*任务说明:仅能获取Server9的IP地址,Server9 FTP服务用户名:admin,密码:123456
1.从靶机服务器场景FTP服务器中下载文件BO1.py,编辑该Python程序文件,使该程序实现对Server9进行缓冲区溢出渗透测试的功能,填写该文件当中空缺的F1字符串,将该字符串作为Flag值提交;
2.继续编辑命名为BO1.py的Python程序文件,使该程序实现对Server9进行缓冲区溢出渗透测试的功能,填写该文件当中空缺的F2字符串,将该字符串作为Flag值提交;
3.继续编辑命名为BO1.py的Python程序文件,使该程序实现对Server9进行缓冲区溢出渗透测试的功能,填写该文件当中空缺的F3字符串,将该字符串作为Flag值提交;
4.继续编辑命名为BO1.py的Python程序文件,使该程序实现对Server9进行缓冲区溢出渗透测试的功能,填写该文件当中空缺的F4字符串,将该字符串作为Flag值提交;
5.继续编辑命名为BO1.py的Python程序文件,使该程序实现对Server9进行缓冲区溢出渗透测试的功能,成功渗透后找到Server9回收站内的文档,将文档内容作为Flag值提交。
B-10任务十:远程代码执行
盲猜用到的库:subprocess,socket,time,os这些基础库
答题思路就是首先通过某一个库来连接到指定的ip+port然后再通过写入payload然后通过recv这样的函数发送指定的payload,然后代码中一定会存在一个地方写指令很有可能是通过os函数或者是cmd.exe /c + 指令。
*任务说明:仅能获取Server10的IP地址,Server10 FTP服务用户名:admin,密码:123456
1.从靶机服务器场景FTP服务器中下载文件RCE1.py,编辑该Python程序文件,使该程序实现对Server10进行远程代码执行渗透测试的功能,填写该文件当中空缺的F1字符串,将该字符串作为Flag值提交;
2.继续编辑命名为RCE1.py的Python程序文件,使该程序实现对Server10进行远程代码执行渗透测试的功能,填写该文件当中空缺的F2字符串,将该字符串作为Flag值提交;
3.继续编辑命名为RCE1.py的Python程序文件,使该程序实现对Server10进行远程代码执行渗透测试的功能,填写该文件当中空缺的F3字符串,将该字符串作为Flag值提交;
4.继续编辑命名为RCE1.py的Python程序文件,使该程序实现对Server10进行远程代码执行渗透测试的功能,填写该文件当中空缺的F4字符串,将该字符串作为Flag值提交;
5.继续编辑命名为RCE1.py的Python程序文件,使该程序实现对Server10进行远程代码执行测试的功能,成功渗透后找到Server10桌面上的文档,将文档内容作为Flag值提交。
找到自己的靶机,然后进行攻击和加固,不过找到自己靶机要从众多靶机中自己寻找,现没有体验,所有不知道。今年的靶机会存在在一个特定的网段中,找的方法可能是从1开始+队伍数=靶机群的位置,每个靶机漏洞不同,有的分高有的分低。
(本模块20分)
一、项目和任务描述:
假定你是某企业的网络安全渗透测试工程师,负责企业某些服务器的安全防护,为了更好的寻找企业网络中可能存在的各种问题和漏洞。你尝试利用各种攻击手段,攻击特定靶机,以便了解最新的攻击手段和技术,了解网络黑客的心态,从而改善您的防御策略。
请根据《赛场参数表》提供的信息,在客户端使用谷歌浏览器登录攻击机。
二、操作系统环境说明:
客户机操作系统:Windows 10
攻击机操作系统:Kali Linux
靶机服务器操作系统:Linux/Windows
三、漏洞情况说明:
1.服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
2.靶机服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的相关漏洞,利用此漏洞获取一定权限;
3.靶机服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相关漏洞,利用此漏洞获取一定权限;
4.靶机服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相关漏洞,与别的漏洞相结合获取一定权限并进行提权;
5.操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程代码执行的服务,并利用此漏洞获取系统权限;
6.操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢出漏洞的服务,并利用此漏洞获取系统权限;
7.操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的后门直接获取到系统权限。
四、注意事项:
1.不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;
2.Flag值为每台靶机服务器的唯一性标识,每台靶机服务器仅有1个;
3.选手攻入靶机后不得对靶机进行关闭端口、修改密码、重启或者关闭靶机、删除或者修改Flag、建立不必要的文件等操作;
4.在登录自动评分系统后,提交靶机服务器的Flag值,同时需要指定靶机服务器的IP地址;
5.赛场根据难度不同设有不同基础分值的靶机,对于每个靶机服务器,前三个获得Flag值的参赛队在基础分上进行加分,本阶段每个队伍的总分均计入阶段得分,具体加分规则参照赛场评分标准;
6.本环节不予补时。
找到自己靶机存在的漏洞进行加固,并保存截图说明说明有什么原因,一定会存在一些扫描就能攻击的一些漏洞,还有就是可能出现一些关于web的一些进阶题目,还有注意一些高端口可能用普通的sSsV扫描不出来。注意用-p-去扫描所有的端口。
(本模块20分)
一、项目和任务描述:
假定各位选手是某安全企业的网络安全工程师,负责若干服务器的渗透测试与安全防护,这些服务器可能存在着各种问题和漏洞。你需要尽快对这些服务器进行渗透测试与安全防护。每个参赛队拥有专属的堡垒机服务器,其他队不能访问。参赛选手通过扫描、渗透测试等手段检测自己堡垒服务器中存在的安全缺陷,进行针对性加固,从而提升系统的安全防御性能。
请根据《赛场参数表》提供的信息,在客户端使用谷歌浏览器登录需要加固的堡垒服务器。
二、操作系统环境说明:
客户机操作系统:Windows 10
攻击机操作系统:Kali Linux
堡垒服务器操作系统:Linux/Windows
三、漏洞情况说明:
1.堡垒服务器中的漏洞可能是常规漏洞也可能是系统漏洞;
2.堡垒服务器上的网站可能存在命令注入的漏洞,要求选手找到命令注入的相关漏洞,利用此漏洞获取一定权限;
3.堡垒服务器上的网站可能存在文件上传漏洞,要求选手找到文件上传的相关漏洞,利用此漏洞获取一定权限;
4.堡垒服务器上的网站可能存在文件包含漏洞,要求选手找到文件包含的相关漏洞,与别的漏洞相结合获取一定权限并进行提权;
5.操作系统提供的服务可能包含了远程代码执行的漏洞,要求用户找到远程代码执行的服务,并利用此漏洞获取系统权限;
6.操作系统提供的服务可能包含了缓冲区溢出漏洞,要求用户找到缓冲区溢出漏洞的服务,并利用此漏洞获取系统权限;
7.操作系统中可能存在一些系统后门,选手可以找到此后门,并利用预留的后门直接获取到系统权限。
四、注意事项:
1.每位选手需要对加固点和加固过程截图,并自行制作系统防御实施报告,最终评分以实施报告为准;
2.系统加固时需要保证堡垒服务器对外提供服务的可用性;
3.不能对裁判服务器进行攻击,警告一次后若继续攻击将判令该参赛队离场;
4.本环节不予补时。