
Scansione per i gateway Remote Desktop (potenzialmente non aggiornati CVE-2020-0609 e CVE-2020-0610)
Lo scanner ha 2 modalità di funzionamento:
Utilizza il codice di scansione delle vulnerabilità di https://github.com/MalwareTech/RDGScanner
La scansione delle vulnerabilità di corruzione della memoria è pericolosa e può potenzialmente causare il crash dei sistemi. Sebbene questo strumento sia stato progettato per evitare di causare crash, la stabilità non può essere garantita al 100%. Utilizzalo a tuo rischio e scansiona solo sistemi per i quali hai il permesso di testare.
Lo scanner è multithread e può analizzare file contenenti netmask CIDR, ma per reti più grandi potresti comunque voler usare nmap per trovare le porte UDP 3391 aperte prima di eseguire la scansione delle vulnerabilità. Al momento questo non funziona out of the box. Devi aggiungere 3391 alla sezione DTLS in nmap-payloads (di solito in /usr/share/nmap, PR in arrivo) e scansionare usando ad esempio:
nmap -Pn -p 3391 -sU -oA rdg_scan_yyyymmdd 10.0.0.0/24 (Richiede permessi di root)
La porta predefinita per la scansione delle vulnerabilità è UDP 3391, cambiala con --port.
Non tutti i gateway RD hanno UDP 3391 attivo o esposto sul firewall, probabilmente perché funziona anche solo con HTTPS e gli amministratori non si sono preoccupati di leggere la documentazione. Se vuoi trovare anche quei gateway RD, usa il webcheck (Forse hai paura di un server con CVE-2020-0609 non patchato e degli operatori che aprono UDP 3391 tra 6 mesi a causa delle "prestazioni migliori su reti ad alta latenza".)
Per scansionare tramite HTTPS, usa il parametro --webcheck o -w La porta predefinita per il webcheck è TCP 443, cambiala con --port.
Tieni presente che, ad esempio, un recente Debian/Kali ha impostazioni OpenSSL predefinite che impediscono a qualsiasi programma, inclusi python, curl, ... di effettuare connessioni a implementazioni SSL non sicure, incluso qualsiasi cosa inferiore a TLSv1.2. Questo è ragionevole per l'home banking ma non per la scansione delle vulnerabilità, dove vuoi trovare anche quel vecchio host che usa ancora SSLv3. Non ho trovato una soluzione migliore che modificare questo in /etc/ssl/openssl.cnf. Trova/inserisci la sezione [system_default_sect] e modificala in:
[system_default_sect]
MinProtocol = SSLv3
CipherString = DEFAULT@SECLEVEL=1
Ricordati di ripristinarlo per le cose sensibili! Se conosci una soluzione che modifichi queste impostazioni solo per uno script python, fammelo sapere ;)
Gli errori SSL che compaiono durante la scansione potrebbero provenire da sistemi IPS.
Lo scanner può analizzare:
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 installation required.
Debian/Kali needs: apt-get install python3-netaddr
TODO: