对运行未知应用程序的 TCP 端口进行黑盒测试

信息安全 渗透测试 模糊测试 tcp 黑盒子
2021-08-31 18:52:05

我正在寻找有关测试我发现在目标服务器上运行的服务的任何指导。我正在做一个“黑盒”渗透测试,而该公司是那些“我不想告诉你任何事情”类型的公司之一,因此他们不会告诉我们正在运行什么服务。

NMap 选择了一个开放端口并建议它是一个 SIP 服务,但是在测试了许多不同的 SIP 攻击/客户端之后,几乎可以肯定它不是(我正在测试的盒子也应该只是一个网络服务器)。

我之前没有太多模糊 TCP 端口的经验,从我发现的情况来看,你似乎需要先了解一些关于协议的信息,然后才能开始模糊测试(某种模板)。此外,还需要一个包含不同内容的“字典”来提供服务(这通常与您测试的应用程序类型相关)。如果我没有这两样东西,我该怎么办?

由于我对应用程序及其期望的内容一无所知,因此我似乎无法针对它运行任何东西。那是对的吗?我在这里遗漏了一些明显的东西吗?

编辑:要清楚,还有一个 Apache+Tomcat Web 服务器在 443 上运行,这是一个 linux 机器。这部分不是问题,因为我已经测试过了。它只是我不知道的另一个“随机”端口。

3个回答

你是对的:从技术上讲,模糊测试通常被认为是发送无效或随机的请求/数据,这意味着你知道你正在测试什么以“破坏”输入。某些术语(PDF)中,白盒模糊测试接近于前者(生成的输入),而黑盒模糊测试(随机输入)则是后者。

您正在尝试的最好描述为“黑盒测试”。这里的一般问题是,虽然一些协议(SMTP、IMAP)免费提供带有横幅的详细信息,或者一些(HTTP)对协议违规过于喋喋不休,但仍有许多协议需要神奇的协议握手(LDAP、RPC 等等) .

再试nmap一次,但版本检测变成了 11(实际上只有 9,但​​没关系):

nmap -sV --version-all --all-ports -p $port $host

nmap -vvv -A --reason --script="+(safe or default) and not broadcast" -p $port $host

请注意第二个示例中的脚本前缀+-- 这意味着运行脚本,即使它们通常不会运行。无论如何,许多插件将无法运行,您需要仔细阅读输出。希望这会给你一些额外的信息(确保使用最近的nmap,脚本经常挂在旧版本中)。

你没有给出端口或 nmap 的原因,所以我无法解释为什么它断定它是 SIP,我最好的猜测是它要么响应一个GETOPTIONS请求,要么它是端口 5060 或 5061。

更一般的建议:

  • 应该很容易确认或否认公共 Web 服务器的存在,IPS 阻止您的情况下调低nmap速率。-T1-T0
  • 确保使用最近的工具扫描 SSL,以正确支持当前的 TLS 版本和选项

最后,还有其他应用程序扫描器,amap虽然没有那么全面nmap,但值得一试。

也许启动 Wireshark 并查看一个更流行的 Wireshark 协议解析器是否在您询问/探测服务时成功识别流量(即使用“解码为”功能强制 Wireshark 将数据包解码为特定协议)。

当前解剖器列表:http: //anonsvn.wireshark.org/viewvc/trunk/epan/dissectors/

如果它是一些私有协议,那么逆向工程可能是可能的 -> https://reverseengineering.stackexchange.com/a/2494

如果您面对一个带有未知服务的端口,您可以尝试amap此外,p0f也可以帮助你。这些工具专为收集信息而设计,因此您可以第一次尝试。