Depois de acedermos remotamente à máquina, devemos actualiza-la e em seguida temos que instalar uma dependência do Kippo, que é o “Python Twisted”.
Para tal, devemos correr o comando:
sudo apt-get install python-twisted
O gestor de pacotes vai resolver as dependências e pode-se carregar em “y” para confirmar a instalação.
Em seguida fazemos o download do Kippo com o comando:
wget http://kippo.googlecode.com/files/kippo-0.5.tar.gz
Depois descomprimimos o Kippo com o comando:
tar xzf kippo-0.5.tar.gz
Se efectuarmos um “ls” para listar a directoria onde nos encontramos (a pasta home do utilizador kippo), podemos ver que já temos a pasta do kippo.
Se acedermos à pasta do Kippo com o comando:
cd kippo-0.5
Podemos verificar que temos várias pastas que são importantes de conhecer:
dl – Esta é a pasta de todos os ficheiros de malware e exploits que um atacante faz download com o comando wget.
honeyfs – Esta é a pasta com o snapshot do sistema de ficheiros que vai ser apresentado ao atacante.
kippo.cfg – Este é o ficheiro de configuração do kippo.
log – É a pasta onde fica o log do kippo e onde ficam os logs com os comandos que são passados pelo atacante.
start.sh – Este é o script de arranque do kippo.
utils – Pasta com vários utilitários do kippo, especialmente o “createfs.py” para criar um snapshot do filesystem e o “playlog.py” para fazer replay dos ataques.
O Kippo já é um programa algo antigo e o snapshot de filesystem que vem por default já é algo antigo (de 2009). No entanto há um utilitário para fazer um snapshot do filesystem da máquina real onde nos encontramos.
Este passo pode não ser feito nesta altura. Na verdade, para “adoçar a boca” aos atacantes, pode ser só feito depois de instalado o apache httpd server e o mysql, para ele pensar que estes programas se encontram instalados.
Para criar um snapshot do filesystem actual, correr o comando:
utils/createfs.py fs.pickle
Este comando demora alguns segundos e mostra a mensagem “Doing stuff”.
Algumas propriedades da máquina que vai ser apresentada ao atacante, podem ser alteradas com um editor de ficheiros. Por exemplo, a versão de Linux que é apresentada ao atacante é o Debian 5.0. Se quisermos alterar isto, podemos editar o seguinte ficheiro:
nano honeyfs/etc/issue
E colocar uma versão mais recente de uma qualquer distribuição de Linux.
Outro exemplo é editar o ficheiro onde estão os utilizadores de sistema, que na máquina fica em “/etc/passwd”, com o comando:
nano honeyfs/etc/passwd
Dentro deste ficheiro podemos, mais uma vez, “adoçar a boca” ao atacante.
Por defeito, o Kippo vem configurado com a password “123456” para o utilizador “root” e só com esta password é que um atacante consegue aceder à máquina que vai ser apresentada ao atacante.
No entanto, podemos adicionar mais passwords que tenham sucesso quando um atacante utiliza o utilizador “root”. Aqui, quantas mais passwords evidentes passarmos, mais casos de login com sucesso vão acontecer.
A meu ver, é óptimo ter casos de sucesso de login, para se ver o que ele tenta fazer.
Para tal, passa-se o comando:
utils/passdb.py data/pass.db add pass
Em que dizemos que se o atacante passar a password “pass” com o utilizador “root”, consegue aceder.
Podemos passar as passwords que quisermos, como por exemplo:
utils/passdb.py data/pass.db add root utils/passdb.py data/pass.db add 1234 utils/passdb.py data/pass.db add redhat utils/passdb.py data/pass.db add password utils/passdb.py data/pass.db add a utils/passdb.py data/pass.db add sex
Podemos também definir output de comandos de forma estática. Por exemplo, podemos dizer que o actual “df -h” é o output do comando “df” quando o atacante corre este comando.
Para tal, corremos o seguinte comando:
df -h txtcmds/bin/df
Este é apenas um exemplo. Podemos passar os comandos que quisermos.
Em seguida, devemos configurar o principal ficheiro de configuração do Kippo, com o comando:
nano kippo.cfg
Dentro deste ficheiro, temos vários parâmetros:
ssh_port – Porta onde vai correr o Kippo. Neste caso, queremos que seja a porta 2222, visto que na 22, temos o verdadeiro servidor de ssh.
hostname – Hostname que será apresentado ao atacante.
log_path – Caminho da pasta de logs.
download_path – Caminho para a pasta de downloads que o atacante faz.
contents_path – Caminho para a pasta onde vão estar os comandos virtuais que podem ser passados pelo atacante.
filesystem_file – Caminho para o ficheiro com o snapshot do sistema de ficheiros.
data_path – localização da pasta de dados, onde fica, por exemplo, a base de dados de passwords.
txtcmds_path – Directoria onde fica o output de alguns comandos simples.
public_key – Localização com a chave pública da máquina.
private_key – Localização com a chave privada da máquina.
password – Password default do utilizador “root”.
out_addr – IP em que fica a correr o programa kippo.
sensor_name – Nome que queremos dar à máquina virtual, quando apresentada nos logs.
fake_addr – IP que queremos que seja apresentado ao atacante, da máquina virtual.
No fim temos as opções de log para uma base de dados em mysql. Vamos usa-las em seguida, para termos um site com os reports dos ataques.