
# CVE-2026-1731용 수동 취약점 스캐너 — BeyondTrust RS/PRA 사전 인증 RCE (CVSS 9.9). 교육 및 방어 목적으로만 사용하세요.
╔═══════════════════════════════════════════════════════════════╗
║ ║
║ CVE-2026-1731 ║
║ BeyondTrust RS/PRA Passive Vulnerability Scanner ║
║ ║
╠═══════════════════════════════════════════════════════════════╣
║ PASSIVE SCANNER — EDUCATIONAL & AUTHORIZED USE ONLY ║
║ ║
║ Performs passive fingerprinting via standard HTTP GET. ║
║ No exploit payloads sent. No WebSocket connections. ║
║ Only use against systems you own or are authorized to test. ║
║ ║
║ Methods: BRDF version extraction, /check_health, ║
║ static asset sizing, /get_mech_list API, ║
║ HTML analysis, copyright year, /nw probe ║
║ ║
║ Author: NetGuard 24/7 LLC ║
║ Web: https://netguard24-7.com ║
╚═══════════════════════════════════════════════════════════════╝
CVE-2026-1731용 수동 취약점 스캐너 — BeyondTrust Remote Support(RS) 및 Privileged Remote Access(PRA)의 인증 전 원격 코드 실행 취약점으로, 심각도(CVSS 9.9)가 높은 취약점입니다.
이 도구는 표준 HTTP GET 요청만 사용하여 취약한 BeyondTrust 인스턴스를 식별합니다. 악용 페이로드는 전송되지 않습니다. WebSocket 연결도 설정되지 않습니다. 인증 시도도 수행되지 않습니다.
업데이트: 2026년 2월 16일
핫픽스 BT26-02-RS 또는 BT26-02-PRA를 적용하면 감지된 BeyondTrust 인스턴스가 RS(v21.3 - 25.3.1) 또는 PRA(v22.1 - 24.X) 미만으로 표시되어 취약한 것으로 나타납니다. 핫픽스는 버전을 증가시키지 않기 때문입니다. 따라서 핫픽스(BT26-02-RS 또는 BT26-02-PRA)가 적용된 인스턴스는 취약한 것으로 표시됩니다. 기본 릴리스가 업그레이드되면 인스턴스는 취약하지 않은 것으로 표시됩니다." 공급업체에 따르면 공식 수정 사항은 Remote Support 25.3.2 이상 | Privileged Remote Access 25.1 이상에서 해결됩니다.
이 도구는 교육 및 공인된 방어 목적으로만 제공됩니다.
이 도구는 소유한 시스템 또는 명시적인 서면 승인을 받은 시스템에 대해서만 사용할 수 있습니다. 소유하지 않은 시스템을 무단으로 스캔하는 것은 컴퓨터 사기 및 남용법(CFAA) 및 기타 관할권의 유사한 법률을 위반할 수 있습니다.
저자는 이 도구의 오용에 대해 어떠한 책임도 지지 않습니다. 이 소프트웨어를 사용함으로써 귀하는 책임감 있게 그리고 모든 관련 법률 및 규정을 준수하여 사용하는 데 동의합니다.
CVE-2026-1731은 CVE-2024-12356(중국 APT가 미국 재무부를 침해하는 데 사용한 취약점)의 변종입니다. 둘 다 동일한 /nw WebSocket 엔드포인트와 기본 thin-scc-wrapper Bash 스크립트를 대상으로 합니다. CVE-2024-12356에 대한 BT24-10 패치는 숫자 무결성 검사를 추가했지만 remoteVersion 매개변수의 Bash 산술 평가를 방지하지 못했습니다. CVE-2026-1731이 이를 악용합니다.
이 스캐너는 8가지 수동 핑거프린팅 방법을 사용하여(실제 BeyondTrust 인스턴스에 대해 검증됨) 악용 트래픽을 전송하지 않고 제품 버전과 취약점 상태를 확인합니다.
방법 1(BRDF) 은 Metasploit 및 Nessus 플러그인 213456에서 사용하는 것과 동일한 기술입니다. BRDF가 정확한 버전을 반환하면 신뢰도는 정확입니다. 일부 25.x 인스턴스는 BRDF에서 버전을 제거합니다. 이러한 경우 방법 2-6이 점수화되고 상호 검증되어 버전 범위를 추론합니다.
/nw에 제작된 페이로드 전송git clone https://github.com/YOUR_USERNAME/cve-2026-1731-scanner.git
cd cve-2026-1731-scanner
chmod +x cve_2026_1731_scanner.py
python3 cve_2026_1731_scanner.py -t support.example.com -v
# 대상 목록 생성 (한 줄에 하나의 호스트)
cat > targets.txt << 'EOF'
support.example.com
pra.example.com
192.168.1.50
10.0.0.100:8443
remote-support.beyondtrustcloud.com
EOF
# 스캔 실행
python3 cve_2026_1731_scanner.py -f targets.txt --threads 20 -o results.csv --json results.json -v
usage: cve_2026_1731_scanner.py [-h] (-t TARGET | -f FILE) [-o OUTPUT]
[--json JSON_OUTPUT] [--threads THREADS] [-v]
options:
-t, --target TARGET 단일 대상 호스트명 또는 IP
-f, --file FILE 대상이 포함된 파일 (한 줄에 하나)
-o, --output OUTPUT 결과를 CSV 파일로 내보내기
--json JSON_OUTPUT 결과를 JSON 파일로 내보내기
--threads THREADS 동시 스레드 수 (기본값: 10)
-v, --verbose 대상별 상세 출력
대상 파일은 유연한 입력을 허용합니다 — 한 줄에 하나의 항목:
# 주석 지원 (#으로 시작하는 줄)
192.168.1.1
10.0.0.5
support.example.com
support.example.com:8443
https://support.example.com
http://support.example.com # HTTPS로 자동 업그레이드됨
support.example.com/login # 경로는 자동으로 제거됨
| 수준 | 의미 |
|---|---|
| 치명적 | BRDF를 통해 정확한 버전이 취약한 것으로 확인되거나, 여러 높은 신뢰도 신호가 25.x 미만을 나타냄 |
| 높음 | 취약할 가능성이 높지만 확인 신호가 적음; 수동 검증 권장 |
| 코드 | 의미 |
|---|---|
0 | 치명적 또는 높음 위험 발견 없음 |
1 | 높음 위험 발견 |
2 | 치명적 위험 발견 |
# 예: CI/CD 파이프라인 통합
python3 cve_2026_1731_scanner.py -f targets.txt -o results.csv
if [ $? -eq 2 ]; then
echo "CRITICAL: 취약한 BeyondTrust 인스턴스 발견!"
# 알림 트리거 / 온콜 페이지 / 티켓 열기
fi
[*] https://support.example.com 스캔 중...
상태: 취약 [치명적]
버전: 24.1.4 (BRDF /get_rdf 통해, 신뢰도: 정확)
회사: examplecorp
제품: Remote Support
신호: health=old, login.js=36458B, html=modern, ©2024
/nw: 도달 가능
스캐너가 취약한 인스턴스를 식별한 경우:
/nw WebSocket 엔드포인트에 대한 액세스 제한$() 또는 백틱이 포함된 비정상적인 remoteVersion 값으로 /nw에 대한 WebSocket 연결이 있는지 로그 확인풀 리퀘스트를 환영합니다. 추가적인 수동 핑거프린팅 방법이나 버전 상관 신호를 발견한 경우 이슈 또는 PR을 열어주세요.
MIT 라이선스 — 자세한 내용은 LICENSE를 참조하세요.
NetGuard 24/7 LLC https://netguard24-7.com
| 필드 | 세부 정보 |
|---|
| CVE | CVE-2026-1731 |
| CVSS | 9.9 (치명적) |
| 권고 | BT26-02 |
| 유형 | 인증 전 원격 코드 실행 |
| 벡터 | WebSocket 엔드포인트 /nw — Bash 산술 평가 주입 |
| 영향 | RS ≤ 25.3.1, PRA ≤ 24.3.4 |
| 수정 | RS 25.3.2+, PRA 25.1.1+ |
| 악용 | 2026년 2월 12일 기준 실제 환경에서 활발히 악용 중 |
| # | 방법 | 엔드포인트 | 추출 내용 | 신뢰도 |
|---|
| 1 | BRDF 버전 추출 | GET /get_rdf?comp=sdcust&locale_code=en-us | 바이너리 헤더에서 정확한 제품 버전 (예: 24.1.4) | 정확 |
| 2 | /check_health 응답 | GET /check_health | "Health Check: Succeeded" = 25.x 미만 / "Status: Primary" = 25.x 이상 | 높음 |
| 3 | 정적 자산 크기 | HEAD /js/login.js | 파일 크기: ~36K-39K = 25.x 미만 / ~12K = 25.x 이상 | 높음 |
| 4 | /get_mech_list API | GET /get_mech_list?version=3 | 회사 이름 + thin_rep_enabled 필드 (25.x 이상만) | 높음 |
| 5 | HTML 구조 | GET /login | XHTML 1.1 + BOMGAR = 25.x 미만 / HTML5 = 25.x 이상 | 중간 |
| 6 | 저작권 연도 | GET /login 푸터 | 2002-2024 = 25.x 미만 / 2002-2025 = 25.x | 중간 |
| 7 | 포털 정보 | GET /get_portal_info | X-Ns-Company 값 (공격자 정찰 지표) | — |
| 8 | WebSocket 프로브 | GET /nw (HTTP 전용) | 공격 표면 도달 가능성 확인 | — |
| 중간 | 25.x 이상으로 추론됨 (RS는 25.3.1까지 여전히 취약할 수 있음); BT26-02 패치 확인 |
| 낮음/정보 | SaaS 인스턴스(자동 패치됨), 패치된 버전 확인, 또는 안전 확인 |
| 신뢰도 | 출처 | 의미 |
|---|
| 정확 | BRDF /get_rdf | 바이너리에서 추출된 정확한 버전 문자열 (예: 24.1.4) |
| 높음 | 다중 신호 (3개 이상) | 3개 이상의 독립적인 신호가 모순 없이 일치 |
| 중간 | 다중 신호 (2개 이상) | 대부분의 신호가 일치하지만 일부 모호함 존재 |
| 낮음 | 불확정 | 상충되거나 불충분한 신호 |
| 필드 | 설명 |
|---|
target | 스캔된 URL |
is_beyondtrust | BeyondTrust 감지 여부 |
product_type | Remote Support 또는 Privileged Remote Access |
product_version | 정확한 버전 (BRDF에서 추출된 경우) |
version_source | 버전이 결정된 방법 |
version_confidence | 정확, 높음, 중간 또는 낮음 |
company_name | X-Ns-Company 값 (악용에 사용됨) |
copyright_year | 로그인 페이지 푸터에서 가져옴 |
health_check_type | old (25.x 미만) 또는 new (25.x 이상) |
login_js_size | /js/login.js 파일 크기 |
thin_rep_enabled | 25.x 이상에서만 존재 |
html_generation | legacy (XHTML) 또는 modern (HTML5) |
is_saas | SaaS (.beyondtrustcloud.com) 인스턴스 |
ws_endpoint_reachable | /nw 응답 여부 |
vulnerability_status | 평가 결과 |
risk_level | 치명적, 높음, 중간, 낮음 또는 정보 |
details | 사람이 읽을 수 있는 평가 세부 정보 |