ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

网络安全技能大赛加固与取证实战要点

网络安全技能大赛加固与取证实战要点

简介:2021年全国职业院校技能大赛网络安全竞赛试题文档,面向职业院校网络安全参赛选手、指导教师及备赛训练人员,聚焦赛题环境中的安全加固与事件响应能力训练。内容围绕登录安全、数据库加固、流量完整性保护、事件监控、SSH、VSFTPD、IIS服务加固及防火墙策略展开,并延伸至网络安全事件响应、数字取证调查与应用安全模块,可作为赛前模拟、课堂实训和技能查漏补缺的参考。资源包共1个docx文件,大小约119KB,便于直接查阅与打印;文档以任务式条目组织,涵盖Windows与Linux双平台的密码策略、登录提示、会话超时、MySQL权限收敛、HTTP重定向HTTPS、审核策略、端口禁用与iptables访问控制等关键操作要点。已有959人学习,适合需要系统梳理竞赛任务与加固思路的读者按模块对照练习。

1. 从一道“禁 ping”题说起:网络安全技能大赛的卷面到底怎么给分

网络安全技能大赛的卷子摊开,最容易被轻敌的是模块 A:设个密码长度、删个默认库、禁掉 445 端口,全是一行命令的事,看着像送分。真坐到赛位上才发现,分数不按“你会不会”发,按“改没改到赛题要的那一行、服务有没有重启、值是不是题目要的那个数”发。禁 ping 那道题就是典型:命令谁都会敲,可/proc/sys/net/ipv4/icmp_echo_ignore_all后面该写 0 还是 1,写反了照样零分。

这场考试分两块。模块 A 考加固的执行力,六个任务把 Windows 和 Linux 的账户、数据库、服务、流量、监控、防火墙挨个过一遍;模块 B 考取证的追溯力,内存、流量包、渗透测试三条链,Flag 制,对就是分,错就是零。它适合正在备赛的学生、带队的指导者,也适合把这份卷子当 Windows/Linux 安全配置清单来练的人——照着做一遍,日常运维里那些“知道该改但没改过”的项,基本就补齐了。

2. 考点地图:A 模块六项加固、B 模块三条取证链,分都藏在“改到点上”

模块 A 的本质是“给一台已经跑起来的机器按清单上锁”。它的判分方式非常直接:每一项改动都有唯一落点——要么是某个配置文件的某个字段,要么是某个图形界面里的某个勾选框,要么是一条防火墙规则。赛题里凡是带“截图”字样的(比如把 user1 的登录时间配置界面截下来),不截就是白做,这不是格式要求,是得分点本身。

2.1 A 模块六个任务:从登录加固到防火墙策略

六个任务不是并列关系,是层层递进的关系:先管住“谁能进来”(A-1),再管住“进来能动什么”(A-2 数据库权限),然后管住“数据在路上别被截”(A-3 流量完整性),接着管“进来了要留痕”(A-4 事件监控),再往下是“别把不必要的服务暴露出去”(A-5 服务加固),最后是“在边界上直接掐断”(A-6 防火墙)。

任务平台考什么真正的判分落点
A-1 登录安全加固Windows + Linux密码长度、登录横幅、会话超时、登录时间段配置文件字段值、界面截图是否截到
A-2 数据库加固Linuxmy.cnf 运行账户、删默认库、改管理员名、密码加密、授权SQL 是否执行成功、权限是否只剩四类
A-3 流量完整性WindowsIIS 把 HTTP 重定向到 HTTPS访问 http 是否自动跳 https、证书是否被浏览器接受
A-4 事件监控Windows审核策略四类事件的成败组合勾选组合是否与题目逐字对应
A-5 服务加固Linux + Windowssshd 端口与 root 禁登、vsftpd 匿名与超时、IIS 日志与并发改完服务能不能起来、配置项是否真的生效
A-6 防火墙策略Windows + Linux禁 445、禁 23、禁 ping、只放行指定源 IP 连 22规则方向(入站)、规则顺序、有没有兜底 DROP

从时间分配上看,A-1 和 A-5 的分数密度最高,因为这两组每一项都横跨两个平台,Windows 走界面、Linux 走配置文件,等于一道题考两遍。A-2 和 A-6 的性价比最高,命令短、见效快,适合放在状态最好的时候做。A-3 和 A-4 则最容易被跳过,很多人是做到一半发现时间不够,直接把重定向和审核策略放掉——这两块恰恰是最好拿的,因为全是点界面。

