
Honeypot SSH de interação média que registra ataques de força bruta e interações completas de shell do atacante, com opções de personalização para reduzir a impressão digital.
Kippo é um honeypot SSH de interação média projetado para registrar ataques de força bruta e, mais importante, toda a interação de shell realizada pelo atacante.
Página inicial original: https://code.google.com/p/kippo/.
Este é um fork público pessoal do Kippo, que inclui recursos adicionais, bem como modificações para diminuir as chances de fingerprinting do honeypot.
Isto é baseado no "Kippo Honeypot v0.8 (svn r248 - 2014-05-19)".
Testado no Debian 7 stable.
apt-get update
apt-get -y install openssl python python-dev python-openssl python-pyasn1 python-twisted git
git clone git://github.com/g0tmi1k/kippo.git /opt/kippo/
cp -n /opt/kippo/kippo.cfg{.dist,}
chown -R nobody\:nogroup /opt/kippo/
su nobody -c '/bin/bash /opt/kippo/start.sh'
É possível usar "iptables" e redirecionar o tráfego para a porta TCP 2222 (porta padrão do Kippo) ou... usar "authbind" para permitir que o usuário não privilegiado (nobody) use a porta privilegiada TCP 22 (porta SSH padrão).
apt-get -y install authbind
touch /etc/authbind/byport/22
chown nobody\:nogroup /etc/authbind/byport/22
chmod 0777 /etc/authbind/byport/22
sed -i 's/^twistd /authbind --deep twistd /' /opt/kippo/start.sh
sed -i 's/^ssh_port = .*/ssh_port = 22/' /opt/kippo/kippo.cfg
[ -e /opt/kippo/kippo.pid ] && kill $(cat /opt/kippo/kippo.pid) && sleep 2
su nobody -c '/bin/bash /opt/kippo/start.sh'
...Não se esqueça de alterar a porta SSH "real" antes!.
sed -i 's/^Port .*/Port 222/' /etc/ssh/sshd_config
service ssh restart
Algumas sugestões sobre como estender a personalização, tornando a instância única (portanto, menos chance de detecção).
...
hostname = uniquehostname
...
Arquivo: ./kippo.cfg
uniquehostname
Arquivo: ./honeyfs/etc/hostname
...
127.0.0.1 uniquehostname
....
Arquivo: ./honeyfs/etc/hosts
...
ssh_version_string = SSH-2.0-OpenSSH_6.0p1 Debian-4
...
Arquivo: ./kippo.cfg
*************************************************************
* All connections are monitored and recorded. *
* Disconnect IMMEDIATELY if you are not an authorized user! *
*************************************************************
Arquivo: ./honeyfs/etc/issue.net
Isto adicionará "Password1" à lista de senhas aceitas.
Nota: Adicionar "*" aceitará qualquer senha enviada.
cd /opt/kippo/ && python utils/passdb.py data/pass.db add Password1
O comando a seguir gerará um arquivo "falso" em /root/accounts.zip.enc (que tem 7mb).
dd if=/dev/urandom of=honeyfs/root/accounts.zip.enc bs=1M count=7
Estas são apenas algumas sugestões - sinta-se à vontade para alterar o honeypot como desejar!
Kippo é um "ambiente simulado". Os atacantes são colocados em uma "jaula controlada", que só responderá a comandos/arquivos que foram previamente definidos (também conhecidos como whitelisted). Como resultado, isto pode denunciá-lo, por exemplo:
Kippo está longe de ser "perfeito" e pode ser facilmente identificado por um atacante experiente. No entanto, isto pode confundir ou até enganar um atacante amador, fazendo-o acreditar que é real. Como resultado, o Kippo indicará se alguém está em algum lugar onde não deveria estar (também conhecido como sistema de alerta antecipado) - além de ser divertido assistir às reproduções ;).
Não use se você não aceita os riscos. O(s) autor(es) não podem ser responsabilizados pelo uso deste programa, incluindo por qualquer possível perda de dados e/ou danos.
Este código foi projetado e criado para convidar usuários não autorizados para dentro do sistema e da rede na qual ele está sendo executado. Como resultado, eles podem realizar ações maliciosas em seu(s) dispositivo(s).
O código em si (por exemplo, o comando wget) pode ser usado para se conectar a serviços que podem ou não estar expostos publicamente. Além disso, há várias vulnerabilidades de "DoS" devido à ausência de limitações ao acessar recursos. O código em si também não passou por uma auditoria de segurança.
Se você for usá-lo, é altamente recomendável que você o execute em uma máquina segura, atualizada e isolada, que não contenha nenhuma informação sensível, além de estar separada do resto da rede (por exemplo, zona DMZ).