发布时间:2026/7/24 21:14:32
【CTF-MISC-流量】从TCP协议中查询开放的端口到ARP欺骗中识别真实网关 题目KnightCTF 2026https://2026.knightctf.com/第一题 ReconnaissanceQuestion: Our IDS flagged some suspicious scanning activity in the first capture.The attacker was probing our network to identify potential entry points. Analyze the traffic and determine how many ports were found to be open on the target system.翻译我们的IDS在首次捕获时标记出了一些可疑的扫描活动。攻击者正在探查我们的网络以识别潜在的入口点。请分析这些流量并确定在目标系统中发现了多少个处于开放状态的端口。第二题 Gateway IdentificationDuring the initial reconnaissance, the attacker gathered information about the network infrastructure. We need to identify the vendor of the network device acting as the default gateway in this capture. This information could help us understand if any vendor-specific vulnerabilities were exploited.Flag Format KCTF{vendor_name}Use pcap1.pcapng to solve this challengeAuthor: TareqAhamed (0xt4req)翻译在初始侦察过程中攻击者收集了有关网络基础设施的信息。我们需要识别在此捕获中充当默认网关的网络设备的供应商。这些信息可以帮助我们了解是否有任何特定于供应商的漏洞被利用。解题第一题加载流量包筛选开放的端口TCP连接建立的三次握手过程第一次握手 客户端向服务器发送SYN包 tcp.flags.syn 1, tcp.flags.ack0 表示请求建立连接第二次握手 如果服务器的对应端口是开放的会返回SYNACK包 tcp.flags.syn 1, tcp.flags.ack1 表示接受连接请求第三次握手 客户端发送ACK包 tcp.flags.syn 0, tcp.flags.ack1 完成连接建立因此我们使用 tcp.flags.syn 1 and tcp.flags.ack1 搜索到的端口是开放的第二次握手如果不开放则返回RSTACK包用tcp.flags.reset1 and tcp.flags.ack 1进行搜索tcp.flags.syn1andtcp.flags.ack1识别攻击者与目标系统IP虽然识别出来了39个开放的端口但题目问的目标系统有多少个开放的端口所以我们要确定攻击者和目标系统的IPtcp.flags.syn1 and tcp.flags.ack 0 过滤出的是 TCP连接请求的第一个包。正常网络通信中设备通常只会向特定端口发送少量SYN包用于建立必要的连接。而攻击者在进行端口扫描时向同一目标IP的 大量不同端口 发送SYN包且通常只发送SYN包不完成完整的三次握手即没有后续的ACK包。tcp.flags.syn1andtcp.flags.ack0由此确认攻击者IP为192.168.1.104目标系统IP为192.168.1.102筛选开放的端口时 加上攻击者和目标系统的IP精确统计目标系统对攻击者的SYNACK响应只关注目标系统192.168.1.102对攻击者192.168.1.104的响应SYNACK包的源端口就是目标系统上开放的端口tcp.flags.syn1andtcp.flags.ack1andip.src192.168.1.102 andip.dst192.168.1.104发现开放端口为22SSH和80HTTP答案KCTF{2}第二题查看ARP数据包题目要确定网关的设备型号那我们需要确定网关的IP地址默认网关会发送ARP查询包来维护网络设备的MAC地址表ARP协议用于将IP地址映射到MAC地址所以我们查看ARP数据包了解网络设备的IP和MAC地址对应关系arp但发现多个设备的IP和MAC地址对应关系需要进一步筛选查找DHCP信息DHCP服务器在分配IP地址时会发送会在响应中包含默认网关信息。DHCP通信包含四个阶段需要区分客户端请求和服务器响应阶段数据包类型发送方接收方主要作用1. 发现DHCP Discover客户端广播寻找DHCP服务器2. 提供DHCP Offer服务器广播/单播提供IP地址等配置3. 请求DHCP Request客户端广播请求接受提供的配置4. 确认DHCP ACK服务器广播/单播确认配置并提供网关等信息dhcp只发现了DHCP Request数据包第3阶段关键特征Message type: Boot Request (1) 明确是客户端请求Source Address: 0.0.0.0 客户端还没有IP地址Destination Address: 255.255.255.255 广播发送Requested IP Address (192.168.1.101) 客户端请求特定IP并不是我们想要的DHCP Offer或者DHCP ACK继续分析ARP请求模式arp.opcode1 表示这是ARP请求包询问谁拥有这个IP请告诉我你的MAC地址arp.opcode2 表示ARP响应包回答我拥有这个IP我的MAC地址是…arp.opcode1发现结果中存在两种情况大量重复的 Who has 192.168.1.100? Tell 192.168.1.1。解释 IP 地址为 192.168.1.1 的设备很可能是这个局域网的默认网关或路由器在持续、高频地询问 192.168.1.100 的 MAC 地址。LiteonTechno_7e:74:6b (9c:2f:9d:7e:74:6b)与之前的攻击IP192.168.1.104的MAC地址相同且操作很像典型的网络侦察行为尝试扫描192.168.253.0/24和172.16.30/24等网段的活跃主机所以192.168.1.1是网关设备分析网关数据包通过查看网关IP192.168.1.1对应的MAC地址可以确定其供应商。所有来自192.168.1.1的数据包都使用相同的MAC地址88:bd:09:38:d7:a0供应商为NetisTechnol答案KCTF{Netis}附录ARP扫描原理流量包里包含非常经典的ARP扫描探测行为通常也被称为ARP Sweep或ARP Discovery。1. 攻击者的真实IP192.168.1.104为什么没出现在数据包里流量显示攻击者没有使用自己的真实IP。数据包中Tell 192.168.0.1是一个伪造的源IP地址Sender Protocol Address。为什么这么做这是一种ARP欺骗扫描或隐蔽扫描的手法隐藏自身攻击者192.168.1.104不想暴露自己的真实IP避免被日志记录或直接追踪。伪装成网关192.168.0.1通常是这个/24子网的默认网关地址。伪装成网关可能会让目标主机在回应时更“配合”或者为后续的中间人攻击做准备。试探网络结构通过观察哪些IP地址有ARP回应攻击者可以绘制出当前活跃主机的网络地图而且自己还不暴露。2. 为什么要发送这么多包询问 192.168.0.2 到 192.168.0. …这是主机发现阶段。攻击者想要知道在这个192.168.0.0/24网段里哪些IP地址是活跃的即有哪些机器在线。这些活跃IP地址对应的MAC地址是什么。原理ARP协议是局域网的“电话簿”。当一个设备想知道某个IP地址对应的MAC地址时它会广播一个“Who has [IP]? Tell [Sender IP]”的请求。如果该IP地址的设备在线它就会单播回复“Hey[IP] is at [MAC]”。所以攻击者通过依次询问.2,.3,.4… 直到.254来“敲门”。有回应的就是在线主机。3. 告诉 192.168.0.1攻击者能收到么答案是能收到但方式不是直接的。数据包是广播的注意看目标MAC地址是Broadcast(FF:FF:FF:FF:FF:FF)。这意味着这个ARP请求会被发送到整个局域网的所有设备。所有设备都能“听到”包括攻击者自己的网卡LiteonTechno_7e:74:6b以及网段内所有其他主机。但只有被问到的目标会回复当攻击者发出Who has 192.168.0.2? Tell 192.168.0.1时IP地址为 192.168.0.2 的主机如果在线会认为192.168.0.1伪造的网关在找它。于是.2主机会单播一个ARP回复给192.168.0.1。攻击者如何截获回复——这里就是关键因为192.168.0.1这个IP是攻击者伪造的实际拥有这个IP的网关如果存在可能会收到回复并感到困惑因为MAC地址不匹配或者直接忽略。为了确保能收到回复攻击者几乎必定同时开启了“混杂模式”和“ARP欺骗”。混杂模式让他的网卡接收所有流经网络的包而不仅仅是发给自己的包。这样他就能“偷听”到那些回复给192.168.0.1的单播包。ARP欺骗他可能已经或即将向网络发送虚假的ARP通告声称192.168.0.1的MAC地址就是他自己的MACLiteonTechno_7e:74:6b。这样一来所有想发给网关192.168.0.1的流量包括这些ARP回复实际上都会发到他的机器上。总结攻击者在做什么这是一个典型的、带有IP欺骗的主动ARP扫描。目的发现192.168.0.0/24网段内所有在线的主机及其MAC地址。手段伪造源IP (192.168.0.1) 以隐藏自身 (192.168.1.104)。发送大量ARP广播请求进行“地毯式轰炸”。后续可能网络侦察绘制目标网络拓扑。为更高级的攻击做准备如ARP欺骗中间人攻击、针对特定主机的漏洞利用等。