2.2 B 模块三类 Flag:答案在证据里,不在配置里

模块 B 换了身份,你不再是上锁的那个人,而是事后进场的人:某台服务器被攻击了,团队要追源头、分析手法、找漏洞、写响应报告、清后门、恢复运行。题目给的环境里有 Windows 服务器,有若干台 Linux 虚拟机,还有一台渗透测试用的工作机,工具集齐全,剩下的全靠你自己从证据里把答案抠出来。

Flag 的格式是Flag{Xxxx123},提交时只交括号里的Xxxx123,不带Flag、不带大括号、不带空格。这个规则每年都有人栽,后面单开一节讲。

取证类别证据载体常见问法关键工具/命令
内存取证内存镜像用户密码、IP 与主机名、浏览器关键词、矿池地址、服务名内存分析框架的 hashdump、netscan、svcscan
流量分析pcapng 数据包FTP 账号密码、登录时间、第一条命令、下载文件名、文件内容抓包工具的协议过滤、流跟踪、对象导出
渗透测试靶机服务nmap 输出参数、数据库初始化命令、导入查看命令、CVE 公开时间、漏洞检测回显扫描器、渗透框架的 search 与 check

这三类题的共同点是:答案不依赖你的记忆,依赖你有没有把证据翻到底。内存题不会因为你背过命令就给分,流量题也不会因为你认识 FTP 协议就给分,必须把那一帧、那一条连接、那一个注册表键真正找出来。

2.3 真题演练:两道一分钟内的送分题

第一问:最小密码长度不少于 16 个字符(Windows 与 Linux)。

Windows 侧两条路,一条走界面:管理工具 → 本地安全策略 → 账户策略 → 密码策略 → “密码最小长度”改成 16。另一条走命令行,更快:

# 以管理员身份打开命令提示符 # /minpwlen 指定密码最小长度,改完立即生效,无需重启 net accounts /minpwlen:16 # 验证:输出的“最小密码长度”一行应为 16 net accounts

Linux 侧改的是/etc/login.defs里的PASS_MIN_LEN:

# PASS_MIN_LEN 控制新建密码的最短长度 # 注意 login.defs 只管新建/修改密码时的校验,已存在的旧密码不会因此失效 sed -i 's/^PASS_MIN_LEN.*/PASS_MIN_LEN\t16/' /etc/login.defs # 验证:确认字段确实是 16,且没有被注释掉 grep -E '^PASS_MIN_LEN' /etc/login.defs

