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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Find-WSUS — 방어자가 CVE-2025-59287 사태 이후 자신의 WSUS 구성을 찾을 수 있도록 지원합니다. | Kitploit
도구/GitHubGitHub/mubix/find-wsus
Defensive ToolsVulnerability AnalysisConfiguration AuditingInformation GatheringSupply Chain Security
GitHubmubix/find-wsus

Find-WSUS

방어자가 CVE-2025-59287 사태 이후 자신의 WSUS 구성을 찾을 수 있도록 지원합니다.

저장소 보기
4639개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🧭 Find-WSUS

GPO(Group Policy Objects) 전반에서 WSUS 서버 구성을 발견하세요 — 숨겨진 GPP(Group Policy Preferences)도 포함합니다.

Find-WSUS는 보안 전문가와 시스템 관리자를 위해 설계된 PowerShell 스크립트로, GPO를 통해 구성된 모든 WSUS(Windows Server Update Services) 서버 URL을 식별합니다. 다음 두 가지 모두에서 구성을 감지합니다:

  • 관리 템플릿 정책(HKLM\Software\Policies)
  • XML 보고서에 숨겨진 GPP(Group Policy Preferences) 레지스트리 설정

⚠️ 이것이 중요한 이유

WSUS 서버는 고가치 인프라 자산입니다. 침해될 경우 공격자는 모든 도메인 가입 시스템에 악성 "업데이트"를 배포하여 전체 도메인 손상으로 이어질 수 있습니다.

🧨 CVE-2025-59287과 같은 취약점은 단 한 번의 WSUS 익스플로잇으로 공격자에게 도메인 전체 제어 권한을 부여할 수 있음을 보여줍니다.

Find-WSUS는 공격자가 발견하기 전에 조직이 모든 WSUS 구성 원본을 찾을 수 있도록 도와줍니다.


🔍 "숨겨진 WSUS" 문제

대부분의 스캔은 다음만 확인합니다:

root@kitploit:~
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate

그러나 많은 조직은 레지스트리 키를 직접 수정하는 GPP(Group Policy Preferences) 를 통해 WSUS 구성을 배포합니다. 이러한 설정은 표준 GPMC 보고서에 나타나지 않습니다.

✅ Find-WSUS는 표준 및 GPP 기반 구성을 모두 감지하여 환경에 대한 완전한 가시성을 제공합니다.


🧩 사전 요구 사항


⚙️ 사용 방법

1. 스크립트 가져오기

스크립트를 PowerShell 세션에 로드합니다:

root@kitploit:~
. .\Find-WSUS.ps1

2. 스캔 실행

가져온 후 Find-WSUS 함수를 사용할 수 있습니다.

예제 1: 현재 도메인 스캔

root@kitploit:~
Find-WSUS | Format-Table -AutoSize

예제 2: 자세한 출력

스캔 중 자세한 진행 메시지를 확인합니다:

root@kitploit:~
Find-WSUS -Verbose

예제 3: 다른 도메인 스캔

root@kitploit:~
Find-WSUS -Domain "child.mydomain.com" | Format-Table -AutoSize

예제 4: 이름으로 GPO 필터링

root@kitploit:~
Find-WSUS -Name "*Server*" -Verbose

예제 5: WSUS 호스트 고유 목록 가져오기

root@kitploit:~
$results = Find-WSUS -Domain "mydomain.com"
$results.Hostname | Where-Object { $_ } | Sort-Object -Unique

📦 매개 변수


🧠 작동 방식

1. 환경 검증

  • PowerShell이 64비트인지 확인합니다.
  • GroupPolicy 모듈이 설치되었는지 확인합니다.
  • 지정된 도메인에서 GPO에 액세스할 수 있는지 확인합니다.

2. 정책 스캔(STA Runspace)

  • COM 스레딩 오류를 방지하기 위해 STA runspace에서 Get-GPRegistryValue를 사용합니다.

  • 다음 위치에서 WUServer 및 WUStatusServer 값을 검색합니다:

    root@kitploit:~
    HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
    

3. 기본 설정 스캔(GPP XML)

  • Get-GPOReport -ReportType Xml의 XML 출력을 구문 분석합니다.
  • 네임스페이스(q2:Registry) 및 대체(*[local-name()='Registry']) 노드에서 숨겨진 WSUS URL을 찾습니다.
  • ...\Windows\WindowsUpdate 키를 포함하여 HKLM 아래에 기록된 값을 캡처합니다.

