giovedì 3 novembre 2011

Abraxas 2011 - writeup level3

Il livello 3 mi ha permesso di esaminare un nuovo tool che è presente in qualsiasi distro linux ma che io non conoscevo... Il tool è strace, e rimando a wikipedia per una prima infarinatura... In pratica monitora le chiamate e le operazioni dello script lanciato... Questo tool mi è stato suggerito sempre da Steven...

Questo tool mi ha permesso di scoprire come lo script che avevo a disposizione operasse segretamente, cioè fornendomi le informazioni necessarie per capire che lo script cercava dentro una cartella delle chiamate ad altri script... Forse potevo intuirlo dal codice, ma solo il codice non mi dava molte informazioni... Come sempre si deve leggere il blog dell'agente 7a69, per avere qualche informazione in più:
She created software to process data from the life support systems and generate statistics. The life support system code depends on some kernel module that hasn't been developed yet so she's currently testing with generated datasets. The entire thing is written in bash and runs as a cronjob every 10 minutes.
 Le informazioni necessarie sono contenute nell'ultima riga... Cioè che gli script sono scritti in bash(si poteva capire anche dalla visione del sorgente degli script) e che ogni 10 minuti vengono eseguiti da cron... Quindi ho fatto 2 cose... Controllare cron per capire qualcosa in più:

cat /etc/cron.d/lifesupport_process

Da qui si nota che il processo viene avviato dall'utente level3, che è quello di cui cerchiamo la password... Ritornando allo script, notiamo che non trovando dentro /opt/lifesupportdata/ lo script common.inc.sh lo va a cercare nella seconda cartella definita da PATH, ma che comunque esegue sempre il controllo per vedere se è presente nella cartella suddetta...

Ho quindi creato dentro ad /opt/lifesupportdata/ un semplicissimo script in bash:

cd /opt/lifesupportdata/
nano common.inc.sh

#!/bin/bash
echo "Ciao" >> /tmp/file
cat /etc/pass/level3 >> /tmp/file

Il "Ciao" non serve a dir la verità, ma vabbè, l'ho messo così... Adesso lo script troverà nella prima PATH il secondo script che vuole includere, e così possiamo fargli aprire il file contenente la password grazie all'aiuto di cron... In un primo momento non funzionava, poi ho riavviato e lo script mi ha dato la password cercata...

Adesso abbiamo la password dell'utente level3, possiamo usare questo utente per proseguire nel wargame... Tutto il wargame si basa sull'analisi dello script, e dell'uso di strace... Infatti proprio questo mi ha fatto notare come lo script funzionasse...

Nessun commento: