中职网络安全赛题解析:A模块加固与B模块取证实战
2026/9/23 16:19:53 网站建设 项目流程

简介:这份文档面向备战全国职业院校技能大赛中职组网络安全赛项的选手与指导教师,聚焦2022年赛题A、B两个模块的解析答案,帮助读者理解基础设施加固与安全事件响应的标准解题思路。压缩包内为1个docx文件,约2.74MB,内容按模块A、B组织,涵盖登录安全加固、数据库安全策略、流量完整性、事件监控、防火墙策略、IP协议安全配置,以及主机发现与信息收集等任务的操作要点与答案说明。文档结合Windows与Linux双环境,给出密码策略、用户权限、端口封禁、SYN洪水防护等具体配置参考,便于对照赛题复盘与查漏补缺。目前已有3936人学习下载,适合需要系统梳理赛题解法、提升实操能力的中职网络安全竞赛选手使用。

1. 从一份中职赛题拆起:AB 模块到底考什么、能拿来练什么

如果你正在准备全国职业院校技能大赛中职组网络安全赛项,或者带学生打这个比赛,手里大概率已经攒了一堆「历年真题」压缩包,但真正打开逐题做过的没几套。这套 2022 年的 AB 模块解析答案就是那种「看着眼熟、动手就卡」的典型资料:A 模块考基础设施加固,B 模块考事件响应与数字取证,两块加起来 60 分,是整场比赛的基本盘。它不玩花活,考的全是 Windows 组策略、Linux PAM、MySQL 账户权限、iptables 规则、Nmap 扫描参数、Wireshark 流量回溯这些一线运维和安全岗天天碰的东西。适合两类人:一是备赛的中职选手和指导老师,需要一份能对着环境复现的标准操作路径;二是刚转网络安全、想用真实赛题练手感的入门者,拿它当靶场任务清单比刷纯理论题有用得多。下面我按 A、B 两个模块把关键任务拆开,把参数、命令和容易翻车的地方讲透。

2. A 模块基础设施加固:从 PAM 锁定到 SYN 洪水阈值

A 模块 20 分,六个任务覆盖登录安全、数据库、流量完整性、事件监控、防火墙和 IP 协议安全。分值不高但任务碎,每个小项都要求截图加文字说明,最后导出 PDF 提交。很多人丢分不是因为不会做,而是漏了截图或者参数写错一位。这一章把每个任务的操作路径和参数含义讲清楚。

2.1 登录安全加固:PAM tally2 与 Windows 密码策略

Linux 侧的登录失败锁定靠 PAM 的pam_tally2模块实现。赛题要求「一分钟内仅允许 4 次登录失败,超过锁定 1 分钟」,实际操作中答案给的是 deny=5、unlock_time=60,这里有个细节:deny 值设 5 意味着第 5 次失败才触发锁定,和「超过 4 次锁定」在计数口径上差一次,比赛时以答题卡为准,但理解这个差异能帮你在遇到变体题时不慌。

# 编辑 PAM 登录配置文件 vim /etc/pam.d/login # 在 auth 段加入 tally2 控制行 auth required pam_tally2.so deny=5 unlock_time=60 # 查看某用户的失败计数 pam_tally2 --user=user1 # 手动解锁用户(清零计数) pam_tally2 --user=user1 --reset

deny=5是失败次数阈值,unlock_time=60是锁定时长(秒)。注意pam_tally2在 CentOS 7 上默认就有,但如果系统用的是pam_faillock(CentOS 8 以后),配置方式完全不同,赛题环境是 CentOS 7 所以用 tally2。改完 PAM 后不要直接退出当前会话,另开一个终端测试,否则可能把自己锁在外面——这是血泪经验。

Windows 侧的最短密码长度 15 位,普通本地账户确实最多 14 位,但赛题正文里提到「安装 domain 后即可设置 15、16 位」,这其实是在提示你:如果环境里有域控,走域策略;没有域控就用net user或本地安全策略尽量往 14 位靠,截图时把设置界面截全。用户登录时间限制用net user user1 /time:M-F,9:00-18:00设置,查看用net user user1

# 设置 user1 仅周一至周五 9:00-18:00 可登录 net user user1 /time:M-F,9:00-18:00 # 查看当前登录时间限制 net user user1

关键目录权限收紧(system32、hosts、Program Files、Perflogs)的操作路径是:右键属性 → 安全 → 高级 → 更改所有者 → 取消继承 → 删除继承权限 → 只添加 Administrators 组并给读取和运行。hosts 文件在C:\Windows\System32\drivers\etc下,改完记得验证普通用户是否真的无法写入。

2.2 数据库与流量完整性:MySQL 降权和 HTTP 强制跳转

MySQL 安全策略有四个小项:以 mysql 普通账户运行服务、删除 test 库、改管理员用户名为 SuperRoot、用 MD5 加密 user1 密码。第一项在/etc/my.cnf[mysqld]段加user=mysql,这个默认配置里通常已有,但赛题要求你确认并截图。