这里有两个参数要看清。net accounts是即时生效的,不加任何重启参数;sed -i是就地改写,改写前最好cp一份原文,改坏了还能回退。验证动作不能省——grep的结果如果是空的,说明那一行被注释掉了(前面有#),只替换值不改注释符等于没改。

第二问:用户登录系统时要有 “For authorized users only” 提示信息。

Linux 侧要改两处,因为本地登录和远程登录走的是不同入口:

# 1) 本地终端登录横幅:改 /etc/issue echo "For authorized users only" > /etc/issue # 2) 远程 SSH 登录横幅:先准备 banner 文件,再在 sshd 配置里指过去 echo "For authorized users only" > /etc/ssh/banner # 在 /etc/ssh/sshd_config 中追加 Banner 指令 echo "Banner /etc/ssh/banner" >> /etc/ssh/sshd_config # 3) 重启 SSH 服务让配置生效 systemctl restart sshd

/etc/issue只影响本地 tty 登录,Banner才影响 SSH。很多人只改了前者,远程连上去一看没有横幅,就以为题目出错了。/etc/ssh/banner这个文件是自己新建的,路径要和sshd_config里写的完全一致,包括大小写。重启sshd之后如果连不上,先检查sshd -t的语法校验结果,再看/etc/ssh/banner的读权限——权限过宽或过窄都可能被拒绝读取。

Windows 侧走界面:本地安全策略 → 本地策略 → 安全选项 → “交互式登录:试图登录的用户的消息标题”和“消息文本”,把欢迎语填进去。标题和文本是两栏,题目只给一句话时,通常填到“消息文本”,标题可以留空或填同样的内容,但不要什么都不填。

3. A 模块加固动作:账户、数据库、服务、边界十一条落点的正确写法

这一章把模块 A 里最容易“改了一半”的动作逐个拆开。判断一个动作做没做对,标准只有一条:配置改完之后,用一个验证命令或一次实际访问把它复现出来。凡是验证不了的改动,在赛场上都等于赌。

3.1 密码策略与登录策略:四处配置、两个界面

账户这块一共四个动作,分布在两个平台上,互相不重叠,但很容易混。密码长度两处(Windows 的账户策略、Linux 的 login.defs),登录横幅两处(Linux 的 issue 与 sshd Banner、Windows 的安全选项),会话超时两处(Linux 的 ClientAliveInterval 与 ClientAliveCountMax、Windows 的远程桌面会话主机设置),再加上 Windows 独有的登录时间段限制。

会话超时是这部分最容易算错的一题。Linux 侧的两个参数是乘法关系,不是加法:

# ClientAliveInterval:服务器每隔多少秒向客户端发一次探测 # ClientAliveCountMax:连续多少次探测无响应就断开 # 两者相乘 = 实际断开的空闲时长,题目要求 ≤5 分钟,即 ≤300 秒 # 60 × 5 = 300,正好卡在上限,稳妥 sed -i 's/^#\?ClientAliveInterval.*/ClientAliveInterval 60/' /etc/ssh/sshd_config sed -i 's/^#\?ClientAliveCountMax.*/ClientAliveCountMax 5/' /etc/ssh/sshd_config systemctl restart sshd

参数含义要说清:ClientAliveInterval单位是秒,ClientAliveCountMax是次数,乘积才是总时长。如果题目要求“小于等于 5 分钟”,把这两个值设成 60 和 5 就是 300 秒,卡在边界上;设成 300 和 5 就是 1500 秒,直接超标。Windows 侧对应的是远程桌面会话主机设置里的“活动但空闲的会话时间限制”,或者 RDP-Tcp 属性 → 会话 → 改写空闲会话限制,单位是分钟,填 5。

登录时间段限制这道题题干里特意写了“单机”和“域用户”两种情况,就是防止你用错方法。单机环境下一条命令搞定:

# /time 参数限定可登录的时间段 # M-F 表示周一到周五,9:00-18:00 为时间段,中间用逗号连接,不能有空格 net user "user1" /time:M-F,9:00-18:00 # 验证:输出的“允许登录时间”一行应显示为 M-F 9:00-18:00 net user "user1"

命令里的逗号是硬分隔符,写成M-F, 9:00-18:00(逗号后加空格)会报错。域环境走的是用户属性 → 账户 → 登录时间,图形化拖时间段,最小单位是小时,9:00 到 18:00 正好是整点,不用纠结半小时怎么办。题目要求截图时,截的是这个登录时间对话框,不是命令回显。

上面这些动作里,只有“登录时间段”是赛题明确要求截图的,其余都是改完就生效。

3.2 数据库加固:五连动作与必须补的 flush privileges

数据库这块五道题,题干给的命令其实都能用,但少了收尾动作,赛场上要补。第一道是让 MySQL 以普通账户运行,改的是/etc/my.cnf:

# 在 [mysqld] 段落里指定运行用户,避免 mysqld 以 root 身份跑 # 注意:必须在 [mysqld] 段内,写到别的段里不生效 sed -i '/^\[mysqld\]/a user = mysql' /etc/my.cnf # 验证:重启后看进程属主是不是 mysql systemctl restart mysqld ps -ef | grep mysqld

user = mysql这一行的位置很关键,写在[client]或[mysqld_safe]段里服务起不来。重启后如果服务挂掉,先看/var/log/mysqld.log,最常见的原因是数据目录属主和user参数指定的账户不一致。

剩下四道是纯 SQL:

-- 删除默认测试库,减少暴露面 DROP DATABASE test; -- 改管理员账户名,改的是 mysql 库的 user 表 UPDATE mysql.user SET user='SuperRoot' WHERE user='root'; -- 用内置加密函数重设 user1 的密码,注意用 password() 而不是直接 md5(password) 字段 UPDATE mysql.user SET password=PASSWORD('P@ssw0rd1!') WHERE user='user1'; -- 只给四类 DML 权限,不给 drop、不给 grant GRANT SELECT,INSERT,DELETE,UPDATE ON testdb.* TO 'user1'@'localhost'; -- 改完 user 表必须刷权限,否则内存里的权限表还是旧的 FLUSH PRIVILEGES;

参数和坑点要说明白。mysql.user表在旧版本里密码字段叫password,新版本改成了authentication_string,赛题环境的版本以实际为准,不确定就先DESC mysql.user;看一眼字段名。GRANT语句里'user1'@'localhost'的主机部分不能省,省了会变成%通配,权限范围直接放大。FLUSH PRIVILEGES是必须补的一条——UPDATE改的是磁盘表,权限系统读的是内存,不刷就等于没改。验证方式:SHOW GRANTS FOR 'user1'@'localhost';,输出里应该只有那四类权限。

3.3 服务加固:SSH 端口、vsftpd 匿名、IIS 日志与并发

SSH 两道题是连着的。第一道把端口从 22 改成 2222,第二道禁止 root 远程登录:

# 端口:把注释掉的 #Port 22 打开并改成 2222 sed -i 's/^#\?Port .*/Port 2222/' /etc/ssh/sshd_config # 禁止 root 直接远程登录:把 #PermitRootLogin yes 改成 PermitRootLogin no sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config # 语法校验再重启,避免改错导致 SSH 直接失联 sshd -t systemctl restart sshd

改完端口连不上,八成是三个原因:防火墙没放行 2222、SELinux 没给新端口打标签、sshd_config里Port出现了两行(一行旧的 22、一行新的 2222)。第二个原因最隐蔽,命令是semanage port -a -t ssh_port_t -p tcp 2222。这也是为什么改之前先sshd -t——语法过了不代表能连上,但语法不过一定连不上。

vsftpd 两道题,一道禁匿名上传,一道设空闲超时:

# 禁止匿名登录(匿名登录一关,匿名上传自然也就没了) sed -i 's/^#\?anonymous_enable.*/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf # 无任何操作的超时:题目要求 5 分钟,单位是秒,写 300 # 常见翻车点:把 idle_session_timeout 写成 600,那是 10 分钟,直接不给分 sed -i 's/^#\?idle_session_timeout.*/idle_session_timeout=300/' /etc/vsftpd/vsftpd.conf systemctl restart vsftpd

配置项要分清主次:idle_session_timeout管的是“连着但不敲命令”的空闲时长,data_connection_timeout管的是数据传输连接、connect_timeout和accept_timeout管的是主动/被动模式的建连超时。题目说“无任何操作的超时”,对应的就是idle_session_timeout,其余几个是干扰项,改了不加分也不扣分,但写错值会被判为不符合。

IIS 两道题都在界面里。日志审计要开,格式选 W3C,字段只勾日期、时间、客户端 IP 地址、用户名、方法这五项,多勾少勾都要扣;最大并发连接数在站点的高级设置里,改成 1000。日志字段这块有个细节:W3C 格式下字段是逐项勾选的,勾完之后要到站点根目录下的logs文件夹确认生成了新的日志文件,光点确定不看结果,可能因为目录权限没写进去。

3.4 流量完整性与事件监控:URL 重写规则与审核策略的四个子类

HTTP 跳 HTTPS 这道题,判分点不在“有没有配”,在“访问 http 时会不会自动跳到 https,且证书不报错”。IIS 里装好 URL 重写模块之后,规则要加在站点级别:

<!-- web.config 中的重写规则:匹配所有 http 请求,301 永久跳转到 https --> <configuration> <system.webServer> <rewrite> <rules> <rule name="ForceHTTPS" stopProcessing="true"> <!-- 条件:{HTTPS} 为 OFF 时才跳,不加这个条件会造成无限重定向 --> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

三个参数要说清:{HTTPS}匹配^OFF$是防死循环的关键,少了它,https 请求也会被再跳一次,浏览器报“重定向次数过多”;redirectType="Permanent"对应 301,题目如果说“永久重定向”就必须写 Permanent,写 Found 是 302,语义不同;{R:1}是第一个捕获组,保留原始路径,不写就会把所有请求都跳到首页。证书按赛题给的域名签发并绑定到站点 443 端口,浏览器地址栏出现锁标识才算过。

审核策略这道题看着简单,实际上是逐字对答案:

子类别题目要求的成功/失败组合
审核登录事件成功 + 失败
审核特权使用仅成功
审核策略更改成功 + 失败
审核进程跟踪成功 + 失败

路径是计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 审核策略。这里唯一的坑是“审核特权使用”只要求成功,很多人顺手把失败也勾上,结果与题目不符。勾完之后建议用auditpol /get /category:*复核一遍,界面上的勾选状态有时候不刷新。

3.5 真题演练:防火墙四问的规则写法

防火墙这块的题,判断对错的标准不是“端口通不通”,是“规则写没写对方向、有没有兜底”。

禁用 445 端口(Windows)。高级安全 Windows Defender 防火墙 → 入站规则 → 新建规则 → 端口 → TCP → 特定本地端口填 445 → 阻止连接 → 应用于所有配置文件。方向必须是入站,出站规则拦不住外部连进来。

禁用 23 端口(Windows 与 Linux)。Windows 同上,端口换 23。Linux 一条命令:

# 在 INPUT 链追加一条规则,丢弃目标端口为 23 的 TCP 包 # -A 是追加到链尾,-I 是插入到链首,题目没特殊要求时用 -A 即可 iptables -A INPUT -p tcp --dport 23 -j DROP # 验证:列出规则,确认这条在 INPUT 链里 iptables -L INPUT -n --line-numbers

-j DROP是静默丢弃,对端会一直等到超时;-j REJECT会回一个拒绝包。题目说“禁用”,两者都算,但 DROP 更彻底。

禁止 ping 通(Linux)。三种解法,考场上选最稳的那一种:

# 解法一:临时改内核参数,重启失效,适合快速验证 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all # 解法二:写进 sysctl.conf 永久生效,改完必须执行 sysctl -p echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf sysctl -p # 解法三:用防火墙丢弃 icmp echo-request(类型 8) iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP

这里有个必须想清楚的细节:icmp_echo_ignore_all的值是 1 才表示“忽略所有 ICMP echo 请求”,也就是禁止 ping;写 0 是允许。题目要的是“禁止别人 ping 通”,值就必须是 1。赛题原文里的数字如果与这个语义相反,按语义走——判分看的是结果,不是你有没有照抄题面。

只允许 172.16.1.1 通过 SSH 连接(Linux)。这道题最容易只写一半:

# 第一步:放行指定源 IP 访问 22 端口 iptables -A INPUT -s 172.16.1.1 -p tcp --dport 22 -j ACCEPT # 第二步:其余所有来源访问 22 端口一律丢弃——缺了这条,题目等于没做 iptables -A INPUT -p tcp --dport 22 -j DROP # 验证:从非 172.16.1.1 的机器 ssh 过来应该超时 iptables -L INPUT -n --line-numbers

顺序是命门。ACCEPT那条必须在DROP前面,因为 iptables 从上往下匹配,命中即停。如果先写了DROP再写ACCEPT,那么 172.16.1.1 也会被丢掉,自己把自己锁在门外。

注意:iptables 规则重启后默认不保留。如果赛题环境重启过,改完记得用iptables-save落盘,或者确认持久化服务已经接管。

4. B 模块取证:内存、流量、渗透三类 Flag 的提取流程

模块 B 的分数结构是“全或无”,一道题十几分,答错就是零,没有过程分。所以做这类题的第一原则是:先确认答案形态,再去找证据。题目说“密码为 6 位”,那就是 6 位;说“以 ip:主机名 形式提交”,格式里那个冒号就不能少。

4.1 内存取证五问:从 hashdump 到 svcscan

第一问:拿到用户 admin 的密码并破解,密码 6 位。流程是先用内存分析框架确定镜像的系统版本,加载对应 profile,再导出用户哈希:

# 第一步:识别镜像信息,从输出里挑出对应的 profile volatility -f mem.img imageinfo # 第二步:用上一步的 profile 导出用户哈希表 volatility -f mem.img --profile=Win7SP1x64 hashdump # 第三步:把输出的 用户名:哈希 存成文件,用离线破解工具跑 6 位数字/小写字母掩码 john --format=nt hashes.txt --mask='?d?d?d?d?d?d'

参数含义:-f指定镜像文件,--profile必须与imageinfo给的一致,profile 错了后续所有命令都取不到数据。hashdump输出的是 NTLM 哈希,用掩码暴力破解 6 位纯数字是秒级的,纯小写字母也就几分钟。破解出来的明文直接就是 Flag,格式Flag{admin,密码}。

第二问:当前系统 IP 与主机名。IP 从网络连接记录里找,主机名要从注册表里挖:

# 查网络连接,从输出里筛出本机对外通信的地址 volatility -f mem.img --profile=Win7SP1x64 netscan # 主机名藏在注册表的 ComputerName 键里,先定位注册表 hive 的虚拟地址 volatility -f mem.img --profile=Win7SP1x64 hivelist # 用上一步给出的 SYSTEM hive 偏移,打印键值 volatility -f mem.img --profile=Win7SP1x64 printkey -o 0x偏移值 \ -K 'ControlSet001\Control\ComputerName\ComputerName'

netscan输出里会有大量0.0.0.0的监听记录,本机地址通常出现在“本地地址”列且不是回环。主机名只认ComputerName这一处,Hostname是 DNS 名,两者可能不同,题目要哪个就用哪个。

第三问:浏览器搜索过的关键词。内存里残留的是浏览器的历史缓存片段,用字符串提取配合关键词定位最快:

# 从镜像里提取可打印字符串,再筛搜索接口的特征串 strings mem.img | grep -iE 'search\?|q=|wd=' | head -50

搜索引擎的查询参数有固定特征,q=、wd=、word=都是入口。找出来的字符串是 URL 编码的,需要手工解码或者用python3 -c "import urllib.parse;print(urllib.parse.unquote('...'))"还原。

第四问:挖矿进程指向的矿池地址。挖矿的特征是“一个陌生进程长期保持着一条对外连接”,所以还是回到netscan,重点看外部地址和非常见端口(3333、5555、7777、14444 这类)。找到IP:端口直接提交,格式就是题目要求的Flag{ip:端口}。

第五问:恶意进程注册的服务名。用服务扫描:

# 列出内存中的所有服务,重点看二进制路径指向临时目录或用户目录的条目 volatility -f mem.img --profile=Win7SP1x64 svcscan

正常服务的可执行文件都在System32下,路径里出现Temp、ProgramData、Users\Public的基本就是后门注册的服务。服务名在输出的Service Name字段,只交名字,不带引号。

4.2 流量分析五问:一条 FTP 会话能挖出五个 Flag

流量题的五问是串在一根线上的,全程围绕同一个 pcapng 文件,所以第一问找对了,后面四问都是顺藤摸瓜。

第一问:FTP 账号密码。过滤ftp协议,看USER和PASS两条请求,或者直接跟踪 TCP 流:

# 抓包工具的显示过滤器,只看 FTP 的控制通道 ftp # 或者直接筛登录相关的命令,缩小范围 ftp.request.command == "USER" || ftp.request.command == "PASS"

FTP 是明文协议,USER后面跟用户名,PASS后面跟密码,中间用英文逗号拼起来提交。如果服务器回了230 Login successful,说明这组凭据是有效的,题目里“可成功登录”这个限定就是让你别拿失败的尝试去交。

第二问:登录时间。找到服务端返回230的那一帧,看它的时间列。抓包工具默认显示的是相对时间,需要把列设置改成“绝对时间”或者右键该帧看“到达时间”。格式是时:分:秒,看题目示例。

第三问:登录成功后执行的第一条命令。过滤ftp.request.command,按时间排序,230响应的下一帧通常就是客户端发的第一条命令,常见的是PWD、SYST、TYPE I、PASV。只交命令本身,不交参数。

第四问:下载的文件名。找RETR命令,后面跟的就是文件名。

第五问:下载的文件内容。三种取法,从稳到快:跟踪该数据流的 TCP 流、用“导出对象”功能把 FTP-DATA 通道的文件导出、或者从数据帧里把十六进制内容拼出来。导出的文件如果打不开,先看是不是二进制文件,直接file一下确认类型,再决定用文本编辑器还是十六进制查看器。

4.3 渗透测试五问:从 nmap 到 MSF 的完整链路

这五问考的不是“会不会打”,而是“工具的参数记不记得住”。题目问什么就答什么,多写一个字都算错。

第一问:nmap 以 xml 格式输出到指定文件,必须要用的参数。答案就是-oX。记忆方式:-o是输出,X是 XML。完整的命令形态是nmap -sV -oX result.xml 目标IP,但题目只要参数,就交-oX。

第二问:初始化 MSF 数据库的命令。msfdb init。这条命令只跑一次,跑完会创建数据库并写入配置,后续db_import才有地方导入。

第三问:导入扫描结果后查看主机数据的命令。hosts。在 MSF 控制台里,db_import /路径/result.xml把 xml 导入数据库,hosts列出所有已导入的主机,services列出服务。题目问“查看该数据要使用的命令”,交hosts。

第四问:搜索 CVE-2019-0708 后回显中的漏洞公开时间。执行search cve-2019-0708,回显表格里有Disclosure Date一列,把那里的

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

返回列表