Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
From-Foothold-to-Domain-Admin-Weaponizing-CVE-2025-54918-in-Real-World-DevOps — CVE-2025-54918 (Windows NTLM 취약점)의 시뮬레이션된 익스플로잇 및 완화. 탐지 스크립트, Ansible 패치, CI/CD 강화를 포함합니다. 하이브리드 클라우드 환경에서 낮은 수준의 액세스로부터 SYSTEM 권한 상승을 시연합니다. | Kitploit
도구/GitHubGitHub/mrk336/from-foothold-to-domain-admin-weaponizing-cve-2025-54918-in-real-world-devops
Privilege EscalationVulnerability AnalysisExploitationConfiguration AuditingPenetration TestingCloud SecurityDevSecOpsLearning & EducationIncident Response

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
Labs & Practice
GitHubmrk336/from-foothold-to-domain-admin-weaponizing-cve-2025-54918-in-real-world-devops

From-Foothold-to-Domain-Admin-Weaponizing-CVE-2025-54918-in-Real-World-DevOps

CVE-2025-54918 (Windows NTLM 취약점)의 시뮬레이션된 익스플로잇 및 완화. 탐지 스크립트, Ansible 패치, CI/CD 강화를 포함합니다. 하이브리드 클라우드 환경에서 낮은 수준의 액세스로부터 SYSTEM 권한 상승을 시연합니다.

저장소 보기
41211년 전아직 검토되지 않음

From-Foothold-to-Domain-Admin-Weaponizing-CVE-2025-54918-in-Real-World-DevOps

CVE-2025-54918(Windows NTLM 취약점)의 모의 익스플로잇 및 완화. 탐지 스크립트, Ansible 패치, CI/CD 강화를 포함합니다. 하이브리드 클라우드 환경에서 낮은 수준의 액세스에서 SYSTEM으로 권한 상승을 시연합니다.

Mark Mallia 지음

소개: 클릭에서 제어로 - CVE-2025-55226과 CVE-2025-54918 연쇄 공격

오늘날의 하이브리드 클라우드 환경에서 사용자 상호 작용과 시스템 손상 사이의 경계는 그 어느 때보다 얇아졌습니다. 이 글에서는 처음에는 무해해 보이는 그래픽 결함인 CVE-2025-55226(Windows 그래픽 커널의 경쟁 조건)으로 시작하여 CVE-2025-54918(중대한 NTLM 인증 우회)을 통해 완전한 SYSTEM 수준 제어로 확대되는 실제 공격 체인을 살펴봅니다.

이 두 취약점은 공격자가 단 몇 단계만에 원격 코드 실행에서 권한 상승으로 전환할 수 있는 방법을 보여줍니다. 하지만 더 중요한 것은, 수석 DevOps 엔지니어가 자동화, CI/CD 통합, 그리고 Infrastructure-as-Code를 사용하여 이러한 위협을 탐지, 완화, 모니터링할 수 있는 방법을 보여준다는 점입니다.

CVE-2025-55226 – Windows 그래픽 커널의 중요 원격 코드 실행

출시일: 2025년 9월 16일 (패치 화요일)

모든 Windows 사용자에게 중요한 헤드라인에 걸맞은 취약점

Microsoft의 최신 보안 권고는 Windows 데스크톱 및 서버 에디션 모두에서 사용되는 핵심 그래픽 커널인 win32k.sys의 심각한 결함을 식별합니다. 이 약점은 취약한 드라이버가 실행 중인 모든 시스템에서 공격자가 원격 코드 실행(RCE)을 트리거할 수 있는 경쟁 조건입니다. 이 드라이버는 GDI(Graphics Device Interface)의 핵심에 위치하기 때문에 커널 모드에서 임의 코드를 실행하는 데 악용될 수 있으며, 이는 전체 시스템을 손상시킬 수 있는 권한 수준입니다.

이것이 중요한 이유:

  • 일반 사무용 컴퓨터부터 고성능 서버에 이르기까지 모든 그래픽 사용자 인터페이스를 구동하는 핵심 하위 시스템을 대상으로 합니다.
  • 화요일에 출시된 패치는 즉각적인 수정을 제공하지만, 관리자가 적시에 이를 발견, 배포 및 모니터링하는 방법을 알고 있는 경우에만 가능합니다.

CVE-2025-55226이 중요한 이유는 무엇인가요?

  • 핵심 하위 시스템 – win32k.sys는 사용자 인터페이스를 표시하는 모든 Windows 시스템에서 사용됩니다.
  • 원격 코드 실행(RCE) – 이 결함은 인증된 공격자가 커널 모드에서 임의 코드를 실행할 수 있게 하여, 신속하게 완화하지 않으면 전체 호스트를 손상시킬 수 있습니다.
  • 실제 관련성 – 많은 최신 데이터 센터는 대시보드 렌더링 및 고처리량 그래픽 워크로드 관리를 위해 이 드라이버에 의존합니다. 따라서 단일 패치 화요일 수정은 소규모 기업과 대기업 모두에게 가치가 있습니다.

