ArtigosDestaque

Instalação do Kippo ssh honeypot

2013-02-08-184740_660x464_scrot

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

2013-02-08-184806_660x464_scrot

O gestor de pacotes vai resolver as dependências e pode-se carregar em “y” para confirmar a instalação.

2013-02-08-184856_660x464_scrot

Em seguida fazemos o download do Kippo com o comando:

wget http://kippo.googlecode.com/files/kippo-0.5.tar.gz

2013-02-08-184941_660x464_scrot

Depois descomprimimos o Kippo com o comando:

tar xzf kippo-0.5.tar.gz

2013-02-08-185008_660x464_scrot

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.

2013-02-08-185028_660x464_scrot

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.

2013-02-08-185323_660x464_scrot

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”.

2013-02-08-185351_660x464_scrot

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

2013-02-08-185405_660x464_scrot

E colocar uma versão mais recente de uma qualquer distribuição de Linux.

2013-02-08-185520_660x464_scrot

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

2013-02-08-185539_660x464_scrot

Dentro deste ficheiro podemos, mais uma vez, “adoçar a boca” ao atacante.

2013-02-08-185725_660x464_scrot

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

2013-02-08-185805_660x464_scrot

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.

2013-02-08-185846_660x464_scrot

Em seguida, devemos configurar o principal ficheiro de configuração do Kippo, com o comando:

nano kippo.cfg

2013-02-08-185903_660x464_scrot

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.

2013-02-08-185926_660x464_scrot

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.

2013-02-08-185944_660x464_scrot

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.

2013-02-08-185959_660x464_scrot

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.

2013-02-08-190019_660x464_scrot

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.

2013-02-08-190029_660x464_scrot

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.

Página anterior 1 2 3 4Página seguinte

Artigos Relacionados

Botão Voltar ao Topo