Introduzione
Pensi che qualcuno stia tentando di accedere al tuo server? Per scoprirlo, puoi distribuire un honeypot all'interno del tuo sistema per aiutarti ad alleviare la tua paranoia confermando o respingendo la tua convinzione iniziale. Ad esempio, puoi avviare Kippo SSH honeypot, che ti consente di monitorare i tentativi di forza bruta, raccogliere exploit e malware attuali. Kippo registra anche automaticamente la sessione della shell dell'hacker, che puoi riprodurre per esplorare varie tecniche di hacking e successivamente utilizzare queste conoscenze raccolte per rafforzare il tuo server di produzione. Un altro motivo per installare un honeypot è distogliere l'attenzione dal server di produzione. In questo tutorial mostreremo come distribuire un honeypot SSH Kippo sul server Ubuntu.
Prerequisiti
Kippo SSH honeypot è un'applicazione basata su Python. Pertanto, dobbiamo prima installare le librerie Python:
$ sudo apt-get install python-twisted
Normalmente eseguiresti sshd servizio in ascolto sulla porta predefinita 22. Ha senso usare questa porta per il tuo honeypot SSH e quindi se esegui già il servizio SSH, dobbiamo cambiare la porta predefinita con un altro numero. Suggerirei di non utilizzare la porta alternativa 2222 poiché il suo utilizzo è già generalmente noto e potrebbe sabotare il tuo travestimento. Scegliamo un numero casuale di 4 cifre come 4632. Apri il tuo file di configurazione SSH /etc/ssh/sshd_config e cambia la direttiva Port da:
Port 22
a
Port 4632
Una volta terminato, riavvia sshd:
$ sudo service ssh restart
Puoi confermare di aver cambiato la porta correttamente con netstat comando:
$ netstat -ant | grep 4632
tcp 0 0 0.0.0.0:4632 0.0.0.0:* LISTEN
Inoltre, Kippo deve eseguire un utente non privilegiato, quindi è una buona idea creare un account utente separato ed eseguire Kippo con questo account. Crea un nuovo utente kippo:
$ sudo adduser kippo
Installazione
Kippo non richiede alcuna noiosa installazione. Tutto ciò che devi fare è scaricare un tarball gzippato ed estrarlo nella directory di kippo. Innanzitutto, accedi come o cambia utente in kippo e quindi scarica il codice sorgente di Kippo:
kippo@ubuntu:~$ wget http://kippo.googlecode.com/files/kippo-0.5.tar.gz
estrailo con:
kippo@ubuntu:~$ tar xzf kippo-0.5.tar.gz
questo creerà una nuova directory chiamata kippo-0.5.
Configurazione
Una volta che accedi alla directory di Kippo vedrai:
kippo@ubuntu:~/kippo-0.5$ ls
data dl doc fs.pickle honeyfs kippo kippo.cfg kippo.tac log start.sh txtcmds utils
Le directory e i file più importanti qui sono:
- dl – questa è una directory predefinita in cui kippo memorizzerà tutti i malware e gli exploit scaricati dall'hacker utilizzando il comando wget
- tesoro – questa directory include alcuni file, che verranno presentati all'attaccante
- kippo.cfg – il file di configurazione di kippo
- registro – directory predefinita per registrare l'interazione degli aggressori con la shell
- start.sh – questo è uno script di shell per avviare kippo
- utility – contiene varie utilità kippo da cui la più notevole è playlog.py, che ti consente di riprodurre la sessione della shell dell'attaccante
Kippo viene fornito preconfigurato con la porta 2222. Ciò è dovuto principalmente al fatto che kippo deve essere eseguito come utente non privilegiato e l'utente non privilegiato non è in grado di aprire alcuna porta, che è inferiore al numero 1024. Per risolvere questo problema possiamo utilizzare iptables con Direttive “PREOUTING” e “REDIRECT”. Questa non è la soluzione migliore in quanto qualsiasi utente può aprire la porta sopra 1024 creando così un'opportunità da sfruttare.
Apri il file di configurazione di Kippo e cambia il numero di porta predefinito in un numero arbitrario come 4633. Successivamente, crea iptables reindirizza dalla porta 22 a kippo sulla porta 4633:
$ sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 4633
Configurazioni opzionali
Filesystem
Successivamente, potresti voler configurare il filesystem, che verrà presentato all'attaccante una volta che avrà effettuato l'accesso al nostro honeypot. Per impostazione predefinita Kippo viene fornito con un proprio filesystem ma risale al 2009 e non sembra più plausibile. Puoi clonare il tuo filesystem senza rivelare alcuna informazione con l'utilità di Kippo utils/createfs.py . Con i privilegi di root esegui il seguente comando linux per clonare il tuo file system:
# cd /home/kippo/kippo-0.5/
# utils/createfs.py > fs.pickle
Doing stuff
Nome del sistema operativo
Kippo consente anche di modificare il nome del sistema operativo che si trova nel file /etc/issue. Diciamo che usiamo Linux Mint 14 Julaya. Ovviamente utilizzerai qualcosa di reale e plausibile.
$ echo "Linux Mint 14 Julaya \n \l" > honeyfs/etc/issue
File password
Modifica honeyfs/etc/passwd e renderlo più plausibile e succoso.
Password di root alternative
Kippo viene fornito con una password preimpostata “123456”. Puoi mantenere questa impostazione e aggiungere altre password come:pass, a , 123, password, root
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add pass kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add a kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add 123 kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add password kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add root
Ora l'attaccante sarà in grado di accedere come root con una qualsiasi delle password di cui sopra.
Creazione di nuovi comandi
Inoltre, Kippo ti consente di configurare comandi aggiuntivi che sono archiviati nella directory txtcmds/. Per creare un nuovo comando, ad esempio df reindirizzamo semplicemente l'output dal vero df comando a txtcmds/bin/df:
# df -h > txtcmds/bin/df
Quanto sopra è un semplice comando di output di testo statico, ma terrà occupato un utente malintenzionato per un po' di tempo.
Nome host
Modifica il file di configurazione kippo.cfg e cambia il tuo nome host in qualcosa di più attraente come:
hostname = accounting
Avvio di Kippo SSH Honeypot
Se hai seguito le istruzioni di cui sopra fino a questo punto, a questo punto dovresti aver configurato il tuo honeypot SSH con le seguenti impostazioni:
- porta di ascolto 4633
- portforward di iptables da 22 -> 4633
- nome host:contabilità
- password root multiple
- Clone Honeyfs aggiornato e aggiornato del tuo sistema esistente
- OS:Linux Mint 14 Julaya
Iniziamo ora Kippo SSH honeypot.
$ pwd
/home/kippo/kippo-0.5
kippo@ubuntu:~/kippo-0.5$ ./start.sh
Starting kippo in background...Generating RSA keypair...
done.
kippo@ubuntu:~/kippo-0.5$ cat kippo.pid
2087
Da quanto sopra, puoi vedere che Kippo è stato avviato e che ha creato tutte le chiavi RSA necessarie per la comunicazione SSH. Inoltre, ha anche creato un file chiamato kippo.pid, che contiene un numero PID dell'istanza in esecuzione di Kippo, che puoi utilizzare per terminare kippo con kill comando.
Test della distribuzione di SSH Honeypot
Ora dovremmo essere in grado di accedere al nostro nuovo server ssh alias ssh honeypot sulla porta ssh predefinita 22:
$ ssh root@server
The authenticity of host 'server (10.1.1.61)' can't be established.
RSA key fingerprint is 81:51:31:8c:21:2e:41:dc:e8:34:d7:94:47:35:8f:88.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server,10.1.1.61' (RSA) to the list of known hosts.
Password:
accounting:~# accounting:~# cd / accounting:/# ls var sbin home srv usr mnt selinux tmp vmlinuz initrd.img etc root dev sys lost+found proc boot opt run media lib64 bin lib accounting:/# cat /etc/issue Linux Mint 14 Julaya \n \l
Sembra familiare? Abbiamo finito
Funzionalità aggiuntive
Kippo viene fornito con molte altre opzioni e impostazioni. Uno di questi consiste nell'utilizzare l'utilità utils/playlog.py per riprodurre le interazioni della shell dell'attaccante archiviate nella directory log/tty/. Inoltre, Kippo consente di archiviare i file di registro nel database MySQL. Vedere il file di configurazione per ulteriori impostazioni.
Conclusione
Una cosa che deve essere menzionata è che è consigliabile configurare la directory dl di Kipps su un filesystem separato. Questa directory conterrà tutti i file scaricati dall'attaccante, quindi non vuoi che le tue applicazioni si blocchino a causa della mancanza di spazio su disco.
Kippo sembra essere un'alternativa honeypot SSH piacevole e facile da configurare agli ambienti honeypot con chroot completo. Kippo ha più funzioni da offrire rispetto a quelle descritte in questa guida. Si prega di leggere kippo.cfg per familiarizzare con loro e regolare le impostazioni di Kippo per adattarle al proprio ambiente.