4. 결과 집계

  • 모든 결과를 단일 데이터 세트로 병합합니다.
  • 손쉬운 중복 제거를 위해 URL에서 호스트 이름을 추출합니다.
  • 깔끔하고 정렬된 개체를 반환합니다.

🧾 예제 출력(실제 형식)

이는 Find-WSUS의 실제 Format-Table -AutoSize 레이아웃 및 헤더를 반영하지만, 실제적인 샘플 호스트/URL 및 GPO 이름/GUID가 사용되었습니다.

root@kitploit:~
PS C:\Users\Administrator\Documents> Find-WSUS | Format-Table -AutoSize
[OK] Environment check passed: 64-bit PowerShell, GroupPolicy module loaded, GPOs accessible.


GPOName               Scope                 Key                                                    ValueName      Value                                    Hostname              GPOGuid                              
-------               -----                 ---                                                    ---------      -----                                    --------              -------                              
Default Domain Policy Policy (Computer)     HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate WUServer       https://wsus.corp.contoso.com:8531       wsus.corp.contoso.com 31b2f340-016d-11d2-945f-00c04fb984f9
Default Domain Policy Policy (Computer)     HKLM\Software\Policies\Microsoft\Windows\Windows\Update WUStatusServer https://wsus.corp.contoso.com:8531       wsus.corp.contoso.com 31b2f340-016d-11d2-945f-00c04fb984f9
Corporate WSUS Baseline Policy (Computer)   HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate WUServer       http://wsus01.contoso.com:8530           wsus01.contoso.com    57f2e3da-33c5-4a35-abce-c12a0b7f9823
Corporate WSUS Baseline Policy (Computer)   HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate WUStatusServer https://wsus01.contoso.com:8531          wsus01.contoso.com    57f2e3da-33c5-4a35-abce-c12a0b7f9823
Workstations - Windows Update (GPP) Preference (Registry) HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate WUStatusServer https://wsus-west.contoso.com:8531   wsus-west.contoso.com a1cde8b2-7f45-43f2-9db4-9c1e93a0e5c1

참고: 실제 환경에서는 :8531의 SSL과 :8530의 레거시 HTTP를 자주 볼 수 있습니다. 위 호스트 이름은 예시이며 실제 인벤토리로 대체하세요.


🚫 제한 사항

[!WARNING] 이 스크립트는 전체 인벤토리 시스템이 아닌 발견 도구입니다.

그룹 정책을 통해 정의된 WSUS 서버만 찾습니다. 다음은 감지하지 않습니다:

  • 도메인에 가입되지 않은 클라이언트 또는 수동으로 구성된 레지스트리
  • GPO 연결이 없는 비정상 WSUS 서버
  • Intune 또는 SCCM 정책으로 관리되는 시스템

✅ 권장 다음 단계

  1. 포리스트의 모든 도메인에서 Find-WSUS를 실행합니다.
  2. 출력을 중앙 인벤토리로 통합합니다.
  3. WSUSService를 실행 중인 머신에 대해 EDR 또는 자산 스캐너와 비교합니다.
  4. 불일치하거나 예기치 않은 WSUS 호스트를 조사합니다.

🧑‍💻 작성자 및 크레딧

숨겨진 WSUS 구성을 노출하고 패치 인프라 가시성을 개선하기 위해 보안 엔지니어가 개발했습니다.

📘 기여를 환영합니다! 호환성을 개선하거나 새로운 발견 방법을 추가하려면 풀 리퀘스트 또는 이슈를 제출하세요.

도구 다운로드
요구 사항설명
64비트 PowerShellCOM 호환성을 위해 필요합니다. 32비트 PowerShell에서 실행하면 스크립트가 자동으로 종료됩니다.
RSAT: 그룹 정책 관리 도구GroupPolicy 모듈에 필요합니다.

Windows 10/11: Settings → Optional Features → Add a Feature → RSAT: Group Policy Management Tools
Windows Server: Server Manager → Add Roles and Features → Features → Group Policy Management
권한스캔 대상 도메인의 모든 GPO에 대한 읽기 권한.
선택 사항: 관리자 권한일부 레지스트리 정책 쿼리는 승격 없이는 실패할 수 있습니다.
매개 변수설명기본값
-Name와일드카드를 사용하여 표시 이름으로 GPO를 필터링합니다. *이면 -All을 사용합니다.*(모든 GPO)
-Domain쿼리할 도메인을 지정합니다(다중 도메인 포리스트에서 유용).현재 사용자의 도메인
-Verbose자세한 스캔 진행 상황 및 결과를 표시합니다.꺼짐