
Сканер на Python для PrintNightmare (CVE-2021-34527). Сканирует целые подсети на наличие хостов, уязвимых к PrintNightmare RCE.
Python-сканер для CVE-2021-34527, также известного как PrintNightmare. Позволяет сканировать целые подсети на наличие уязвимости RCE PrintNightmare (не LPE) и создаёт CSV-отчёт с результатами. Проверяет эксплуатируемость через MS-PAR и MS-RPRN.
Этот инструмент содержит «обезвреженные» версии Python-эксплойтов, он не эксплуатирует хосты на самом деле, но использует те же уязвимые RPC-вызовы, что и при эксплуатации, чтобы определить, уязвимы ли хосты.
Обновление от 7 июля 2021: Также проверяет, уязвим(ы) ли хост(ы) с помощью UNC-обхода, обнаруженного @gentilkiwi
Мнение: попытка определить, уязвимо ли что-то для PrintNightmare:

На момент написания количество переменных, определяющих, уязвима ли машина, безумно и сбивает с толку.
В настоящее время этот инструмент требует форк Impacket от cube0x0, содержащий реализацию MS-PAR, необходимую для одной из проверок. Это изменение было отправлено в Impacket в этом pull request.
Вам необходимо установить Impacket из git, так как он содержит реализацию 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) 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_<timestamp>.csv с результатами.