# 编辑 MySQL 主配置 vim /etc/my.cnf # 在 [mysqld] 段确认或添加 [mysqld] user=mysql # 登录 MySQL 后执行 DROP DATABASE test; UPDATE mysql.user SET user='SuperRoot' WHERE user='root'; UPDATE mysql.user SET password=MD5('P@ssw0rd1!') WHERE user='user1'; FLUSH PRIVILEGES;

MD5()是 MySQL 内置函数,直接返回 32 位哈希串。改完用户名后要用FLUSH PRIVILEGES刷新权限表,否则不生效。注意改 root 用户名有风险,改完记得用新名字登录验证,别把自己关在门外。

HTTP 重定向 HTTPS 在 Windows 上一般用 IIS 的 URL 重写模块或绑定 HTTPS 证书实现。赛题要求证书颁发给 test.com 并通过https://www.test.com访问,操作路径是:IIS 管理器 → 绑定 → 添加 https 绑定 → 选择证书 → 再用 URL 重写规则把 http 请求 301 到 https。截图时要把证书信息和重写规则都截到。

2.3 防火墙与 IP 协议安全:iptables 规则和 SYN 攻击注册表

Windows 禁用 445 和 23 端口走高级安全防火墙的入站规则,新建端口规则 → 特定端口 → 阻止连接 → 命名完成。Linux 侧用 iptables:

# 禁用 23 端口(telnet) iptables -A INPUT -p tcp --dport 23 -j DROP # 禁止 ICMP ping iptables -A INPUT -p icmp --icmp-type 8 -j DROP # 保存规则(CentOS 7) service iptables save # 或 iptables-save > /etc/sysconfig/iptables

--icmp-type 8是 Echo Request 类型,DROP 后别人 ping 不通但本机还能 ping 出去。注意 iptables 规则重启后会丢失,必须保存。很多人配完不保存,重启后规则没了,比赛时如果裁判重启环境就翻车。

SYN 洪水防护在 Windows 注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters下新建三个 DWORD 值:SynAttackProtect=2TcpMaxPortsExhausted=5TcpMaxHalfOpen=500TcpMaxHalfOpenRetried=400。这几个参数分别控制 SYN 攻击保护开关、触发保护的端口耗尽阈值、半开连接数上限和重传半开连接数上限。改完注册表需要重启或至少重启 TCP/IP 服务才生效,截图时把注册表路径和值都截全。

3. B 模块事件响应与取证:Nmap 参数与 Wireshark 流量回溯

B 模块 40 分,是整场比赛分值最高的部分,考的是主机发现、信息收集、数据包分析和数字取证。题目形式是给一个场景和若干 Flag 问题,你通过工具操作找到答案。这一章把 Nmap 扫描参数和 Wireshark 分析路径拆开讲。

3.1 Nmap 扫描参数:从 TCP 同步扫描到 RPC 探测

B-1 任务全是 Nmap 参数题,考的是你对扫描类型的理解。TCP 同步扫描用-sS,不 ping 主机用-P0(或-Pn),UDP 扫描用-sU,滑动窗口扫描用-sW,RPC 扫描用-sR。这些参数在 Nmap 官方文档里都有,但比赛时要求你从扫描结果里数行取 Flag,所以不仅要会扫,还要会看输出。

# TCP SYN 扫描(半开扫描,速度快,不留完整连接) nmap -sS 172.16.1.100 # 跳过主机发现,直接扫描(目标禁 ping 时用) nmap -P0 172.16.1.100 # UDP 扫描指定端口 nmap -sU -p 53,111 172.16.1.100 # 滑动窗口扫描 nmap -sW 172.16.1.100 # RPC 扫描 nmap -sR 172.16.1.100

-sS是默认的 SYN 扫描,需要 root 权限;-P0在旧版 Nmap 里用,新版用-Pn-sU扫描 UDP 端口,速度慢但能发现 DNS、SNMP 等服务;-sW是滑动窗口扫描,通过 TCP 窗口大小判断端口状态;-sR是 RPC 扫描,专门探测 RPC 服务。比赛时题目会问「从下往上数第 4 行的服务器信息」,这要求你熟悉 Nmap 输出的行结构,建议平时多扫几遍,把输出格式记熟。

3.2 Wireshark 流量分析:从 pcapng 里挖出攻击链

B-2 任务给一个attack.pcapng文件,要求分析恶意 IP、扫描端口、获得的用户名密码、一句话木马密码、下载的文件名。这是典型的流量回溯题,核心思路是按协议过滤、按对话追踪、按关键字搜索。

# 用 tshark 命令行快速提取(Wireshark 自带) # 查看所有 HTTP 请求 tshark -r attack.pcapng -Y "http.request" -T fields -e http.host -e http.request.uri # 过滤特定 IP 的流量 tshark -r attack.pcapng -Y "ip.addr==172.16.1.102" # 提取 FTP 登录信息 tshark -r attack.pcapng -Y "ftp" -T fields -e ftp.request.command -e ftp.request.arg # 导出 HTTP 对象(在 Wireshark GUI 里:文件 → 导出对象 → HTTP)

