Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

Alla scoperta di Artemis: lo scanner di vulnerabilità modulare open source

Manuel Roccon : 17 Giugno 2024 07:12

In questo articolo andremo alla scoperta ed eseguiremo un’analisi di Artemis, un vulnerability scanner modulare open source sperimentale che si concentra prevalentemente nella ricognizione e nella ricerca di vulnerabilità web.

Il punto forte di questo progetto è la scalabilità.

Artemis rende possibile la scalabilità con  micro servizi separati grazie all’utilizzo di container tramite Docker. In ogni micro servizio è implementato un modulo con funzioni diverse, inclusi tools già conosciuti.

Iscriviti GRATIS ai WorkShop Hands-On della RHC Conference 2025 (Giovedì 8 maggio 2025)

Il giorno giovedì 8 maggio 2025 presso il teatro Italia di Roma (a due passi dalla stazione termini e dalla metro B di Piazza Bologna), si terranno i workshop "hands-on", creati per far avvicinare i ragazzi (o persone di qualsiasi età) alla sicurezza informatica e alla tecnologia. Questo anno i workshop saranno:

  • Creare Un Sistema Ai Di Visual Object Tracking (Hands on)
  • Social Engineering 2.0: Alla Scoperta Delle Minacce DeepFake
  • Doxing Con Langflow: Stiamo Costruendo La Fine Della Privacy?
  • Come Hackerare Un Sito WordPress (Hands on)
  • Il Cyberbullismo Tra Virtuale E Reale
  • Come Entrare Nel Dark Web In Sicurezza (Hands on)

  • Potete iscrivervi gratuitamente all'evento, che è stato creato per poter ispirare i ragazzi verso la sicurezza informatica e la tecnologia.
    Per ulteriori informazioni, scrivi a [email protected] oppure su Whatsapp al 379 163 8765


    Supporta RHC attraverso:


    Ti piacciono gli articoli di Red Hot Cyber? Non aspettare oltre, iscriviti alla newsletter settimanale per non perdere nessun articolo.

    La maggior parte delle funzionalità sono accessibili da GUI e di recente sono stati integrati anche i report senza necessità di utilizzare script..

    Software come questi permettono alle organizzazioni di scansionare e monitorare le vulnerabilità della propria infrastruttura.

    IL PROGETTO ARTEMIS

    Il progetto Artemis è stato avviato dal club di scienza informatica dell’Università di Tecnologia di Varsavia ed è attualmente in fase di sviluppo da parte del CERT Polska.

    https://github.com/CERT-Polska/Artemis

    In breve le caratteristiche di Artemis pubblicate nella repository git:

    • Permette scansione dei sottodomini utilizzando la repo open source crt.sh e gau (https://github.com/lc/gau),
    •  Dispone di un’integrazione Shodan
    • Permette la scansione brute force sui percorsi web alla ricerca di directory o file interessanti (ad esempio file .env),
    • Permette il brute forcing delle password in WordPress/MySQL/PostgreSQL/FTP,
    • Esegue la verifica della configurazione della posta elettronica (SPF/DMARC non configurati correttamente, relay aperti),
    • Include il famoso vulnerability scanner nuclei (https://github.com/projectdiscovery/nuclei)
    • Verifica della versione del plugin WordPress/Joomla/Drupal/WordPress,
    • Esegue il controllo delle cartelle VCS (ad esempio .git),
    • Verifica delle directory aperte (index)
    • Scansiona le porte (aperte/chiuse) e identificazione dei servizi,
    • Permette di esportazione delle metriche per Prometheus (inclusi dati come il numero di attività elaborate o bloccate)
    • Facile estensibilità tramite moduli plug-and-play
    • API HTTP per facilitare l’integrazione con altri strumenti

    Tutti i moduli standard sono degli script python al seguente percorso Atemis/artemis/modules:

    Alcuni moduli sono scritti dagli autori del progetto, altri invece sono altri progetti open source inglobati all’interno (come nuclei).

    Per quanto riguarda le configurazioni dei moduli, per esempio la lista bruteforce di password e directory sono visibili dentro Artemis/artemis/modules/data.

    è possibile anche aggiungere il repository dei moduli aggiuntivi che includono:

    In seguito, lo faremo girare in un ambiente con alcune macchine virtuali vulnerabili per vedere il risultato e valutare i risultati.

    INIZIAMO…

    Per installarlo possiamo fare riferimento a questa guida:

    https://artemis-scanner.readthedocs.io/en/latest/quick-start.html

    Per prima cosa prepariamo una macchina linux, in questo esempio ho usato una versione di Roky Linux.

    https://rockylinux.org/download

    Prima di proseguire assicuriamoci che la VM sia completamente aggiornata prima di continuare.

    INSTALLAZIONE DI DOCKER

    Il progetto si basa su container su Docker:

    Installiamolo  seguendo questa wiki che comunque riportiamo i comandi

    https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-rocky-linux-9

    Quindi aggiungiamo il  repository docker:

    sudo dnf config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

    Installiamo questi 3 pacchetti:

    sudo dnf install docker-ce docker-ce-cli containerd.io

    Avviamo docker:

    sudo systemctl start docker

    Quindi verifichiamo che sia in esecuzione:

    sudo systemctl status docker

    In ultima impostiamo che docker si avvii automaticamente all’avvio della VM:

    sudo systemctl enable docker

    INSTALLAZIONE DI ARTEMIS

    Di recente è stato rilasciato un aggiornamento che rende più facile il deploy tramite script. In passato era necessario eseguire docker compose up –build per eseguire la configurazione una volta clonata la rep.)

    Ora riprendiamo la guida di Artemis e cloniamo la repo in una directory

    Installiamo GIT per poter clonare la repo

    Yum install git

    Quindi cloniamo la repo

    git clone https://github.com/CERT-Polska/Artemis.git

    A questo punto entriamo nella directory e creiamo la configurazione da quella di default.

    cp env.example .env

    Ora avviamo lo script di configurazione:

    ./scripts/start

    Alla fine della configurazione, come è spiegato sulla wiki, Artemis verrà esposto sulla porta 5000.

    A fine installazione Artemis ci indica il percorso di accesso e se la macchina include la GUI, possiamo accedere direttamente dall’interno.

    Disattivando il firewall locale possiamo accedere anche tramite IP della VM. Però attenzione: come vedremo dopo Artemis non prevede nessuna forma di autenticazione, per questo fate attenzione a dove è pubblicato.

    Ci viene dato inoltre qualche suggerimento per vedere i log, e ci consiglia di modificare USER AGENT (che verrà usato nelle scansioni) modificando il file .env.

    Utilizzando lo script, come suggerito

     ./scripts/run_docker_compose logs

    Possiamo vedere in real time i log generati da tutti i moduli (container)

    INSTALLIAMO I MODULI EXTRA

    Ora aggiungiamo i moduli extra, come spiegato nella wiki cloniamo la repo all’interno si basano principalmente dei tool esistenti come wpscan e sqlmap.

    Come fare ci viene indicato avviando lo script e non precedentemente installato.

    Quindi cloniamo gli extra direttamente all’interno della directory di artemis e avviamo lo script 

    git clone https://github.com/CERT-Polska/Artemis-modules-extra.git

    e infine avviamo di nuovo lo script di start

    ./scripts/start

    Ora se i container erano in precedenza avviati, verranno tutti stoppati e avviati assieme agli ultimi appena aggiunti.

    Ad installazione finita , accediamo sempre all’indirizzo x.x.x.x:5000

    LA DASHBOARD

    Accedendo al link web si presenta una dashboard, non è prevista autenticazione, quindi attenzione a pubblicarla esternamente.

    Nella dashboard sono presenti le funzionalità

    • Aggiunta di un nuovo target
    • Visualizzazione di tutti i target analizzati
    • Visualizzare i risultati
    • Esportazione report (questa voce è stata aggiunta nell’ultima versione)
    • Visualizzare report già esportati (questa voce è stata aggiunta nell’ultima versione)
    • Visualizzare i task
    • Il riavvio dei task bloccati
    • Accesso alle API

    SCANSIONE DI UN TARGET

    Nella nostra rete di laboratorio abbiamo inserito un’applicazione web vulnerabile, ora andiamo a verificare cosa e quali vulnerabilità riesce a trovare.

    Quindi facciamo add target in alto, e compiliamo i targets

    Dopo aver selezionato Analyze target accediamo alla schermata per aggiungere i target da analizzare, possiamo mettere una subnet o IP singoli.

    Selezioniamo inoltre i moduli che vogliamo attivare

    Una volta avviata la scansione, verranno attivati diversi container che cominceranno ad eseguire le analisi.

    Una nota: i moduli non si “parlano” tra di loro, ognuno svolgera il propria analisi a seconda della funzione che è adibito.

    Possiamo vedere per esempio il modulo sqlmap in azione.

    Oppure qui sotto un esempio di brute forcing che cicla da dizionario circa 3000 parole alla ricerca di sottocartelle, file e percorsi interessanti.

    Durante la scansione il target verrà identificato come “In Progress”, mentre “Done” a scansione ultimata.

    Nell’ultima versione è stata aggiunta anche la percentuale oltre ai moduli restanti.

    Tramite il menu “Task queue” è possibile vedere i moduli che stanno girando e quelli in errore. Nel caso di errori possiamo agire sulla funzionalità “Restart crashed task”

    ANALIZZIAMO I RISULTATI

    Una volta effettuata l’analisi possiamo vedere il risultato su questa webapp. Verranno visualizzati i risultati rilevanti e ce ne sono molti.

    Usando il filtro “all interesting finding”, verranno mostrati solo i moduli che avranno riportato risultati.

    Al contrario all tasks verranno mostrati anche gli altri che non avranno prodotto risultati.

    Entrando su ogni task possiamo vedere in formato json l’intera risposta del modulo.

    REPORTISTICA

    Il software da GUI non prevede una reportistica ma è possibile crearla tramite uno script all’interno via ssh.

    Occorre solo inserire il TAG della scansione precedentemente eseguita e generare.

    Verrà generato e scaricato un file compresso.

    All’interno di advance verranno riportati i risultati in formati JSON. 

    Per ora non è previsto nessuna sorta di report PDF, sarà necessario importarlo in qualche tool ulteriore per generare qualsiasi report documentale.

    API

    È possibile utilizzare le api per estrarre i risultati in JSON e importarli facilmente in altri sistemi di visualizzazione e storicizzazione.

    COMPARATIVA

    Per analizzare le performance del tool e capirne meglio potenzialità e limiti di utilizzo, abbiamo confrontato i risultati e i rilevamenti con una scansione con nessus in versione essential (free) che ci permette di analizzare completamente fino a 16 host come una versione a pagamento.

    Molte vulnerabilità siano state rilevate da entrambi gli scanner. Sono state rilevate directory aperte, percorsi interessanti nascosti, XSS, LFI, presenza di software interessanti come phpmyadmin.

    Invece vulnerabilità rilevate da Nessus, come SQLi, RFI e alcune specifiche CVE, non sono state individuate da Artemis.

    Abbiamo inoltre scansionato alcune macchine con software vulnerabili con specifiche CVE che potrebbero trovarsi comunemente in alcuni servizi esposti a internet, quali Eternal Blue (CVE-2017-0144), Shellshock (CVE-2014-6271) e Vsftpd 2.3.4 (CVE-2011-2523), ma i vari moduli non li hanno riconosciuti.

    CONCLUSIONE

    Questo tool è incentrato nell’individuare le vulnerabilità web ed è ricco di funzionalità e tool. Alcuni moduli vanno ad analizzare anche la configurazione corretta dei record SPF, DMARK o la verifica dei certificati.

    Il punto di forza è ovviamente il fatto di essere open source e la sua modularità. I moduli di default sono molti e coprono diversi aspetti di sicurezza delle  applicazioni web.

    Come abbiamo visto nella comparazione, è risultato abbastanza efficace nelle applicazioni web e sulle vulnerabilità comuni ma alcune specifiche CVE non sono state riscontrate.

    Sorprendente invece la facile installazione (circa 20 minuti) anche grazie alla containerizzazione che è stata data ai moduli dell’app. L’ultimo aggiornamento lo ha reso anche più stabile.

    Il fatto che sia  open source permette poi  a chiunque di testarlo e monitorare i propri assets.

    Per concludere questi tools non sono commerciali e godono di un supporto limitato da chi li sviluppa e integra altri progetti open source all’interno, per cui potrebbero contener bug o altre funzionalità non previste che potrebbero compromettere le applicazioni web, per cui, come riportato nel progetto, vengono eseguiti a vostro rischio e pericolo.

    E’ importante sempre eseguire queste scansioni un un ambiente controllato con tutte le accortezze del caso (snapshot, backup ecc…), per esempio eseguirle in un ambienti di test.

    Manuel Roccon
    Ho iniziato la mia carriera occuparmi nella ricerca e nell’implementazioni di soluzioni in campo ICT e nello sviluppo di applicazioni. Al fine di aggiungere aspetti di sicurezza in questi campi, da alcuni anni ho aggiunto competenze inerenti al ramo offensive security (OSCP), occupandomi anche di analisi di sicurezza e pentest in molte organizzazioni.

    Articoli in evidenza

    DarkLab intervista HellCat Ransomware! La chiave è “assicurarsi che tutti comprendano la cybersecurity”

    Il ransomware HellCat è apparso nella seconda metà del 2024 e ha attirato l’attenzione degli analisti grazie all’umorismo delle sue dichiarazioni pubbliche. Ricordiamo l’...

    X/Twitter nel Caos! Un Threat Actors pubblica 2.8 Miliardi di Account Compromessi

    Il 28 marzo 2025, un utente del noto forum di cybersecurity BreachForums, con lo pseudonimo ThinkingOne, ha rivelato quello che potrebbe essere il più grande data breach mai registrato nel mondo ...

    Signal è abbastanza sicuro per la CIA e per il CISA. Lo è anche per te?

    Quando Jeffrey Goldberg dell’Atlantic ha fatto trapelare accidentalmente un messaggio di gruppo privato di alti funzionari statunitensi su un possibile attacco contro gli Houthi nello Yemen, ha...

    Addio alle password! La rivoluzione della sicurezza informatica è già iniziata

    Ogni mese diventa sempre più evidente: le password non funzionano più. Gli hacker hanno imparato a eludere anche la protezione a due fattori sfruttando sessioni rubate e milioni di dati comp...

    Alla scoperta della Pseudonimizzazione: Tra definizione e valore giuridico

    La pseudonimizzazione è una tecnica di protezione dei dati definita dall’art. 4(5) del GDPR. Consiste nella trasformazione dei dati personali in modo tale che non possano più essere a...