相关新闻

2026/7/24 21:14:32

PIX4 uORB 内部消息总线详解

PIX4 uORB 内部消息总线详解1、引言:什么是 uORB?2、 uORB 的核心概念与工作原理2.1 、主题(Topic)2.2、 发布者(Publisher)与订阅者(Subscriber)2.3、 消息(Message&…

2026/7/24 21:09:32

LinkSwift:九大网盘直链解析的终极技术实现指南

LinkSwift:九大网盘直链解析的终极技术实现指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 /…

2026/7/24 22:35:02

临床预测+医学RAG=结构化EHR建模能力+医学大模型应用能力(六)

第八篇 医学预测模型的全面评估 8.1 区分度指标:AUROC, AUPRC, C-statistic 8.1.1 为什么 AUC 不是全部 在第六篇中,我们用 AUROC 作为模型性能的标尺,顺利筛选出了最优的 LightGBM 模型。但如果你读过医学预测建模的规范论文,会发现往往同时报告四五种指标,单凭一个 A…

2026/7/24 22:35:02

嵌入式通信外设时序配置:从CAN、I2C到McBSP-SPI的实战解析

1. 通信外设时序:嵌入式系统稳定性的基石在嵌入式系统开发,尤其是工业控制、汽车电子和高端数字电源这类对实时性与可靠性要求极高的领域,我们常常把目光聚焦在算法优化、控制精度和功能实现上。然而,一个容易被忽视却至关重要的环…

2026/7/24 22:30:02

系统学习ROS第二章 :ROS通讯机制

机器人是一种高度复杂的通讯机制,在机器人上可以继承多种传感器。例如,雷达、相机 GPS等。为了解耦合,在ROS中每一个功能点都是一个单独的进程,每一个进程都是独立运行的。ROS进程是分布式的框架,这些进行还可以分布于…

2026/7/23 12:54:51

Unity与Python本地通信:基于Flask的跨语言数据交换实战

1. 项目概述:为什么我们需要一个本地通信服务器?在游戏开发、数字孪生、仿真训练等众多领域,Unity作为强大的实时3D内容创作平台,其核心逻辑通常由C#驱动。然而,当我们需要进行复杂的数据分析、机器学习推理、科学计算…

2026/7/24 0:03:10

不同品牌斜齿行星减速机如何替换?以PX与PAG系列为例

不同品牌斜齿行星减速机如何替换?以 PX 与 PAG 系列为例 一、系列对应不等于型号直接互换 PX 与 PAG 都属于斜齿、方法兰、输出轴式精密行星减速机,结构形式和应用方向具有对应关系。 原设备使用PX系列时,可以优先从PAG系列中寻找替换型号。但…

2026/7/24 0:03:10

jdk8 把list 扁平化成String 多个以逗号分隔

在 JDK 8 中&#xff0c;将 List 扁平化为以逗号分隔的 String&#xff0c;有几种非常简洁且高效的方法。&#x1f680; 推荐方案&#xff1a;使用 Collectors.joining()这是最标准的 Java 8 写法&#xff0c;适用于 List<String>。javaimport java.util.stream.Collecto…

2026/7/24 0:03:10

java 两个 long id 怎么合并成一个long id 并且不重复

“把两个 Long ID 合并成一个唯一的 Long ID&#xff0c;且保证不重复”这个需求&#xff0c;在 Java 里直接做数学上的“完美合并”是不可能的。因为两个 Long&#xff08;各 64 位&#xff09;要合并成一个 Long&#xff08;64 位&#xff09;&#xff0c;在信息论上是有损压…

2026/7/23 23:42:43

3个高效策略:快速掌握Axure中文界面配置

3个高效策略&#xff1a;快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…