Iscriviti ora al Webinar di presentazione del corso Ethical Hacker! Scopri di più
Iscriviti ora al Webinar di presentazione del corso CISO! Scopri di più
Il sistema di controllo degli accessi di un applicazione è responsabile della politica che prevede cosa possono fare gli utenti al suo interno.
La vunerabilità Broken Access Control in genere porta alla divulgazione non autorizzata di informazioni, alla modifica o alla distruzione di tutti i dati o all'esecuzione di una funzione al di fuori dei limiti dell'utente. Le vulnerabilità comuni del controllo degli accessi includono:
Il tag ENTITY in XML sono utilizzati per rappresentare un particolare dato in un documento XML. Questi possono anche essere EXTERNAL cioè fuori dal Document Type e utilizzano la keywork SYSTEM
L'XML external entity injection (nota anche come XXE) è una vulnerabilità che consente a un utente malintenzionato di interferire con l'elaborazione dei dati XML da parte di un'applicazione.
Spesso consente di visualizzare i file presenti sul file system dell'application server e di interagire con qualsiasi sistema esterno o di back-end a cui l'applicazione stessa può accedere.
In alcune situazioni, un utente malintenzionato può intensificare un attacco XXE per compromettere il server sottostante o un'altra infrastruttura back-end, sfruttando questa vulnerabilità per eseguire attacchi SSRF (server-side request forgery).
Un esempio potrebbe essere: <!ENTITY xxe SYSTEM "file:///dev/random" >]> dove si prova ad esegure un attacco Dos sul server facendogli caricare un file di lunghezza infinita!
Pillole di #penetrationtest
Con il termine enumerazione intendiamo una attività di ricerca attiva su servizi esposti che sia capace di rilevare informazioni tecniche e non sull'obiettivo.
Differisce dalla information gathering o recon solo per profondità e opportunità di indagine, non per sostanza: siamo alle sfumature.
Ma vogliamo intendere con enumerazione la capacità di ottenere elenchi di informazioni e risorse direttamente attraverso servizi esposti dall'obiettivo, in maniera diretta e trasparente, senza ausilio di exploit aggressivi.
Questo può avvenire grazie a comportamenti naturali di servizi di rete che, una volta conosciuti nella loro capacità di "chiacchierare", possono essere uno strumento fondamentale per la recon, anche se in una fase avanzata (probabilmente post-scansione, nell'ambito di un modello circolare di penetration test).
Partiamo dalle tecniche più datate e probabilmente oggi non più disponibili (eppure, mai dire mai) all'interno di asset aggiornati. La null session (connessione senza autenticazione del protocollo SMB) che consente (vedi enum4linux) di ottenere elenco utenti di un sistema (Windows o *nix se adotta Samba). Il protocollo finger (con servizio e client omonimi) consente una analoga enumerazione nel mondo *nix: è un protocollo storico per questi sistemi, nato per gestire le informazione utente in una specie di rubrica telefonica per il sistema locale (informazioni Gecos). Si tratta certamente di un protocollo superato da altri più efficaci e completi (che gestiscono i dati di una intera sottorete), ma è importante storicamente in quanto all'origine della prima diffuzione (1988) di un WORM (Morris worm). Anche in questo caso mai dire mai, seguiamo le tracce rilevate dalla scansione sull'asset.
Parlando di protocolli vivi e vegeti, non possiamo dimenticare che il protocollo SMTP può essere stimolato (rapidamente con comando VRFY, se abiitato, o "facendo finta di inviare una email") a verificare la presenza di un utente o alias (una mailbox): questo basta a costruire (mediante un paziente "attacco a dizionario") l'elenco di email di un dominio di posta.
Ultimi ma non meno importante, qualora fossero disponibili il protocollo SNMP o WMI, ovvero sia disponibile un accesso tramite questi, la cosa porterebbe un vantaggio enorme nella fase di recon, in quanto potrebbe rompere la barriera delle informazioni puramente legate ai servizi esposti per arrivare a informazioni che riguardano l'interno del sistema operativo, ivi compreso l'hardware.
Ed è proprio questo che richiedono gli strumenti automatici di VA quando ispezionano "internamente" l'obiettivo e ci forniscono dettagli di vulnerabilità locali (ossia non esposte via rete).
Emotet nasce come un #trojan bancario, ma è stato in grado di evolversi e diventare la più grande #botnet in attività.
Ha sviluppato un meccanismo di diffusione particolare e prontamente adottato anche da altri competitor come #Quakbot o #Maze.
La tecnica utilizzata si chiama #Thread #hijacking ed è alquanto geniale nella sua semplicità.
Quando viene compromesso un account email, tutte la corrispondenza della mailbox viene esfiltrata ed inviata al #C2.
Gli attaccanti poi si inseriscono in comunicazioni già esistenti allegando alle nuove email documenti - generalmente office - infetti.
Per intenderci, fanno semplicemente un replay delle email esfiltrate con qualche piccole aggiunte!
L'hit rate di questa corrispondenza è elevatissima al punto che quest'anno il ministero degli interni francese ha addirittura bloccato tutta la corrispondenza con questo tipo attach.
Questa botnet è stata definitivamente chiusa agli inizi dal 2021 da una vasta operazione ad opera dell'Interpol e da pochi giorni sono stati definitivamente disinstallati tutti gli zombie infetti.
Pillole di #penetrationtest
Le vulnerabilità da File Inclusion, inclusione Locale o Remota che sia, dipendono (come molte vulnerabilità) da difetti di programmazione.
In sostanza in un il linguaggio che consenta l'inclusione dinamica di codice la programmazione tende a suddividere l'intero programma in moduli caricati secondo le necessità durante l'esecuzione. Questo semplifica la gestione della complessità ma apre la porta allo sfruttamento malevolo di questa tecnica quando si abbassi la soglia di controllo su cosa venga incluso dinamicamente, specialmente quando questo dipende da un input utente.
Il problema è il medesimo sia che la risorsa caricata sia locale al server erogante il servizio web (nel caso di applicazioni Web), sia che sia raggiunta via rete attraverso un qualche protocollo di comunicazione (tipicamente http).
L'esempio tipico è l'inclusione delle versioni localizzate linguisticamente delle applicazioni in ragione di una variabile CGI, un cookie o qualsivoglia ente dipendente dall'utente.
Tanto è diffuso il problema che il sistema di classificazione Common Weakness Enumeration del MITRE ha identificate alcune classi per questo problema.
Per il PHP, ad esempio, identifica la CWE-98 per il PHP: Improper Control of Filename for Include/Require Statement in PHP Program.
Ma il PHP non è l'unico linguaggio a subire le conseguenze di uno sfruttamento delle tecniche di file inclusion; ad esempio con la CWE-611 (Information Exposure Through XML External Entity Reference) e CWE-827 (Improper Control of Document Type Definition) il MITRE identifica i problemi derivanti dalla tecnica XML External Entity (XXE) Processing (che consente inclusione di porzioni di documento XML da risorse esterne) che sono alla base di alcune vulnerabilità note (per difetto di controllo sulla inclusione) di alcuni prodotti, come descritto da CVE-2019-3774 e CVE-2018-12463.
Pagina 348 di 359