2022年中职组网络安全国赛选拔赛赛题
首先在这里说明B模块的内容靶机都是有的购买专栏后私聊博主
2022****年业山东省技能大赛国赛选拔赛(中职组)
网络安全竞赛试题
(5)
(总分100分)
赛题说明
一、竞赛项目简介
"网络安全类"竞赛分为四个模块展开考核:A. 基础设施构建与强化措施;B. 包括网络安全事件应对、数据取证分析以及应用层面的安全防护;C. 攻击场景下的CTF竞技(CTF Flag Capture - 攻击);D. 防御策略下的CTF竞技(CTF Flag Capture - 防守)等项目形式进行综合评价。根据实际比赛情况调整赛题参数、表述内容及考试环境设置细节等具体内容,请以实际下发的比赛题目文件为准。具体时间安排及评分标准将发布于表格1中。
表1 竞赛时间安排与分值权重
| 模块编号 | 模块名称 | 竞赛时间(小时) | 权值 |
|---|---|---|---|
| A | 基础设施设置与安全加固 | 3 | 20% |
| B | 网络安全事件响应、数字取证调查和应用安全 | 40% | |
| C | CTF夺旗-攻击 | 3 | 20% |
| D | CTF夺旗-防御 | 20% | |
| 总计 | 6 | 100% |
二、竞赛注意事项
1.比赛期间禁止携带和使用移动存储设备、计算器、通信工具及参考资料。
为确保比赛顺利进行,请您核实以下各项内容:硬件配置、软件配置需求以及物资清单是否齐全,并确认所有计算机设备均处于正常运行状态
在执行任何操作之前,请通读每个部分的任务说明。各任务之间可能存在一定的关联性。
操作过程中必须定期保存关键数据信息,请确保及时完成答题任务。比赛结束后所有设备需处于正常工作状态系统将对所有参赛作品进行最终评测以上提交作品将作为评判基准
请在比赛结束时将所有用于本次比赛的比赛设备、软件以及赛题应予妥善保存于座位上,并不得将任何用于本次比赛的物品(包括但不限于试卷等)带离赛场。
6.禁止在提交资料上填写与竞赛无关的标记,如违反规定,可视为0分。
竞赛内容
模块A 基础设施设置与安全加固
(本模块20分)
一、项目和任务描述:
假如您是某企业网络安全工程师,请依据任务要求确保所有服务正常运行。您的工作内容包括综合运用用户安全管理和密码策略、本地安全策略、日志安全审计、数据库安全策略、Web安全加固以及防火墙策略等多方面的安全措施。具体操作步骤如下:首先对截屏结果进行详细标注;然后将相关分析报告整理成Word文档,并将其保存为PDF格式文件;最后将该文件命名为"赛位号+模块A"并提交作为评分依据。
二、服务器环境说明
Windows 用户名:administrator,密码:123456
Linux 用户名:root,密码:123456
三、具体任务(每个任务得分以电子答题卡为准)
A-1****任务一 登录安全加固(Windows)
1.密码策略
a.密码策略必须同时满足大小写字母、数字、特殊字符;

b.强制密码历史为5个密码;

c.密码最长存留期为45天;

d.最小密码长度不少于8个字符。

2.用户安全管理
a.禁止普通用户使用注册表编辑工具以及Ctrl+Alt+Del;

b.交互式登录时不显示用户名;

c. 配置文件及其它对象的访问权限,并明确安全权限范围仅授予administrators组。

d.禁止普通用户使用命令提示符;

e.设置不显示上次登录的用户名。

A-2****任务二 本地安全策略设置(Windows)
3.关闭系统时清除虚拟内存页面文件;

4.禁止系统在未登录的情况下关闭;

5.禁止软盘复制并访问所有驱动器和所有文件夹;

6.禁止自动管理登录;

7.禁止显示上次登录的用户名。

A-3****任务三 日志安全审计(Windows)
在本地安全策略范围内实施对Windows系统的目录服务访问审核,仅允许通过审核的失败操作。

请配置本地安全策略以启用对Windows系统的审核权限的使用,并对所有操作进行严格检查。

配置本地安全策略以执行Windows系统事件的验证流程,并确保所有成功与失败的操作都能被正确验证

配置本地安全策略中的账号权限管理措施时, 应确保所有成功与失败的操作都被审查.

