
Un escáner Python para PrintNightmare (CVE-2021-34527). Escanea subredes enteras en busca de hosts vulnerables a la RCE PrintNightmare.
Un escáner de Python para CVE-2021-34527 (también conocido como PrintNightmare). Permite escanear subredes enteras en busca de la RCE de PrintNightmare (no la LPE) y genera un informe CSV con los resultados. Prueba la explotabilidad a través de MS-PAR y MS-RPRN.
Esta herramienta tiene versiones "desarmadas" de los exploits en Python; en realidad no explota los hosts, pero utiliza las mismas llamadas RPC vulnerables empleadas durante la explotación para determinar si los hosts son vulnerables.
Actualización del 7 de julio de 2021: También comprueba si los hosts son vulnerables utilizando el bypass de UNC descubierto por @gentilkiwi
POV, tratando de determinar si algo es vulnerable a PrintNightmare:

En el momento de escribir esto, la cantidad de variables que determinan si una máquina es vulnerable es alucinante y confusa.
Esta herramienta actualmente necesita el fork de Impacket de cube0x0 que contiene la implementación de MS-PAR necesaria para una de las comprobaciones. Este cambio ha sido enviado a Impacket en esta pull request.
Necesitas instalar Impacket desde git, ya que contiene la implementación de MS-PAR necesaria para una de las comprobaciones. (Ambos métodos de instalación a continuación lo hacen automáticamente por ti)
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
Dev install requiere 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)
Solía leer la revista Word Up!
Como el exploit requiere que estés autenticado en Active Directory, debes proporcionar credenciales. Si no se proporciona la contraseña, te pedirá que la ingreses.
Por defecto usará 100 hilos; puedes aumentarlos o reducirlos usando el argumento -t.
Cuando termine, verás un archivo report_<timestamp>.csv en tu directorio actual con los resultados.