在 Wireshark GUI 里,常用操作是:统计 → 对话 → 按 IP 排序找流量最大的可疑 IP;过滤tcp.port==5007看木马通信;追踪 TCP 流看明文传输的用户名密码;搜索flagpassword关键字。恶意 IP 通常是扫描行为最密集的那个,端口列表从扫描包的目标端口去重排序得到,用户名密码在 FTP 或 HTTP POST 里找,一句话木马密码在 POST 请求体里找,下载文件名在 HTTP 响应或 FTP 传输里找。

提示:pcapng 文件可能很大,先用capinfos看包数量和时长,再用显示过滤器缩小范围,不要一上来就翻几千个包。

4. 避坑与排查:赛题环境里最容易翻车的五个点

这一章单独列五个踩坑记录,每条按现象、原因、解决写。这些都是我在复现这套题时真实遇到过的,不是理论推演。

现象一:改完 PAM 后当前终端还能用,新开终端登录失败。原因:pam_tally2的计数是全局的,你之前输错的密码已经被计入,达到 deny 阈值后所有新会话都被锁。 解决:用pam_tally2 --user=root --reset清零计数,或者等 unlock_time 到期。改 PAM 前先确保有一个 root 会话保持连接。

现象二:iptables 规则配完当时生效,重启后全没了。原因:CentOS 7 默认用 firewalld,iptables 规则没有持久化。 解决:service iptables saveiptables-save > /etc/sysconfig/iptables,并确认iptables-services已安装并开机自启。如果环境用的是 firewalld,要用firewall-cmd --permanent加规则再 reload。

现象三:MySQL 改 root 用户名后无法登录。原因:UPDATE mysql.user改完没FLUSH PRIVILEGES,或者改完忘了新用户名。 解决:改之前先SELECT user,host FROM mysql.user;确认当前账户,改完立即FLUSH PRIVILEGES,用新用户名登录验证。如果已经锁死,用--skip-grant-tables模式启动 MySQL 重置。

现象四:Nmap 扫描结果和题目要求的行数对不上。原因:Nmap 版本不同输出格式有差异,或者扫描参数少了-n(不解析 DNS)导致多出几行。 解决:比赛时先跑一遍完整命令,把输出复制到文本编辑器里数行,从下往上数比从上往下数更稳定,因为底部通常是开放的端口列表。不确定时加-v看详细输出。

现象五:Wireshark 过滤后找不到 Flag,但题目说一定有。原因:过滤条件太窄,或者 Flag 在 TCP 流的分段里,单包看不到。 解决:先用ip.addr==可疑IP看全部流量,再追踪 TCP 流看完整会话。一句话木马密码通常在 POST 请求体的最后几个参数里,用http.request.method==POST过滤后逐个看。下载文件名在http.response的 Content-Disposition 头或 FTP 的 RETR 命令里。

5. 进阶用法:把赛题变成可复用的训练靶场

这套题的价值不止于「做一遍对答案」。我一般会把它拆成三个层次的训练:第一层是按题面复现操作,确保每个命令都能跑通、每个截图都符合要求;第二层是改参数做变体,比如把 PAM 的 deny 改成 3、unlock_time 改成 120,把 Nmap 扫描目标换成自己的虚拟机网段,把 pcapng 里的恶意 IP 换成另一个;第三层是脱离答案自己出题,比如给定一个加固后的环境,让你找出还有哪些没配到位的点。

具体做法是搭一个本地靶场:用 VMware 或 VirtualBox 开三台虚拟机,一台 CentOS 7 做 A 模块加固目标,一台 Windows Server 2008 做 Windows 侧任务,一台 Kali 做 B 模块的渗透机。网络设成 Host-Only,避免影响真实网络。然后按赛题任务清单逐项配置,每配完一项就用另一台机器验证效果。

训练层次操作内容验证方式
复现按题面命令逐条执行截图与答案比对
变体修改参数、IP、端口重新扫描/分析确认结果变化
出题自己设计加固方案和取证场景同学或同事交叉测试

进阶技巧方面,Nmap 可以结合--script做漏洞探测,比如nmap --script=vuln 目标IP;Wireshark 可以用tshark做批量分析,把多个 pcapng 的 HTTP 请求导出成 CSV 再筛选;iptables 可以写脚本批量下发规则,用iptables-restore一次性加载。这些在比赛里用不到,但实际工作中是常用手段。

从那以后我每次带学生练这套题,都强制走一遍「配完即验证」的流程:PAM 改完新开终端试登录,iptables 配完重启服务再测,MySQL 改完用新账户登一次,Nmap 扫完把输出存文件再数行。这套习惯比记住某个参数值更重要。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询