该本地安全策略被配置为监控Windows系统的审核进程,并且只有在操作出现故障或失败的情况下才会进行审核。

A-4****任务四 数据库加固(Linux)
确保MySQL服务仅在非管理员账户正常运转,并禁止使用管理员权限。

14.删除默认数据库(test);

15.改变默认mysql管理员用户为:SuperRoot;

16.使用mysql内置MD5加密函数加密用户user1的密码为(P@ssw0rd1!);

17.赋予user1用户对数据库所有表只有select,insert,delete,update权限。

A-5****任务五 Web安全加固(Linux)
18.为了减轻网站负载,设置网站最大并发连接数为1000;

19.防止文件枚举漏洞枚举网络服务器根目录文件,禁止IIS短文件名泄露;

20.关闭IIS的WebDAV功能增强网站的安全性。

A-6****任务六 防火墙安全策略(iptables)
21.为确保安全Linux系统禁止所有人通过ssh连接除了172.16.1.1这个ip;
22.在工作时间,即周一到周五的8:30-18:00,开放本机的ftp服务给 192.168.1.0网络中的主机访问;
23.要求从ftp服务的数据下载请求次数每分钟不得超过 5 个;
24.拒绝 TCP 标志位全部为 1 及全部为 0 的报文访问本机;
25.配置iptables防火墙过滤规则,以封堵目标网段(172.16.1.0/24),并在两小时后解除封锁。
B模块相关题目:
抓包题目环境还是有的,购买博客后私聊我会给到。
利用Wireshark对PYsystem20191桌面上的capture2.pcap文件进行查看与分析,在对数据包的分析中提取该IP地址作为Flag字段。
172.16.102.128
通过Wireshark对PYsystem20191下的capturepcap数据包文件进行研究和分析(研究可能更贴切),并配置过滤逻辑以筛选出三次握手阶段中的SYN-RST报文以及发起攻击的源IP地址信息(当存在两个过滤条件时,则采用AND连接方式)
则Flag为tcp.ackandip.dst==172.16.1.1)提交;
tcp.connection.rstandip.src==172.16.102.128
对数据包 capture2.pcap 进行进一步分析,并识别出未被防火墙过滤的 Web 服务器扫描行为;然后将 OpenPort 字段中的未被拦截的端口号作为 Flag 值记录下来;如果存在多个端口,则需按照从小到大的顺序排列,并以英文逗号分隔(如:77,88,99,166,1888)。
80,1080,3306,3389
继续对数据包进行分析,并识别出针对Web服务器的网络攻击数据包;随后获取并提取Web服务器Nginx服务的版本号,并将其作为Flag值提交给相关系统。
1.11.5
深入分析数据包capture2.pcap,并识别出其中包含的针对Web服务器的攻击数据包;将该攻击行为所涉及的服务器网站数据库中的具体库名作为关键参数(Flag)反馈给系统安全团队
dvwa
深入研究数据包capture2.pcap的内容,并准确提取黑客在网站后台管理页面登录时所使用的全部登录信息(包括但不限于用户名和密码)。请将获取的所有账号信息标记为flag变量(其中用户名与密码之间以英文逗号分隔),并将该flag变量完整提交至系统指定位置
admin,password
对数据包capture2.pcap进行详细分析,在特定时间段内识别出黑客启动sql注入攻击的行为,并将其标记为攻击触发时间,并提交该时间戳作为Flag值(例如:16:35:14)
18:50:18
深入研究数据包capture2.pcap的特征,并识别出黑客停止利用sqlmap的具体时间点。请将这一时间点作为关键参数提交(如:16:35:14)。
18:50:23
系统漏洞利用与提权
任务环境说明:
- 在服务器场景中使用编号为PYsystem0033的配置项
- 该场景的操作系统设置为Ubuntu
- 用户名和密码均未指定
通过nmap工具对靶机系统执行扫描,并将该系统暴露的端口号按照升序排列作为FLAG(形式:[端口1,端口2…,endPort n])提交。
首先第一道题目的思路就是使用nmap来进行扫描:

Flag:[21,22,80]
利用指定的端口连接至目标系统,并通过低安全级别认证机制完成登录操作;在提交时,请提供正确的用户名和密码,并以FLAG格式发送出去。
看到弱口令那必须想到用密码来爆破:
现在我们来使用弱口令来爆破一下ssh的密码:

