
Escaneo de Puertas de Enlace de Escritorio Remoto (Potencialmente sin parchear CVE-2020-0609 y CVE-2020-0610)
El escáner tiene 2 modos de funcionamiento:
Utiliza el código de escaneo de vulnerabilidades de https://github.com/MalwareTech/RDGScanner
Escaneo de vulnerabilidades de corrupción de memoria es peligroso y puede potencialmente bloquear sistemas. Aunque esta herramienta ha sido diseñada para evitar causar un bloqueo, la estabilidad no puede garantizarse al 100%. Úselo bajo su propio riesgo y escanee únicamente sistemas para los que tenga permiso de prueba.
El escáner es multihilo y puede analizar archivos que contengan máscaras de red CIDR, pero para redes grandes quizás prefiera usar nmap para encontrar puertos UDP 3391 abiertos antes de escanear vulnerabilidades. Esto no funciona de fábrica por el momento. Debe agregar 3391 a la sección DTLS en nmap-payloads (generalmente en /usr/share/nmap, PR en camino) y escanear usando, por ejemplo:
nmap -Pn -p 3391 -sU -oA rdg_scan_yyyymmdd 10.0.0.0/24 (Requiere permisos root)
El puerto predeterminado para escaneo de vulnerabilidades es UDP 3391, cámbielo con --port.
No todas las puertas de enlace RD tienen UDP 3391 activo o expuesto en el firewall, probablemente porque también funciona solo con HTTPS y los administradores no se molestaron en leer la documentación. Si también desea encontrar esas puertas de enlace RD, use webcheck (Quizás le preocupa un servidor con CVE-2020-0609 sin parchear y que los operadores abran UDP 3391 en 6 meses debido al "mejor rendimiento en redes de alta latencia".)
Para escanear usando HTTPS, use el parámetro --webcheck o -w El puerto predeterminado para webcheck es TCP 443, cámbielo con --port.
Tenga en cuenta que, por ejemplo, un Debian/Kali reciente tiene configuraciones predeterminadas de openssl que impiden que cualquier programa, incluido python, curl, ... realice conexiones a implementaciones SSL inseguras, incluyendo cualquier cosa inferior a TLSv1.2. Esto es razonable para banca en línea pero no para escaneo de vulnerabilidades, donde también desea encontrar ese host antiguo que aún usa SSLv3. No encontré mejor solución que cambiar esto en /etc/ssl/openssl.cnf. Busque/inserte la sección [system_default_sect] y cámbiela a:
[system_default_sect]
MinProtocol = SSLv3
CipherString = DEFAULT@SECLEVEL=1
¡Recuerde cambiarlo de nuevo para cosas sensibles! Si conoce una solución que solo cambie esta configuración para un script de Python, por favor hágamelo saber ;)
Los errores SSL que aparecen durante el escaneo podrían ser de sistemas IPS.
El escáner puede analizar:
Example: python3 rdg_scanner_cve-2020-0609.py 192.168.1.1/24 # vuln scan for cve-2020-0609 on UDP 3391
Example2 python3 rdg_scanner_cve-2020-0609.py 192.168.1.1/24 --webcheck # check webpage for RD gateway
Example3: python3 rdg_scanner_cve-2020-0609.py 192.168.1.1
Example4: python3 rdg_scanner_cve-2020-0609.py fakewebsiteaddress.com
Example5: python3 rdg_scanner_cve-2020-0609.py as15169
Example6: python3 rdg_scanner_cve-2020-0609.py file:hostfile.txt
usage: rdg_scanner_cve-2020-0609.py [-h] [--port PORT] [--webcheck]
[--verbose]
target
No requiere instalación. Debian/Kali necesita: apt-get install python3-netaddr
PENDIENTE: