
Uno script Ruby che scansiona la rete alla ricerca di applicazioni web di terze parti vulnerabili e sfruttabili.
Yasuo è uno script Ruby che scansiona la rete alla ricerca di applicazioni web di terze parti vulnerabili.
Durante le valutazioni di sicurezza di rete (interne, esterne, red team, ecc.), capita spesso di imbattersi in applicazioni web di terze parti vulnerabili o in front-end web che permettono di compromettere il server remoto sfruttando vulnerabilità note pubblicamente. Tra le applicazioni più comuni e amate ci sono l'interfaccia amministrativa di Apache Tomcat, jmx-console di JBoss, Hudson Jenkins e così via.
Se si cerca su Exploit-db, si trovano oltre 10.000 vulnerabilità sfruttabili da remoto in moltissime applicazioni/front-end web, che potrebbero consentire a un attaccante di compromettere completamente il server backend. Queste vulnerabilità spaziano da RCE a caricamenti malevoli di file, fino a SQL injection, RFI/LFI, ecc.
Yasuo è progettato per scansionare rapidamente la rete alla ricerca di tali applicazioni vulnerabili, offrendo bersagli sfruttabili su un piatto d'argento.
È necessario installare le seguenti gemme:
bundle install --path vendor
bundler exec ./yasuo.rb -f [myfile]
Yasuo fornisce le seguenti opzioni da riga di comando:
-r :: Se vuoi che Yasuo esegua una scansione delle porte, usa questo switch per fornire un indirizzo IP o un intervallo IP
-l :: Se vuoi che Yasuo esegua una scansione delle porte, usa questo switch per fornire un file di input con indirizzi IP separati da newline, simile all'opzione -iL di nmap
-s :: Fornisce un file di firme personalizzato. [./yasuo.rb -s mysignatures.yaml -f nmap.xml] [Predefinito - signatures.yaml]
-f :: Se non vuoi che Yasuo esegua la scansione delle porte e hai già un output nmap in formato xml, usa questo switch per fornire l'output di nmap
-u :: Prende un file con URL separati da newline salvati da un'esecuzione precedente di Yasuo. Vedi sotto per maggiori dettagli.
-n :: Dice a Yasuo di non fare ping all'host durante la scansione delle porte. Opzione nmap standard.
-p :: Usa questo switch per fornire uno o più numeri di porta/intervallo
-A :: Usa questo switch per scansionare tutte le 65535 porte. Opzione nmap standard.
-b [all/form/basic] :: Se l'applicazione scoperta implementa l'autenticazione, usa questo switch per forzare l'autenticazione. "all" forzerà sia l'autenticazione form che http basic. "form" forzerà solo l'autenticazione basata su form. "basic" forzerà solo l'autenticazione http basic.
-t :: Specifica il numero massimo di thread
-h :: Beh, indovina
Quando Yasuo viene eseguito, esegue diversi passaggi prima di iniziare a enumerare le applicazioni vulnerabili. Se fornisci un indirizzo IP o un intervallo, eseguirà una scansione delle porte sui target specificati. Se fornisci a Yasuo un file di output nmap in xml, lo analizzerà ed enumererà gli host con porte web aperte. Successivamente, invia una richiesta per un file fittizio (inesistente) e una directory a ciascun host:porta enumerato. Per ridurre i falsi positivi, scarta tutti gli ip:port che rispondono con HTTP 200 Ok per le richieste di file e directory fittizie. Alla fine di questo processo, otteniamo un elenco di quelli che chiamiamo "buoni URL". Questi buoni URL vengono quindi utilizzati per enumerare le applicazioni vulnerabili.
Se per qualche motivo devi rieseguire Yasuo sullo stesso insieme di target, le versioni precedenti di Yasuo ripeterebbero l'intero processo. Non è affatto efficiente. Lo so, sono per lo più stupido e apprendo lentamente, ma mi evolvo costantemente. Comunque, un buon motivo per rieseguire Yasuo sugli stessi target potrebbe essere l'utilizzo di un file di firme diverso (o personalizzato).
Questa ultima versione di Yasuo salverà automaticamente un file, savedURLstateXXXXX.out, nella stessa cartella da cui viene eseguito. Questo file conterrà tutti i "buoni URL". Se prevedi di rieseguire Yasuo sugli stessi target, basta fornire questo file a Yasuo senza le opzioni -f o -r.
Esempio: ruby yasuo.rb -s my_custom_signatures.yaml -u savedURLstateXXXXX.out
Yasuo analizzerà questo file e inizierà a enumerare le applicazioni vulnerabili contro i "buoni URL" elencati. Ta-Da.
./yasuo -r 127.0.0.1 -p 80,8080,443,8443 -b form
Il comando sopra eseguirà una scansione delle porte su 127.0.0.1 sulle porte 80, 8080, 443 e 8443 e forzerà il login per tutte le applicazioni che implementano l'autenticazione basata su form.
./yasuo -l /project/hosts -p 80,8080,443,8443
Il comando sopra eseguirà una scansione delle porte sugli host nel file /project/hosts sulle porte 80, 8080, 443 e 8443 e non eseguirà alcuna azione di forza bruta sulle applicazioni scoperte.
./yasuo -f my_nmap_output.xml -b all
Il comando sopra analizzerà il file di output nmap "my_nmap_output.xml" e forzerà il login per tutte le applicazioni che implementano l'autenticazione basata su form e http basic.