爆出了账号和密码:
Flag:[ubuntu,admin123]
请通过Kali渗透工具创建反弹木马,并在运行该木马命令后,在其输出结果中查找特定信息。
从中可以看出这是一个目标机器;因此,在本项目中我们所生成的所有木马都必须基于Linux架构进行设计。

Flag:Payload
对上述木马文件进行重新编写后发送至靶机系统中,在线激活该程序并借助MSF工具进行端口扫描,在捕获当前权限下的登录名后将其作为身份信息返回给系统
该题的主要解题思路主要包括以下步骤:首先通过SCP工具将生成好的木马程序传输至目标机器;接着利用SSH协议成功获取目标机器对应的SSH账号及其密码;随后在Kali操作系统上进行端口监听设置;最后运行木马程序即可获取控制权限。
首先使用scp来将木马传入靶机:

在kali机中进行监听:

最后使用刚刚爆破出的账号密码进行登录:

最后运行木马程序,完成最后的渗透:

成功拿到shell:

接着我们查看用户:

Flag:[ubuntu]
- 查看系统内核版本信息,将系统内核版本号作为FLAG(形式:[版本号])提交;(1分)
查看内核版本号:

Flag: 4.4.0
利用Kali渗透测试工具进行漏洞挖掘,并将其识别为FLAG(形式:[文件名]),作为最终成果反馈给相关系统管理团队。(1分)
我们在kali的/root的目录下找到提权文件:

Flag[upstream44]
通过上述漏洞源码获取靶机/root目录下的唯一.txt文件,并将其文件名为FLAG(格式如[文件名])提交
接下来我们将ubuntu用户进行提权:
首先我们使用刚刚拿到的shell来进行上传提权文件:

上传后我们使用ssh登录ubuntu用户:
看到提权文件:

我们使用gcc编译木马:

给文件提权运行:

看到提权成功。
我们接着到/root目录下看一下文件:

Flag:[dajvsev]
通过利用上述漏洞源码获取到靶机/root目录下的唯一.txt文件,并提取其内容作为FLAG(格式为[内容])进行提交。
下一道题目直接看文件:

Flag:[ flag{06474975137c13d577c8d75ce1a776f1}]
、
web信息收集
- 利用本地个人电脑配置的渗透测试平台KALI2020执行详细的网络扫描;调用开源网络探测工具NMAP发起全面的端口探测,并将873/tcp所对应的SERVICE信息作为FLAG提交。(25分)
rsync
在本地PC上部署渗透测试平台KALI2020,并对服务器环境进行扫描。随后,在确保安全的前提下利用NMAP工具对目标计算机进行全面端口扫描;接着将MySQL服务的PORT参数作为flag值提交给安全系统以获取进一步分析结果。(共得分为25分)
3306/tcp
基于本地PC配置的KALI2020渗透测试平台用于对服务器环境实施扫描;借助NMAP工具全面扫描目标主机;将目标主机数据库VERSION字段作为身份验证标志提交至安全平台
MySQL 5.5.65-MariaDB
利用本地PC配置的渗透测试平台Kali 2020对服务器环境展开探测,并调用NMAP工具进行全面扫描。在探测过程中,需识别目标机器的PHP版本信息,并将其作为标记值(flag)提供给后续处理流程。(25分)
5.4.16
任务三:数据库服务渗透测试
该系统通过本地PC上的入侵检测工具KALI2020对目标计算机实施了针对特定Web服务的安全漏洞利用攻击。在此次渗透测试中成功捕获了目标计算机的数据库信息,并以该表名称作为标记值提交给防御机制作为安全事件响应标记值(FID)。
iuser
利用本地PC配置的渗透测试平台KALI2020对目标计算机实施SQL注入攻击,并捕获其数据库信息;随后将这些用于存储WEB登录时使用的admin用户的明文密码的信息作为FLAG提交。(共19分)
123321
任务四:web服务渗透测试
利用本地计算机上的KALI2020渗透测试工具对目标计算机执行WEB渗透扫描。随后识别出目标网站HTTP响应中存在文件夹遍历漏洞,并主动发起请求以获取敏感信息。当文件传输至服务器后端成功时,在返回的响应正文内容中提取包含flag的信息文本,并将其作为flag供后续分析使用(例如:右键点击目标链接查看被下载的内容)。
文件上传成功, 点击预览
通过本地PC配置的KALI2020渗透测试平台对目标设备实施WEB渗透测试,在发现页面内存在的文件上传漏洞后发起攻击尝试。系统利用相关渗透手段成功获取WEB权限入口,并调用WHOAMI命令查询当前用户权限信息。随后将该信息作为FLAG参数提交至安全系统中。(25分)
apache
通过本地PC配置的渗透测试平台KALI2020执行目标机的Web渗透测试,在目标网页中识别并利用文件上传漏洞发起攻击,并通过相应的渗透手段成功获得Web权限入口。随后利用相关指令获取Linux用户ID为5的账户信息,并将其用户名作为Flag参数发送至Web界面请求认证。
sync
通过部署在本地PC上的KALI2020渗透测试平台对目标设备执行WEB穿透测试,在网页界面内识别并利用文件传输漏洞执行攻击行为。随后通过实施相应的渗透测试手段成功获得WEB权限入口,并运行预设指令以访问后台主界面文件内容。最后将该文档的第二行所有字符内容作为 FLAG 提交至系统。
(注:分数部分可以根据实际情况删减或保留)
/**
使用SSH私钥泄露提权获取主机权限
首先这是一个市赛考到的题目,需要学习ssh密钥相关的知识点。
首先我们看靶机:

发现就存在这三个端口,我们访问一下80端口:

发现仅仅限于这个界面,在尝试使用dirb进行渗透测试时也未见显著成效;因此决定转而采取措施从后门端口入手
使用nc连接发现给到这样的一串字符:

说明这个端口和网站有关,将端口放在网站上进行爆破:

经过爆破得到这么多目录
随后我们首先访问一下robots.txt:

经过访问没有发现什么可以的文件。
我们接着访问.ssh这个文件:

发现公钥私钥将其下载下来:
通过公钥查看用户:

进行连接:
发现这个私钥是带有密码的:

我们使用john这个工具来进行爆破:
首先使用ssh2john来进行生成文件:

生成文件:


随后我们使用字典进行爆破:
一般web常用的字典就是

由于文件被压缩为格式...在查看该文件时,则需要执行zcat命令。

成功得到密码。
现在我们进行登录:

成功登录。
尽管我们实现了渗透目标[1](即完成了渗透任务),但仍无法访问root目录下的文件[2](即未获得root级别的访问权限)。因此我们需要提升权限等级[3](即增加用户的管理员身份)。我们可以使用命令查询具有较高权限的目录[4](即通过命令获取具有高级访问权限的文件路径)。

该命令旨在提供详细的说明信息;其功能是禁止错误日志被显示出来
看到其中一个C脚本有点可疑:

解析:

通过对上述代码进行审查分析后可以观察到当用户的指令出现错误时系统会触发message程序运行由于message拥有Root权限并作为可执行程序运行因此我们的策略应当是通过溢出操作对该二进制程序进行干预从而实现预期的目标具体来说我们需要在命令行界面中运行read_message命令并输入"Simon"这一特定信息以便使系统将该请求识别为有效操作

针对该代码进行溢出操作。向read_message程序中注入超过20个字符的信息,并确保其前五个字符需满足特定判断条件并与字符串Simon一致即可。攻击 payload 为:SimonAAAAAAAAAAAAAAA/bin/sh从而引导执行者进入 /bin/sh 目录以获取权限提升

在此时机遇下, 我们顺利解锁了root权限, 随后采取了执行查看操作, 通过执行cat命令的方式实现了对flag.txt文件内容的展示

成功拿到了第三个flag文件:flag3{das_bof_meister}
C模块:
针对C模块的测试,在本次实验中相对不算太难的一台靶机上发现了编号为2.3.4的漏洞。然而,在本次实验中我仅需短短几秒钟即可获取目标机器IP地址,并无需编写或使用脚本, 可以借助Kali Linux上的一个便捷工具来完成这一操作。在之前的详细说明中, 我们不仅实现了满分成绩(200分), 还取得了194分的好成绩。
D模块:
这次D模块没有什么新的东西,唯一添加的就是添加了一个后门。
