Questo livello richiede di analizzare un file pcap... Cosa semplice se si analizza in locale con wireshark... Quindi mi sono segnato la posizione del file e l'ho copiato con scp... Ho avviato wireshark, aperto il file, cliccato sulla prima comunicazione con il tasto destro, selezionato "Follow TCP Stream" ed ottenuto il codice... Questa password non funziona da nessuna parte, probabilmente perchè è per un'altra macchina... Ma alla fine il lavoro è fatto... Ecco il comando con il codice che si ottiene:
La password è contenuta qui "Password: backdoor...00Rm8.ate"... Strano che la comunicazione non sia criptata per dare un tocco più carino al livello...
Visualizzazione post con etichetta Nebula CTF. Mostra tutti i post
Visualizzazione post con etichetta Nebula CTF. Mostra tutti i post
sabato 3 dicembre 2011
Nebula level07 writeup
Questo livello ha una vulnerabilità nel codice perl, perchè non controlla i parametri passati come Host... Quindi si può passare qualsiasi cosa che il codice comunque prenderà per buona... Ci serve un solo comando per l'exploit...
http://nebula:7007/index.cgi?Host=x%0agetflagCome si legge dal file thttpd.conf lo script ha i permessi di flag07, quindi ci permette di lanciare getflag... Ovviamente otterremo così il codice di successo...
Nebula level06 writeup
Questo livello proprio non l'ho capito... Non saprei perchè si è fatta una cosa del genere... La password di flag06 è mostrata in chiaro dentro a /etc/passwd... Non ci resta che copiarla, crackarla con john e loggarci tramite ssh con l'accout flag06... Avviare getflag che ci infermerò del successo... Molto veloce...
L'uso di john è immediato se già altre volte lo si è usato, ed ho preso una wordlists contenuta nel pacchetto di metasploit... Livello semplice e veloce...
L'uso di john è immediato se già altre volte lo si è usato, ed ho preso una wordlists contenuta nel pacchetto di metasploit... Livello semplice e veloce...
Nebula level05 writeup
Questo livello era basato sulle deboli impostazioni dei permessi di un file... Infatti il file che ci interessava era un backup presente in una cartella nascosta con permessi -rw-rw-r-- ... Significa che il nostro permesso era solo in lettura(read)... Ma abbastanza per copiarlo ed estrarlo nella cartella /tmp, e leggerne il contenuto... Anche in questo livello niente getflag... Dopo l'estrazione si ottiene la cartella .ssh, con 3 file importantissimi...Ecco i comandi:
Il livello finisce così... Si passa al livello 06...
Il livello finisce così... Si passa al livello 06...
giovedì 1 dicembre 2011
Nebula level04 writeup
Anche questo livello è stato molto semplice... Io però ho trovato un problema... Che ho risolto sempre grazie a Steven che si presta sempre ad aiutare... Lo potete trovare nella chat di overthewire... Il mio problema era dovuto all'uso improprio di ln -s... Perchè il link del file sorgente e del file destinazione devono avere gli indirizzi completi, estesi... Io sbagliavo quello...
Come sempre leggere le istruzioni del livello porta notevoli vantaggi... Dal codice risulta la funzione strstr(), che ci vieta di aprire il file token, che è il nostro obiettivo... Se l'argomento passato contiene token allora la funzione è diversa da NULL, se invece la condizione non è soddisfatta si ottiene NULL... Più informazioni qui...
Quindi creiamo un link simbolico al token, chiamandolo in modo diverso, così da bypassare il controllo:
Questi sono i comandi... Si ottiene un certo codice contenuto dentro al token...
Come sempre leggere le istruzioni del livello porta notevoli vantaggi... Dal codice risulta la funzione strstr(), che ci vieta di aprire il file token, che è il nostro obiettivo... Se l'argomento passato contiene token allora la funzione è diversa da NULL, se invece la condizione non è soddisfatta si ottiene NULL... Più informazioni qui...
Quindi creiamo un link simbolico al token, chiamandolo in modo diverso, così da bypassare il controllo:
Questi sono i comandi... Si ottiene un certo codice contenuto dentro al token...
Nebula level03 writeup
Questo livello si risolve abbastanza facilmente... Non otterremo una shell interattiva, ma un file di log che ci indica che il nostro obiettivo è stato raggiunto... Qui le info del livello:
Qui finisce il livello 03...
Check the home directory of flag03 and take note of the files there.Importante capire lo script bash che viene eseguito in crontab ogni 2 minuti... Infatti lo script, per ogni elemento presente nella cartella writable.d, esegue il comando bash -x $i... Quindi noi creiamo un file dentro questa cartella, e poi leggiamo il log che inseriremo in /tmp... Non ho ben capito perchè apre il file invece di eseguire il nome del file... Però funziona... Infatti dentro al file di log dentro /tmp troveremo la frase di successo... Ecco i comandi da dare... Ovviamente prima di leggere il log bisogna aspettare il crontab...
There is a crontab that is called every couple of minutes.
Qui finisce il livello 03...
Nebula level02 writeup
Non so se questa è la soluzione corretta, ma getflag mi da il solito successo, quindi credo che almeno sia accettabile... Chiederò se questa soluzione va bene... Comunque seguendo in linea di principio il livello precedente, sono andato a modificare con il comando export la variabile d'ambiente USER... Ho usato un solo comando e poi ho lanciato il programma...
export USER="level02;getflag"
/home/flag02/flag02Credo che sia tutto qui...
mercoledì 30 novembre 2011
Nebula level01 writeup
Il livello 01 ha un leggerezza nel codice che è sfruttabile tramite il comando export $PATH... La leggerezza sta nell'usare
Basta poco e si può ottenere un comando echo personalizzato... Si compila e si imposta la nuova $PATH e si lancia il flag01 contenuto dentro alla cartella /home/flag01/... Questi i comandi, dentro al file echo.c incollare il codice soprastante:
Penso che il livello 01 sia risolto, anche perchè getflag dice che è corretto...
nel codice... Per comprendere perchè questo livello rientra nel caso dei $PATH weaknesses si deve comprendere come lavora env... Infatti va a ricercare dentro a $PATH il comando echo... Questo comporta che modificando $PATH e scrivendo il proprio echo, compilando con gcc si può eseguire un comando a piacere... Ed è proprio questa la vulnerabilità del codice... Così si può scrivere con poche righe qualcosa del genere:system("/usr/bin/env echo and now what?");
Basta poco e si può ottenere un comando echo personalizzato... Si compila e si imposta la nuova $PATH e si lancia il flag01 contenuto dentro alla cartella /home/flag01/... Questi i comandi, dentro al file echo.c incollare il codice soprastante:
Penso che il livello 01 sia risolto, anche perchè getflag dice che è corretto...
Nebula level00 writeup
Visto che sono bloccato e non so andare affatto avanti nel wargame Abraxas, ho deciso di trovare un nuovo wargame che mi aiuti ad andare avanti in Abraxas, visto che quest'ultimo è troppo complicato per le mie risorse... Così ho deciso di affiancare ad Abraxas questo Nebula... Sembra anche carino... Per prima cosa si deve prendere l'immagine da qui... L'immagine non viene caricata direttamente da Virtualbox, che mi da errore... Allora io estraggo tutto con 7z, per ottenere il file immagine del disco... Ho eliminato tutto e tenuto solo il file vmdk e l'ovf... Ho modificato l'ovf così:
Copiate questo per avere un ovf funzionante con Virtualbox...Alla fine ho scelto una rete privata, ed ho iniziato il wargame... Si deve prendere dal sito la descrizione del livello, per sapere cosa fare, e per essere certi di averlo fatto nel modo corretto si deve lanciare il comando getflag... Per il primo livello il wargame richiedeva questo:
Copiate questo per avere un ovf funzionante con Virtualbox...Alla fine ho scelto una rete privata, ed ho iniziato il wargame... Si deve prendere dal sito la descrizione del livello, per sapere cosa fare, e per essere certi di averlo fatto nel modo corretto si deve lanciare il comando getflag... Per il primo livello il wargame richiedeva questo:
Niente di troppo complicato... Infatti credo che questo livello servisse solo per entrare a far parte del ruxcon ctf, solo per farsi registrare al ctf... Infatti non è un vero livello... Dobbiamo trovare un programma che sia collegato all'account flag00... Logghiamoci tramite ssh con user=level00 e pass=level00, leggere le istruzioni per capire perchè...Troviamo prima tramite il comando
This level requires you to find a Set User ID program that will run as the "flag00" account. You could also find this by carefully looking in top level directories in / for suspicious looking directories.
Alternatively, look at the find man page.
To access this level, log in as level00 with the password of level00 .
cat /etc/passwdche l'account flag00 è contraddistinto dall'uid=999...Allora lanciamo il comando
find / -uid 999e troviamo il file flag00 dentro alla cartella /bin/.../flag00... Lanciamolo e lanciamo pure getflag:
cd /bin/.../flag00
./flag00
getflagFiniremo così il level00...
Iscriviti a:
Post (Atom)