MySql e HoneyStats, organizzare e gestire i dati di una honeypot su RaspberryPi

honeystats

Configuriamo HoneyStats

HoneyStats è un piccolo insieme di script bash, che unito ad alcune pagine php, agevola l’estrazione dei dati dal database e ci consente di pubblicarli online su un sito web.

Vediamo come installarlo e configurarlo.

Preparazione di un virtual-host su Apache

Se non lo avete già installato, effettuate il download di apache sul vostro RaspberryPi con apt-get e modificate i file di configurazione per abilitare un nuovo virtual-host.

Sarà questo virtual-host che si occuperà di visualizzare le nostre statistiche create con HoneyStats.

Aggiungete quindi queste righe nel file /etc/apache2/sites-enabled/000-default

<VirtualHost *:65000>
         ServerAdmin webmaster@localhost
         ServerName nowhere.purificato.org
         ServerAlias nowhere.purificato.org *.nowhere.purificato.org
         DocumentRoot /var/www/honeystats
         <Directory />
                 Options FollowSymLinks
                 AllowOverride None
         </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
< /VirtualHost>

Ricordatevi di modificare ServerName e ServerAlias con i vostri parametri.

Nel file /etc/apache2/ports.conf abilitiamo la porta 65000 configurata nel file precedente aggiungendo queste righe:

NameVirtualHost *:65000
 listen 65000

E siamo a buon punto!

Facciamo ripartire il server Apache. Da adesso richiamando l’URL http://nostroip:65000/ vedremo il contenuto della directory /var/www/honeystats!

Download da github

Da utente root andiamo sotto /opt e scarichiamo il framework da github:

cd /opt
git clone git://github.com/bunk3r/honeystats.git

Editiamo il file di configurazione presente dentro /opt/honeystats e rinominiamolo in honeystats.cfg.

All’interno della variabile ‘www‘ va configurato il percorso della ‘document-root‘ di Apache che abbiamo configurato poco fa; sarà qui che una volta estratti dal database verranno copiati i file di testo contenenti i log e sarà qui che dovrete copiare il contenuto della directory /opt/honeystats/www.

Copiamo quindi il sito di Honeystats nella nostra document-root del virtual host:

cp -r /opt/honeystats/www/* /var/www/honeystats/

e andiamo ad editare il file di configurazione con i nostri utenti e relative password dei database:

# path to local www root
www=/var/www/honeystats
# path of honeystats
app=/opt/honeystats
# path to fuse ftp / ssh filesystem
mnt=/mnt/yourdomain/yourpath
# mysql root
mysqluser=root
mysqlpass=mysqlpass
# kippo cfg
kippodb=kippo
# will be used ASAP
#kippouser=kippo
#kippopass=kippopass
# glastopf cfg
glastodb=glastopf
# will be used ASAP
#glastuser=glastopf
#glastpass=glastopass

Come avrete notato, nel file di configurazione è presente anche una variabile ‘mnt’.

Tale variabile può essere utilizzata, modificando gli script .sh del framework, per abilitare la copia automatica delle statistiche su un mount-point remoto, come ad esempio la directory ftp remota del vostro hosting, montata in locale attraverso ‘fuse’.

Non sarà argomento di questo articolo per ora, ma se ne avete bisogno contattatemi privatamente o meglio ancora lasciate un commento e vi darò una mano volentieri, oppure aspettate il prossimo post dedicato alle honeypot! 🙂

Ci siamo quasi

Siamo quasi pronti per generare le statistiche, prima di fare ciò vediamo come funziona il framework.

Abbiamo due script principali:

  • slowquery.sh, il file con le query ‘pesanti’ (ad esempio quelle che creano il dizionario di password da kippo)
  • mainstats.sh, tutte le altre query, normalmente eseguite in pochi secondi.

Questi sono i file che una volta lanciati estrarranno dal database i dati e creeranno alcuni file txt che poi saranno caricati dalle pagine del sito in php.

Si parte!

Avete due opzioni ora:

  1. lanciare gli script a mano (anti-pigro!)
  2. aggiungere come task di crontab l’esecuzione automatica degli script (pigro-compliant!)

Configuriamo crontab per eseguire gli script di HoneyStats

La questione è abbastanza semplice, editiamo da root il file di crontab con il comando ‘crontab -e’ e aggiungiamo le righe:

0,30 * * * * /opt/honeystats/mainstats.sh
30 2 * * * /opt/honeystats/slowquery.sh

Salviamo il file; da ora in poi i due script verranno eseguiti rispettivamente ogni 30 minuti (mainstats.sh) e tutti i giorni alle 2:30 di mattina (slowquey.sh).

Per controllare che tutto sia al proprio posto però, lanciamo anche gli script singolarmente, l’output vi guiderà in caso di errori:

cd /opt/honeystats/ 
./mainstats.sh
 [i] applying 777 to stats dir (/opt/honeystats/stats)
 [i] creating glastopf_top15files.txt.tmp
 [i] creating mfiles.txt.tmp
 [i] creating kippo_top20ip.txt.tmp
 [i] creating kippo_last20sess.txt.tmp
 [i] creating kippo_last50commands.txt.tmp
 [i] creating glastopf_last20events.txt.tmp
 [i] creating glastopf_top15ip.txt.tmp
 [i] creating glastopf_top15ext.txt.tmp
 [i] creating glastopf_top15intitle.txt.tmp
 [i] creating glastopf_top15intext.txt.tmp
 [i] creating glastopf_top15inurl.txt.tmp
 [i] creating live_users.txt.tmp

[i] applying 777 to stats dir (/var/www/honeystats/stats) [i] cp /opt/honeyst/stats/*.txt to /var/www/honeystats/stats [i] applying 777 to stats dir (/var/www/honeystats/stats) [i] applying 777 to stats dir (/opt/honeystats/stats)

Ottimo! Tutto sembra funzionare bene (fate lo stesso con ‘slowquery.sh’ e pazientate un po’ di più perchè l’estrazione dei dati sarà molto più lenta).

Da questo momento collegatevi all’URL del vostro server web sulla porta 65000 e potrete ammirare le statistiche aggiornate!

Se siete curiosi di vedere quale sarà il risultato finale, trovate un esempio proprio qui: http://nowhere.purificato.org:65000/ (Apache sul mio RaspberryPi)

Per chiudere

HoneyStats viene aggiornato molto spesso, perciò ogni tanto vi consiglio di controllare su github se ci sono stati aggiornamenti e nel caso allineare la vostra copia locale con il repository remoto.

E’ sufficiente lanciare dall’interno della directory /opt/honeystats il comando ‘git pull‘.

Se avete domande, chiarimenti, puntualizzazioni, miglioramenti da proporre lasciate un commento e sarò ben felice di rispondere!