如何从网络服务器检查套接字?

Posted

技术标签:

【中文标题】如何从网络服务器检查套接字?【英文标题】:How can I check a socket from a webserver? 【发布时间】:2021-12-21 12:39:42 【问题描述】:

我在做一个挑战(CTF 风格),我们得到的每一个都是一个 IP。

扫描该IP只打开一个端口。

如果我使用 netcat 连接到该 IP 和端口,我会在 CMD 中进行一种“跳舞”,最后会显示一条消息“检查套接字 12345”。

我需要再次了解真正的套接字是什么,因为我无法尝试连接到该套接字。

是否可以从特定端口连接到套接字?或者我只能从一个开放的端口建立连接,然后网络服务器会自动将我的连接重定向到一个套接字?

【问题讨论】:

这可能是port knocking 的变体,并且“Socket 12345”可能只是对 TCP(或可能是 UDP)端口 12345 的命名不佳的引用。使用您的示例,如果您尝试连接首先到 TCP 端口 12345 连接将失败。但是,如果您连接到神奇的始终打开的端口并显示“检查套接字 12345”,它将启动一个服务来侦听 TCP 端口 12345 上的连接,可能只持续接下来的 20 秒。如果在这 20 秒内没有收到任何连接,则服务将停止侦听该端口。这只是我的猜测。 试过了,但运气不好。那是 CTF IP,以防万一有人想尝试:172.104.226.52:1025。当我使用 Wireshark 分析数据包时,我看到了一些数字:1000... 2020... 4400... 我尝试使用 websocket 连接并将这些数字作为输入传递,但我也没有得到任何响应。 这可能只是一个恶作剧(称为“Rick-roll”),有人对您进行了恶作剧,而不是 CTF 的一部分。或者它可能是 CTF 中轻松但真实的一部分。 【参考方案1】:

您可以使用 netcat nc 及其 -p 选项来设置源端口。

Netcat 手册页说: -p 端口 本地端口号(端口号可以是单个或范围:lo-hi [含])

试试“nc -p 12345 dest_IP dest_port”

【讨论】:

您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何从网络服务器检查套接字?的主要内容,如果未能解决你的问题,请参考以下文章

如何通过套接字检查特定网络中的IP是否存在?

如何将网络摄像头帧从客户端发送到烧瓶服务器?

Unix网络编程的实现具体流程

如何在 Spring Boot 客户端应用程序中创建不共享底层网络连接的套接字

网络从套接字到Web服务器

示例:使用AsyncTask的Android双向网络套接字