
Honeypot SSH de interacción media que registra ataques de fuerza bruta e interacciones completas del shell del atacante, con opciones de personalización para reducir el fingerprinting.
Kippo es un honeypot SSH de interacción media diseñado para registrar ataques de fuerza bruta y, lo más importante, toda la interacción de shell realizada por el atacante.
Página principal original: https://code.google.com/p/kippo/.
Este es un fork público personal de Kippo, que incluye características adicionales así como modificaciones para disminuir las posibilidades de fingerprinting del honeypot.
Esto está basado en "Kippo Honeypot v0.8 (svn r248 - 2014-05-19)".
Probado en 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'
Es posible usar "iptables" y redirigir el tráfico al puerto TCP 2222 (puerto predeterminado de Kippo) o... usar "authbind" para permitir que el usuario no privilegiado (nobody) use el puerto privilegiado TCP 22 (puerto SSH predeterminado).
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'
...¡No olvides cambiar el puerto ssh "real" de antemano!.
sed -i 's/^Port .*/Port 222/' /etc/ssh/sshd_config
service ssh restart
Algunas sugerencias sobre cómo extender la personalización, haciendo la instancia única (por lo tanto, menos posibilidades de detección).
...
hostname = uniquehostname
...
Archivo: ./kippo.cfg
uniquehostname
Archivo: ./honeyfs/etc/hostname
...
127.0.0.1 uniquehostname
....
Archivo: ./honeyfs/etc/hosts
...
ssh_version_string = SSH-2.0-OpenSSH_6.0p1 Debian-4
...
Archivo: ./kippo.cfg
*************************************************************
* All connections are monitored and recorded. *
* Disconnect IMMEDIATELY if you are not an authorized user! *
*************************************************************
Archivo: ./honeyfs/etc/issue.net
Esto añadirá "Password1" a la lista de contraseñas aceptadas.
Nota: Añadir "*" aceptará cualquier contraseña enviada.
cd /opt/kippo/ && python utils/passdb.py data/pass.db add Password1
El siguiente comando generará un archivo "falso" en /root/accounts.zip.enc (que tiene 7mb).
dd if=/dev/urandom of=honeyfs/root/accounts.zip.enc bs=1M count=7
Estas son solo algunas sugerencias - ¡siéntete libre de alterar el honeypot como desees!
Kippo es un "entorno simulado". Los atacantes son colocados en una "jaula controlada", que solo responderá a comandos/archivos que hayan sido predefinidos (también conocidos como whitelisted). Como resultado, esto puede delatarlo, por ejemplo:
Kippo está lejos de ser "perfecto" y puede ser fácilmente identificado por un atacante experimentado. Sin embargo, esto podría confundir o incluso engañar a un atacante amateur haciéndole creer que es real. Como resultado, Kippo indicará si alguien está en un lugar donde no debería estar (también conocido como sistema de alerta temprana) - además, es divertido ver las repeticiones ;).
No lo uses si no aceptas los riesgos. El autor(es) no puede ser considerado responsable por el uso de este programa, incluyendo cualquier posible pérdida de datos y/o daños.
Este código ha sido diseñado y creado para invitar a usuarios no autorizados al sistema y a la red en la que se está ejecutando. Como resultado, pueden realizar acciones maliciosas en tu(s) dispositivo(s).
El código en sí (por ejemplo, el comando wget) puede usarse para conectarse a servicios que pueden o no estar expuestos públicamente. También hay varias vulnerabilidades "DoS" debido a que no hay limitaciones al acceder a los recursos. El código en sí tampoco ha pasado por una auditoría de seguridad.
Si vas a usarlo, se recomienda encarecidamente que lo ejecutes en una máquina segura, actualizada y aislada que no contenga información sensible, así como que esté separada del resto de la red (por ejemplo, zona DMZ).