PowerShell 탐지 스크립트

다음 스니펫은 레지스트리에서 현재 win32k.sys 버전을 가져와 패치된 버전과 비교하고 불일치를 CSV 파일에 기록하여 Excel 또는 Tableau로 가져올 수 있도록 합니다.

# DetectWin32k.ps1 – 취약한 win32k.sys 확인
$target = 'Microsoft-Windows-GraphicsKernel'
$patchVersion = '6.0.22.7'   # 예상 패치 버전

$regPath = "HKLM:\SYSTEM\CurrentControlSet\Services\$target"
$currentVer = Get-ItemProperty $regPath | Select-Object -ExpandProperty ImagePath
$kernelFile = Join-Path $env:SystemRoot \System32\win32k.sys
$fileVersion = (Get-ChildItem $kernelFile).VersionInfo.FileVersion

if ($fileVersion -ne $patchVersion) {
    Write-Output "vulnerable: $currentVer (actual=$fileVersion, expected=$patchVersion)" | Out-File -Encoding ascii .\report.csv
}

작동 방식:

  1. 레지스트리에서 win32k.sys의 현재 버전을 읽습니다.
  2. 원하는 패치된 버전 문자열과 비교합니다.
  3. 불일치가 있으면 레코드를 기록합니다. 이후 보고 도구나 CI 단계에서 사용됩니다.

패치 배포를 위한 Ansible 플레이북

다음 YAML 파일은 Ansible에게 win32k.sys 업데이트를 적용하고 모든 대상 호스트에서 GDI 서비스를 다시 시작하도록 지시합니다.

---
- name: Deploy Windows graphics kernel patch
  hosts: windows_servers
  gather_facts: yes
  tasks:
    - name: Copy new win32k.sys
      copy:
        src: /tmp/patches/win32k.sys
        dest: C:\Windows\System32\
        mode: '0644'
        force: yes

    - name: Restart GDI service
      win_service:
        name: w32k
        state: restarted

작동 방식:

  1. 새 드라이버 파일을 인벤토리에 있는 모든 Windows 서버(windows_servers)에 푸시합니다.
  2. w32k 커널 서비스를 강제로 다시 시작하여 새 복사본이 즉시 적용되도록 합니다.

Grafana 대시보드 스니펫

시간 경과에 따른 GDI 개체 테이블 사용량을 시각화하는 간단한 패널을 만듭니다.

# grafana-dashboard.yml
apiVersion: 1
dashboard:
  title: “GDI Usage”
  panels:
    - name: “Objects in use”
      type: graph
      targets:
        - query: "SELECT timestamp, gdi_objects FROM win32k_stats WHERE $__timeFilter()"

작동 방식:

  • 사용자 정의 Windows 성능 카운터(win32k_stats)에서 메트릭을 가져와 Grafana 패널에 표시합니다. 사용량이 임계값을 초과할 때 알림을 설정할 수 있습니다. 이는 드라이버 회귀의 조기 지표입니다.

CI/CD 통합

Jenkins 또는 GitHub Actions 파이프라인에 경량 도구(예: wdfuzz)로 win32k.sys를 퍼징하여 패치를 테스트하는 단계를 추가합니다.

# .github/workflows/cve55226.yml
name: CVE-2025-55226 CI

on:
  push:
    branches:
      - main

jobs:
  test_and_deploy:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v3
      - name: Run fuzzer
        run: |
          wdfuzz.exe -t win32k.sys -c config.yaml
          if ($LASTEXITCODE -eq 0) { Write-Host "Fuzz passed" }
      - name: Deploy patch
        uses: ansible/[email protected]
        with:
          playbook: DetectWin32k.ps1

작동 방식:

  1. main 브랜치에 변경 사항이 있을 때마다 코드 베이스를 체크아웃합니다.
  2. win32k.sys를 시드하고 경쟁 조건 회귀를 확인하는 빠른 퍼즈 테스트를 실행합니다.
  3. 테스트가 성공하면 Ansible이 자동으로 패치를 배포합니다.

두 개의 Windows 버그가 하이브리드 인프라를 무너뜨릴 수 있는 방법

그래픽 엔진의 단일 결함에서 시작됩니다. 공격자는 위에서 시연된 것처럼 Windows 커널의 경쟁 조건을 악용하여 방어를 뚫고 원격으로 코드를 실행할 수 있는 방법을 찾습니다. 그것이 CVE-2025-55226입니다. 그러나 실제 위험은 NTLM 인증의 약점인 CVE-2025-54918과 결합할 때 드러납니다. 갑자기 공격자는 침입하는 것을 넘어 제어권을 가지게 됩니다.

그래픽 버그로 시작된 것이 완전한 권한 상승으로 발전하여 SYSTEM 수준 액세스를 제공합니다. 이 일련의 사건은 단지 이론에 불과하지 않습니다. 오늘날의 하이브리드 환경에서 취약점은 거의 고립되어 존재하지 않는다는 것을 상기시켜 줍니다.

