|
L'hackgame è terminato dopo 23 ore e 45 minuti di intensi attacchi al server web.
Dichiariamo ufficialmente vincitore: R00T_ATI
Durante lo svolgimento del contest, sono stati ricevuti 105.582 attacchi.
|Remote%20Command%20Execution%20(9096)|Remote/Local%20File%20Inclusion%20(20700)|SQL%20Injection%20(73253))
Il vincitore si è aggiudicato il contest, e quindi i premi in palio, riuscendo a catturare il dump del database che "Giovanni" (l'utente inesperto simulato nel gioco) aveva esposto sul web in modo poco prudente.
La richiesta web che ha consentito a R00T_ATI di vincere il contest è la seguente:
[23/Nov/2009:23:20:37 +0100] "GET /wordpress/esperimenti/SQL_DUMP/%64%61%74%61%62%61%73%65%5F%68%61%63%6B%67%61%6D%65%5F%6A%65%73%79%73%5F%65%75%2E%73%71%6C HTTP/1.1" 200 338606 "-" "Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.1.5) Gecko/20091106 Shiretoko/3.5.5"
Come si puo` dedurre, il file richiamato con stringa encodata non e` stata rilevata dal wips perche' non presente nel suo set di regole per il file suddetto, ed ha permesso la cattura del file all'attaccante.
Ringraziamo i numerosi partecipanti e facciamo ancora davvero i complimenti al vincitore!!! ;)
UPDATE, relazione del vincitore:
Relazione sul WHAG (Web Application Hack Game)
Tenutasi Lunedì 23 novembre 2009
A cura di Simone `R00T_ATI` Quatrini e Marco `white_sheep` Rondini
Il contest è stato aperto allo scoccare della mezzanotte del 23.11.2009. Era presente un'installazione di Wordpress 2.0.9 senza troppe modifiche e nulla più. Non avevamo trovato molto in rete, così decidemmo di procedere a tentativi.
La prima cosa è stata provare combinazioni di password banali sull'area di amministrazione (/wp-admin/). L'username era a3344d05cdb0bbaa579bc445ad884b50 (commentato in index.php da wp)… Effettivamente molto strano! Inutile cercare sui cracker online dato che quello era un md5sum di /bin/cat di ubuntu (grazie google). Quindi ci siamo procurati una distribuzione ubuntu alla ricerca di md5sum di altri programmi tipo /bin/bash Inutile anche questa strada. Decidemmo di fermarci e che forse era ora di andare a dormire (4.30 del 23.11.2009);
Il “lavoro” riprese il primo pomeriggio (dalle 15.00 alle 16.00) , ostacolati da numerosi tentativi di DoS bloccati in seguito da un cazzuto firewall hardware installato a monte. Poi di nuovo a lavorarci la sera dopo cena (dalla 22.00 alle 23.40).
“Giovanni” aveva inserito nel frattempo altre informazioni utili a noi attaccanti fra cui:
pagina.php
Non faceva altro che richiamare la funzione include di una variabile in $_GET. Classico esempio di RFI/LFI. Jesys ha retto a tutti i vari tentativi. Fra cui unescape e varie inclusioni di file interni del tipo /etc/passwd, log apache, /proc/self/environ ecc...
form.php
Stessa cosa di pagina.php ma questa volta tramite la $_POST in una form. Anche qui come sopra: non siamo riusciti a farci granchè, anche se ho sentito persone che ne hanno tirato fuori una directory traversal.
Post sul blog
Giovanni, in un post sul blog, ci ha reso partecipi del fatto che stava giocando con i backup del database. Cosi', tutti gli attaccanti hanno pensato di cercare il file nella directory di default di wordpress (/wp-content/backup-XXXXX) dove XXXXX = primi 5 caratteri del doppio md5 della password del database. E via a bruteforzare il server. Fortunatamente emgent ci ha ovviato dall'intento di proseguire su quella strada perché “forse” era inutile. (Anche perchè dopo c'erano da bruteforzare altri 3 caratteri per beccare il nome del file di backup).
Database in bella vista
Non contento Giovanni (probabilmente non sano di mente) ci ha messo in bella vista il backup del database mysql. Jesys però bloccava i tentativi di apertura del medesimo. Cosi' a questo punto c'era solo da mettersi nei panni di jesys e capire perchè non gli piaceva quel nome del file. Se 1+1 fa ancora 2 doveva essere per forza l'estensione .sql. Il metodo che abbiamo usato per bypassarlo è stato l'unescape.
database_hackgame_jesys_eu.sql → %64%61%74%61%62%61%73%65%5F%68%61%63%6B%67%61%6D%65%5F%6A%65%73%79%73%5F%65%75%2E%73%71%6C
Jesys non ha decodificato il nome del file e gli è andato bene. Il database si è aperto per intero. (23:20:37 del 23.11.2009).
L'hack game è stato veramente fico e, perchè no, istruttivo a parte i soliti idioti che dossavano.
Considerazioni personali? Penso che “Giovanni” si sia un po spinto oltre il limite consentito. Jesys regge veramente bene a tutte le tipologie di attacco conosciute. Un bug sul controllo nel nome del file non è una grossa falla! E poi diciamolo chiaramente: nessun sysadmin metterà mai il backup del database su una cartella raggiungibile!
Abbiamo impiegato piu o meno 6 ore totali (notte, primo pomeriggio e sera dopo cena);
Nessuno strumento di automazione tipo acunetix, nessus, metasploit è stato impiegato per raggiungere l'obiettivo (old school rockz).
Ci siamo pero' appoggiati su exploit-db.com per reperire exploit per wordpress che però non hanno funzionato nemmeno in locale senza jesys =D
Relazione degli Organizzatori:
Felici di vedere che il contest si e` svolto in quasi piena tranquillità (attacchi DOS a parte che sono stati poi bloccati), ci congratuliamo con il vincitiore.
Per tutti i partecipanti che si sono cimentati facciamo presente le vulnerabilita` che potevano essere sfruttate:
- Attacchi non filtrati da WIPS nell`ip subito successivo di quello associato all` hostname hackgame.jesys.eu
- Controllo e deconding delle stringhe cifrate sulle tecniche di attacco ma non sul nome diretto dei file (tecnica sfruttata dal vincitore)
- SQL injection nel plugin forum anche per utenti non loggati
- Directory Traversal inserito nel componente di backup di Wordpress anche per utenti non loggati
A breve consegna dei premi e foto di rito ;-)
In fine pubblichiamo la mappa geografica degli attaccanti che si sono cimentati

|