
PrintNightmare (CVE-2021-34527) Python Scanner。サブネット全体をスキャンし、PrintNightmare RCEに対して脆弱なホストを検出します。
CVE-2021-34527(別名 PrintNightmare)のPythonスキャナーです。サブネット全体をスキャンしてPrintNightmare RCE(LPEではありません)の有無を確認し、結果をCSVレポートとして生成します。MS-PARおよびMS-RPRNを介した悪用可能性をテストします。
このツールはPythonエクスプロイトの「牙を抜いた」バージョンを使用しており、ホストを実際に悪用することはありませんが、悪用時に使用されるのと同じ脆弱なRPC呼び出しを利用して、ホストが脆弱かどうかを判断します。
2021年7月7日更新:@gentilkiwi によって発見された UNCバイパス を使用して、ホストが脆弱かどうかもチェックします。
POV、何かがPrintNightmareに対して脆弱かどうかを判断しようとしているところ:

執筆時点では、マシンが脆弱かどうかを決定する変数の多さが混乱を招き、理解しづらいものとなっています。
このツールは現在、チェックの1つに必要なMS-PAR実装を含むcube0x0のImpacketフォークを必要とします。この変更はこのプルリクエストでImpacketに提出されています。
チェックの1つに必要なMS-PAR実装が含まれているため、gitからImpacketをインストールする必要があります。(以下の両方のインストール方法で自動的に行われます)
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) scanner
positional arguments:
target Target subnet in CIDR notation, CSV file or newline-delimited text file
optional arguments:
-h, --help show this help message and exit
-u USERNAME, --username USERNAME
username to authenticate as (default: None)
-p PASSWORD, --password PASSWORD
password to authenticate as. If not specified will prompt. (default: None)
-d DOMAIN, --domain DOMAIN
domain to authenticate as (default: None)
--timeout TIMEOUT Connection timeout in secods (default: 30)
--threads THREADS Max concurrent threads (default: 100)
-v, --verbose Enable verbose output (default: False)
--csv-column CSV_COLUMN
If target argument is a CSV file, this argument specifies which column to parse (default: DNSHostName)
I used to read Word Up magazine!
エクスプロイトはActive Directoryに対して認証済みである必要があるため、資格情報を指定する必要があります。パスワードが指定されていない場合は、入力を促されます。
デフォルトでは100スレッドを使用します。-t引数で増減できます。
完了すると、現在のディレクトリにreport_<タイムスタンプ>.csvファイルが生成され、結果が含まれます。