使用扫描查找 VPN

使用扫描查找 VPN

我知道 nmap 不知道如何识别某些 VPN 协议,但我需要一种方法来扫描端口并找到结果,这样我才知道该端口是 VPN。

答案1

OpenVPN 和大多数 VPN 目前正在与 ISP 和政府进行“永无止境的战争”,这些 ISP 和政府试图跟踪或阻止 VPN 流量以保持对互联网流量的控制。许多国家现在将 VPN 列为国家网络安全威胁。这里特别值得注意的是中国防火墙 (GFW)。

这就是我之前指出的 2011 年链接不再有效的原因: 如何在不使用 OpenVPN 客户端的情况下检查 OpenVPN 服务器是否正在监听远程端口?

OpenVPN 正在积极混淆其端口并努力抹去其存在的所有痕迹。 这就是您无法识别 OpenVPN 服务器正在监听的端口的原因。

一篇科学论文 OpenVPN 对 VPN 指纹开放 从 2022 年 8 月开始描述了一次识别 OpenVPN 开放端口的复杂尝试(并且读起来相当有趣)。

GFW 和 Tor 之间的战争就是目前在这场斗争中投入的努力的一个很好的例子。这篇论文说:

GFW 和 Tor 之间正在进行的军备竞赛已被广泛研究,最能代表审查和监视与规避工具之间的冲突。审查者首先封锁了 Tor 的网站和公共中继,而 Tor 则通过部署网站镜像和私人、未公开的桥接器来应对。接下来,审查者通过对 Tor 的 TLS 握手(例如密码套件)进行指纹识别,转而使用 DPI 进行封锁。Tor 使用可插拔传输 (PT) 混淆器(例如 Obfsproxy 和 meek)来掩盖握手。作为回应,审查者部署了主动探测来补充基于 DPI 的指纹识别,以检测 Tor 和某些混淆器。

本文提出了识别 OpenVPN 的新方法,尽管 nmap 当然不支持这些方法。

一些方法基于 OpenVPN 的行为以及使用各种制作的 ACK 包进行探测时的时间差异。

总结:OpenVPN 本身现在正在努力阻止您识别其端口。需要一个聪明的程序和丰富的 OpenVPN 知识才能启发式地识别端口。所有这些方法都不在您的能力范围内。

换句话说,您得到的答案:“12345 open”,是您所能期望的最多答案。“netbus?”部分只是 nmap 的一个不成功的猜测,正如您在问号中看到的那样。

答案2

端口不会主动告知正在运行什么服务。从技术上讲,端口将是 TCP 或 UDP 和一个数字。就是这样。之所以说是 NetBus,是因为它使用常用端口及其用途的字典并报告这一点。它知道端口 12345 传统上(或曾经)用于 NetBus(Wiki 如下)。

https://en.wikipedia.org/wiki/NetBus

想象一下自动扫描广播电台。当一个广播电台弹出时,您知道那里有一个广播电台,但除非您收听,否则您不知道哪个广播电台或哪个节目。这基本上就是端口扫描:只是扫描。它可以找到开放端口,但它不能(通常也不能)确定正在运行什么。它只能根据先前已知的信息进行猜测。

添加信息...来自https://technical-qa.com/how-does-nmap-know-what-service-is-listening-on-the-various-ports/

版本检测使用位于 nmap-services-probes 文件中的各种探测器来请求服务和应用程序的响应。Nmap 使用探测信息查询目标主机并分析响应,将其与各种服务、应用程序和版本的已知响应进行比较。

创建一个探测器可能会实现您所想的功能。这大概就是我在这里所能提供的全部内容了。

另外,看看https://nmap.org/book/vscan-fileformat.html

答案3

扩展@rfportilla的回答,我想提请你注意现有的nmap-service-probes文件。您会发现 nmap 确实已设置为检测 OpenVPN。不过有一个小问题:它位于以下(第一)部分:

# This is the NULL probe that just compares any banners given to us
##############################NEXT PROBE##############################
Probe TCP NULL q||
# Wait for at least 6 seconds for data.  It used to be 5, but some
# smtp services have lately been instituting an artificial pause (see
# FEATURE('greet_pause') in Sendmail, for example)
totalwaitms 6000
# If the service closes the connection before 3 seconds, it's probably
# tcpwrapped. Adjust up or down depending on your false-positive rate.
tcpwrappedms 3000

看来 OpenVPN 不再在连接时发送横幅,或者,从链接的问题来看,您的 OpenVPN 实例已激活 TLS 身份验证。

除非你的OpenVPN服务器在前6秒内自己发送一个可识别的横幅,否则现有的OpenVPN服务检测将不起作用。

Nmap 确实支持主动探测服务(发送某种对话框)。从文件中可以看出,这通常仅限于某些端口。在文件中,在 OpenVPN 的标准端口 1194 上定义了以下探测:

##############################NEXT PROBE##############################
# P_CONTROL_HARD_RESET_CLIENT_V2
Probe TCP OpenVPN q|\0\x0e87\xa5&\x08\xa2\x1b\xa0\xb1\0\0\0\0\0|
ports 1194,443,500
rarity 9
match openvpn m|^\0\x1a@........\x01\0\0\0\x007\xa5&\x08\xa2\x1b\xa0\xb1\0\0\0\0$| p/OpenVPN/
# No version info submitted; update to hard match when it's available
softmatch openvpn m|^\0\x1e@........\x02\0\0\0\0\0\0\0\x007\xa5&\x08\xa2\x1b\xa0\xb1\0\0\0\0\0\x0e@........\0\0\0\0\0|


##############################NEXT PROBE##############################
# P_CONTROL_HARD_RESET_CLIENT_V2
Probe UDP OpenVPN q|8d\xc1x\x01\xb8\x9b\xcb\x8f\0\0\0\0\0|
ports 1194,443,500
rarity 8
match openvpn m|^@........\x01\0\0\0\0d\xc1x\x01\xb8\x9b\xcb\x8f\0\0\0\0|s p/OpenVPN/
# INVALID-MAJOR-VERSION
softmatch isakmp m|^................\x0b\x10\x05\0\0\0\0\0\0\0\0\(\0\0\0\x0c\0\0\0\x01\x01\0\0\x05|

您不在端口 1194 上,因此这些主动探测不会“触发”。

相关内容