
PrintNightmare (CVE-2021-34527) Python 스캐너입니다. 전체 서브넷을 스캔하여 PrintNightmare RCE에 취약한 호스트를 찾습니다.
CVE-2021-34527 (일명 PrintNightmare) Python 스캐너입니다. 전체 서브넷을 스캔하여 PrintNightmare RCE(LPE 아님)를 탐지하고 결과를 CSV 보고서로 생성합니다. MS-PAR 및 MS-RPRN을 통해 취약점 악용 가능성을 테스트합니다.
이 도구는 "송곳니가 제거된" 버전의 Python 익스플로잇을 사용하며, 실제로 호스트를 공격하지는 않지만 익스플로잇 중 사용되는 동일한 취약한 RPC 호출을 사용하여 호스트가 취약한지 여부를 판단합니다.
2021년 7월 7일 업데이트: @gentilkiwi가 발견한 UNC 우회를 통해 호스트가 취약한지도 확인합니다.
POV, 어떤 것이 PrintNightmare에 취약한지 판단하려는 상황:

이 글을 쓰는 시점에서 머신이 취약한지 여부를 결정하는 변수들의 양은 엄청나고 혼란스럽습니다.
이 도구는 현재 검사 중 하나에 필요한 MS-PAR 구현이 포함된 cube0x0의 Impacket 포크가 필요합니다. 이 변경 사항은 이 풀 리퀘스트를 통해 Impacket에 제출되었습니다.
Git에서 Impacket을 설치해야 합니다. 검사 중 하나에 필요한 MS-PAR 구현이 포함되어 있기 때문입니다. (아래 두 설치 방법 모두 자동으로 수행합니다.)
Docker:
git clone https://github.com/byt3bl33d3r/ItWasAllADream
cd ItWasAllADream && docker build -t itwasalladream .
docker run -it itwasalladream -u user -p password -d domain 192.168.1.0/24
개발 설치는 Poetry가 필요합니다:
git clone https://github.com/byt3bl33d3r/ItWasAllADream
cd ItWasAllADream && poetry install && poetry shell
itwasalladream -u user -p password -d domain 192.168.1.0/24
usage: itwasalladream [-h] -u USERNAME [-p PASSWORD] -d DOMAIN [--timeout TIMEOUT] [--threads THREADS] [-v] [--csv-column CSV_COLUMN] target
PrintNightmare (CVE-2021-34527) 스캐너
positional arguments:
target CIDR 표기법의 대상 서브넷, CSV 파일 또는 개행 구분 텍스트 파일
optional arguments:
-h, --help 이 도움말 메시지를 표시하고 종료
-u USERNAME, --username USERNAME
인증할 사용자 이름 (기본값: None)
-p PASSWORD, --password PASSWORD
인증할 비밀번호. 지정하지 않으면 프롬프트가 표시됩니다. (기본값: None)
-d DOMAIN, --domain DOMAIN
인증할 도메인 (기본값: None)
--timeout TIMEOUT 연결 제한 시간(초) (기본값: 30)
--threads THREADS 최대 동시 스레드 수 (기본값: 100)
-v, --verbose 상세 출력 활성화 (기본값: False)
--csv-column CSV_COLUMN
대상 인수가 CSV 파일인 경우 이 인수는 구문 분석할 열을 지정합니다 (기본값: DNSHostName)
전 Word Up 잡지를 읽곤 했죠!
익스플로잇은 Active Directory에 인증되어 있어야 하므로 자격 증명을 제공해야 합니다. 비밀번호를 제공하지 않으면 입력하라는 메시지가 표시됩니다.
기본적으로 100개의 스레드를 사용하며, -t 인수를 사용하여 늘리거나 줄일 수 있습니다.
완료되면 현재 디렉터리에 report_<timestamp>.csv 파일이 생성됩니다.