{ "topic": "network-attack", "type": "short_answer", "schema_version": "1.0.0", "generated": "2026-09-17T00:00:00+08:00", "questions": [ { "id": "sa-001", "type": "short_answer", "difficulty": 2, "tags": [ "网络攻防", "中间人攻击", "arp欺骗" ], "question": "请简要描述 ARP 欺骗(ARP Spoofing)攻击的原理,包括攻击者如何利用 ARP 协议的缺陷来实现中间人攻击。", "answer": "ARP 协议在设计时缺乏身份验证机制,主机收到 ARP 应答报文后会无条件更新本地 ARP 缓存。攻击者利用这一缺陷,向目标主机发送伪造的 ARP 应答报文,将网关的 IP 地址映射为攻击者的 MAC 地址,同时向网关发送伪造的 ARP 应答,将目标主机的 IP 地址映射为攻击者的 MAC 地址。这样,目标主机与网关之间的通信流量都会经过攻击者的主机,攻击者即可截获、篡改或丢弃数据包,实现中间人攻击。", "keywords": [ "ARP协议", "缺乏身份验证", "无条件更新", "伪造ARP应答", "MAC地址", "ARP缓存", "中间人" ], "scoring_rubric": "答出ARP协议无身份验证机制(2分);答出伪造ARP应答报文更新ARP缓存的过程(3分);答出双向欺骗使流量经过攻击者实现中间人(3分);表述清晰、逻辑完整(2分)。满分10分。", "explanation": "ARP 欺骗利用了 ARP 协议设计之初缺乏认证机制的缺陷。攻击者通过发送伪造的 ARP 应答报文,让目标主机和网关都将攻击者的 MAC 地址误认为对方的 MAC 地址,从而将双向流量引向攻击者,实现中间人攻击。回答时应涵盖协议缺陷、伪造报文过程和双向欺骗机制三个层面。", "source": null, "related": [] }, { "id": "sa-002", "type": "short_answer", "difficulty": 2, "tags": [ "网络攻防", "DNS劫持" ], "question": "什么是 DNS 劫持?请说明 DNS 劫持的常见实现方式,并列举至少两种防御措施。", "answer": "DNS 劫持是指攻击者通过篡改 DNS 解析过程,将用户请求的域名解析到错误的 IP 地址,从而将用户引导至恶意网站。常见实现方式包括:(1) 本地 DNS 劫持——修改受害者主机的 hosts 文件或 DNS 配置,使其指向恶意 DNS 服务器;(2) 中间人 DNS 劫持——在网络传输过程中截获 DNS 查询请求并返回伪造的 DNS 响应;(3) 权威 DNS 篡改——入侵 DNS 服务器直接修改域名记录;(4) DNS 缓存投毒——向 DNS 缓存服务器注入伪造的 DNS 记录。防御措施包括:使用 DNS over HTTPS (DoH) 或 DNS over TLS (DoT) 加密 DNS 查询;部署 DNSSEC 对 DNS 响应进行数字签名验证;使用可信的公共 DNS 服务器(如 8.8.8.8、1.1.1.1);定期检查本地 DNS 配置和 hosts 文件。", "keywords": [ "DNS解析", "篡改", "错误IP地址", "hosts文件", "DNS缓存投毒", "DNSSEC", "DoH", "DoT", "加密" ], "scoring_rubric": "准确解释DNS劫持概念(2分);列举至少两种实现方式并简要说明(4分);列举至少两种有效的防御措施(3分);表述准确完整(1分)。满分10分。", "explanation": "DNS 劫持通过篡改域名解析过程将用户引导至恶意网站。常见方式涵盖本地劫持(hosts文件/配置篡改)、传输层劫持(中间人DNS响应篡改)和服务端劫持(DNS服务器入侵/缓存投毒)。防御关键在于加密DNS查询(DoH/DoT)和签名验证(DNSSEC)。", "source": null, "related": [] }, { "id": "sa-003", "type": "short_answer", "difficulty": 3, "tags": [ "网络攻防", "端口扫描", "中间人攻击" ], "question": "请比较 TCP SYN 扫描(半开放扫描)和 TCP Connect 扫描(全连接扫描)的区别,包括工作原理、隐蔽性和适用场景。", "answer": "TCP Connect 扫描(全连接扫描)直接调用操作系统的 connect() 系统函数与目标端口完成完整的 TCP 三次握手。如果连接成功建立,说明端口开放;如果连接被拒绝(收到 RST),说明端口关闭。这种方式简单可靠,但会在目标系统日志中留下完整的连接记录,隐蔽性差。TCP SYN 扫描(半开放扫描)不完成完整的三次握手:扫描器向目标端口发送 SYN 包,如果收到 SYN/ACK 响应,说明端口开放,此时扫描器直接发送 RST 包断开连接,而不发送最终的 ACK;如果收到 RST 响应,说明端口关闭。由于连接从未完全建立,不会被大多数应用程序日志记录,隐蔽性较高。但 SYN 扫描通常需要原始套接字(raw socket)权限或管理员/root 权限。在适用场景方面,Connect 扫描适用于普通用户权限下对可靠性的要求较高的场景;SYN 扫描适用于渗透测试、红队演练等需要降低被发现概率的场景。", "keywords": [ "SYN扫描", "半开放", "Connect扫描", "全连接", "三次握手", "RST", "隐蔽性", "原始套接字", "日志记录" ], "scoring_rubric": "正确描述两种扫描的工作流程差异(4分);准确对比隐蔽性方面的区别及原因(3分);说明适用场景和权限要求(2分);表述条理清晰(1分)。满分10分。", "explanation": "SYN 扫描与 Connect 扫描的核心差异在于是否完成三次握手。SYN 扫描在收到 SYN/ACK 后发送 RST 断开,连接未完全建立,不会记录到应用日志中,隐蔽性高但需 root 权限;Connect 扫描通过系统调用完成完整握手,简单可靠但留下完整日志。回答时应从工作原理、隐蔽性、权限要求和适用场景四个维度进行对比。", "source": null, "related": [] } ] }