CVE-2025-54918 – Windows NTLM 권한 상승

게시일: 2025년 9월 9일 (패치 화요일)

CVSS v3.1 점수: 8.8 (높음)
벡터: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
CWE: CWE-287 – 부적절한 인증
영향을 받는 구성 요소: Windows NTLM (New Technology LAN Manager)


결함은 무엇인가요?

이 결함은 NTLM이 인증 데이터를 검증하는 방식의 논리 오류입니다. 최소한의 권한으로도 네트워크를 통해 호스트에 도달할 수 있는 공격자는 시스템을 속여 SYSTEM 수준의 권한을 부여하도록 할 수 있습니다. 이는 워크스테이션이나 도메인 컨트롤러를 손상시킨 후 공격자가 애플리케이션을 설치하고, 기밀 파일을 유출하며, 새 관리자 계정을 생성할 수 있음을 의미합니다. 이는 본질적으로 대상에 대한 완전한 제어권을 가지게 됩니다.

이 취약점은 2025년에 증가하는 패턴의 일부입니다. 이미 두 개의 다른 NTLM 버그(CVE-2025-53778, CVE-2025-21311)가 보고되었습니다. 이 문제에 대한 Microsoft의 패치는 특정 해시 값을 잘못 수락하는 부정확한 비교 루틴을 수정합니다.


탐지 – PowerShell 스크립트

# 취약한 NTLM 설정이 있는 호스트 찾기
$target = "dc01.company.local"
Invoke-Command -ComputerName $target -ScriptBlock {
    Get-WmiObject -Class Win32_OperatingSystem | 
        Select-Object CSName, Version, BuildNumber
} | Out-File -FilePath C:\temp\nlm_detection.txt

# NTLM 정책 값 확인
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon" |
    Select-Object "LmCompatibilityLevel"

# 빠른 검토를 위해 CSV로 내보내기
$report = @()
foreach ($item in Get-WmiObject -Class Win32_Service | Where { $_.Name -eq "netlogon"}) {
    $report += [pscustomobject]@{
        Service   = $item.Name
        LmCompat  = (Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon").LmCompatibilityLevel
    }
}
$report | Export-Csv -Path C:\temp\nlm_report.csv -NoTypeInformation

이 스크립트는 현재 OS 빌드를 가져오고 Netlogon 키가 Microsoft에서 권장하는 값(3)으로 설정되었는지 확인한 후 결과를 쉽게 사용할 수 있는 CSV로 기록합니다.

완화 – Ansible 플레이북

---
- name: Patch NTLM for Windows servers
  hosts: windows_dc01, windows_dc02, windows_dc03
  gather_facts: true
  tasks:
    - name: Enable Netlogon compatibility level
      win_regedit:
        path: HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon
        key: LmCompatibilityLevel
        value: 3
        datatype: dword

    - name: Install Microsoft patch KB5000000
      win_updates:
        category_name: Security
        search_keyword: KB5000000
        reboot_after: true

모든 도메인 컨트롤러에 플레이북을 배포합니다. 이 작업은 정책이 올바르게 설정되고 최신 보안 업데이트가 설치되도록 하여 동일한 논리 오류가 더 이상 악용되지 않도록 합니다.

익스플로잇 시뮬레이션 – 실습 환경

Responder와 Impacket을 사용하여 실제 NTLM 릴레이 공격을 모방할 수 있습니다.

  1. Responder는 포트 445에서 SMB 트래픽을 수신 대기합니다.
  2. **Impacket의 secretsdump.py**는 인증 데이터를 캡처합니다.
  3. 캡처된 해시가 대상 시스템에 재전송되어 결함을 증명합니다.
# 공격 박스에서 Responder 시작
responder -i eth0 -f

# 피해자로부터 자격 증명 덤프
python3 impacket/secretsdump.py <victim-ip> <domain-admin-username>

# 대상에 해시 재전송
python3 impacket/ntlmrelay.py <victim-ip> <target-ip>

통제된 환경에서 스크립트를 실행하고 SYSTEM 수준 액세스 권한을 받는지 확인하세요.

CI/CD 통합 – 강화 검사

파이프라인에 NTLM 강화 작업을 추가합니다.

- name: Validate Netlogon compatibility level
  win_regedit:
    path: HKLM:\SYSTEM\CurrentControlSet\Services\Netlogon
    key: LmCompatibilityLevel
    value: 3
    datatype: dword
    state: present

# 새 패치가 적용될 때 트리거
- name: Reboot if required and restart services
  win_reboot:
    reboot_timeout_sec: 120

이 작업은 새 패치 빌드에 의해 파이프라인이 트리거될 때마다 자동으로 실행됩니다.

모니터링 – ELK/Sentinel 알림

취약한 해시 패턴과 일치하는 NTLM 인증으로 호스트가 로그인할 때 트리거되는 알림을 생성합니다.

input {
    beats {
        type => "winlogbeat"
    }
}
도구 다운로드