TinyHoneypot ovvero thpot
by admin on May.04, 2009, under Hacking, Linux, Sicurezza, Tools
TinyHoneypot (thpot) è un programma che, configurato per essere eseguito tramite xinetd (oppure inetd), permette di allestire servizi fasulli. Tutti i tentativi di connessione e le sessioni relative ai servizi simulati vengono registrate.
Il principio di funzionamento è semplice e si basa su due concetti: ascolto e registrazione. Dato che non vi può essere alcuna intrusione fino a che una connessione non sia stata stabilita, viene offerta all’intruso la possibilità di ottenerne una su una porta qualsiasi.
Non appena connesso, gli viene presentata una formula di benvenuto (di default viene utilizzato fortune) ed un prompt tipicamente assegnato all’utente root.
La cosa è meno bislacca di quanto si possa supporre in quanto corrisponde ad un comportamento piuttosto diffuso fra i vecchi Unix, quando il networking era molto più naive:
Se lo si preferisce, si può comunque impostare un listener silenzioso (nessun messaggio o prompt).
Viene usato xinetd (oppure inetd) per aprire una singola porta. Le nuove connessioni vengono affidate ad un semplice script Perl che genera due files: uno che traccia la connessione, ed un altro, unico per sessione, in cui semplicemente vengono catturati tutti i dati ricevuti.
Il target REDIRECT di iptables viene quindi utilizzato per passare tutte le richieste di connessione entranti, indipendentemente dalla porta di destinazione, al “listener” gestito da xinetd, a meno di indicare una eccezione.
Portmap è una di tali eccezioni.
Per sapere su quale porta rpc.cmsd (o qualsiasi altro servizio rpc) sia in ascolto, un intruso deve interrogare il portmapper del sistema violato.
Per tale eventualità viene attivato un portmapper, con mappaggi fasulli per ogni servizio possibile.
L’installazione, dato che thpot è un software piuttosto datato, è tranquillamente attuabile a partire da un package, se disponibile per la propria distribuzione (per Debian/Ubuntu non vi sono problemi), oppure, dopo aver scaricato il tarball da qui, si può procedere nel modo seguente:
# cd /usr/local
# zcat | tar -xvf -
# ln -s thp-0.x.x thp
# mkdir /var/log/hpot
# chown nobody:nobody /var/log/hpot
# chmod 700 /var/log/hpot
# cp ./thp/xinetd.d/* /etc/xinetd.d
quindi editare i files relativi a xinetd per modificare il parametro “disable”, e poi apportare le necessarie personalizzazioni a percorsi dei files e preferenze in thp.conf ed in iptables.rules
# ./thp/iptables.rules
# /etc/rc.d/init.d/portmap start
# pmap_set < ./thp/fakerpc
# /etc/rc.d/init.d/xinetd start
Invece che xinetd, si può, volendo, utilizzare inetd, perdendo qualcosa in flessibilità, compresa la capacità di limitare le sessioni concorrenti. In tal caso, va specificata in inetd.conf una linea del tipo:
6635 stream tcp nowait nobody /usr/sbin/thpot
L’eseguibile /usr/sbin/thpot è l’elemento principale del software. Esso genera le entries presenti in /var/log/hpot/captures, ed invoca gli appropriati gestori a partire da thpfunc.pl.
Il programma accetta come argomento il nome del servizio che si intende simulare: shell, ftp, http, mssql, smtp, pop3 oppure ssh.
Se non si specifica un nome tra questi, la sessione viene comunque registrata.


