systemadmin.es > Seguridad > Instalar el honeypot SSH kippo en un chroot

Instalar el honeypot SSH kippo en un chroot

Instalar un honeypot siempre puede resultar interesante al capturar los regalitos que nos pueden dejar los atacantes. Mediante Kippo, un honeypot SSH, obtenemos los regalitos y capturamos la sesión. Vamos a ver como instalarlo en un chroot.

Vamos a instalar kippo en una CentOS 5 con un chroot en /var/kippo, dicho punto debería ser un sistema de ficheros independiente por si los atacantes se dedican a bajar demasiados sus juguetes que no nos llenen el sistema de ficheros. A continuación preparamos el chroot con los repositorios básicos de CentOS 5 y EPEL:

mkdir -p /var/kippo/var/lib/rpm
rpm --rebuilddb --root=/var/kippo
wget http://fr2.rpmfind.net/linux/centos/5.8/os/i386/CentOS/centos-release-5-8.el5.centos.i386.rpm -O /var/kippo/centos-release.rpm
rpm -i --root=/var/kippo /var/kippo/centos-release.rpm --nodeps
wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm -O /var/kippo/epel.rpm
rpm -i --root=/var/kippo /var/kippo/epel.rpm 

A continuación instalamos los paquetes mínimos necesarios (y sus dependencias) dentro del chroot:

yum --installroot=/var/kippo/ install python26 -y
yum --installroot=/var/kippo/ install python26-devel -y
yum --installroot=/var/kippo/ install make gcc g++ -y
yum --installroot=/var/kippo/ install gmp-devel -y

Para que funcione el chroot, deberemos pasar el /dev y el /proc a dentro del chroot:

mount --bind /proc /var/kippo/proc
mount --bind /dev /var/kippo/dev

A continuación deberemos instalar las dependencias de Kippo: Twisted, Zope Interface, Pycrypto y pyasn1:

wget http://twistedmatrix.com/Releases/Twisted/10.2/Twisted-10.2.0.tar.bz2 -O /var/kippo/twisted.tb2
tar xjf twisted.tb2 -C /var/kippo/
wget http://old.zope.org/Products/ZopeInterface/3.3.0/zope.interface-3.3.0.tar.gz -O /var/kippo/zope.tgz
tar xzf /var/kippo/zope.tgz -C /var/kippo/
wget https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/pycrypto-2.6.tar.gz -O /var/kippo/pycrypto.tgz
tar xzf /var/kippo/pycrypto.tgz -C /var/kippo/
wget 'http://downloads.sourceforge.net/project/pyasn1/pyasn1/0.1.3/pyasn1-0.1.3.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fpyasn1%2F&ts=1338807180&use_mirror=switch' -O /var/kippo/pyasn1.tgz
tar xzf /var/kippo/pyasn1.tgz -C /var/kippo/

A continuación ya tendremos todos los paquetes descargados, deberemos entrar en el chroot para hacer la instalación:

chroot /var/kippo

Dentro del chroot deberemos ejecutar:

cd /Twisted-10.2.0/
python2.6 setup.py build
python2.6 setup.py install
cd /zope.interface-3.3.0/
python2.6 setup.py build
python2.6 setup.py install
cd /pycrypto-2.6/
python2.6 setup.py build
python2.6 setup.py install
cd /pyasn1-0.1.3/
python2.6 setup.py build
python2.6 setup.py install

En el caso que se ejecutara kippo dentro del chroot como root, el atacante podría escapar fácilmente del chroot además de tener acceso al /dev. Por lo tanto, deberemos ejecutar kippo con un usuario no privilegiado. Para ello y con el fin de simplificar las cosas, creamos fuera del chroot el usuario:

useradd kippo

A continuación añadimos el usuario en el chroot con los mismos ids:

grep "^kippo" /etc/passwd >> /var/kippo/etc/passwd

Y cambiamos los permisos del directorio kippo:

chown 514:515 /var/kippo/kippo-0.5 -R

En el root del chroot creamos un fichero para arrancar el daemon:

cat <<EOF > /var/kippo/kippo.sh
#!/bin/bash
cd kippo-0.5
./start.sh
EOF

Para arrancar el daemon, desde fuera del chroot deberemos ejecutar:

chroot /var/kippo/ su kippo -c /kippo.sh

A continuación ya tendremos el honeypot levantado y nos podremos conectar (por defecto) al puerto 2222:

$ ssh kippo -p 2222
The authenticity of host 'kippo (127.0.0.1)' can't be established.
RSA key fingerprint is 69:de:ad:de:ad:de:ad:de:ad:de:ad:de:ad:de:ad:69.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'kippo' (RSA) to the list of known hosts.
Password:
sales:~# 

Tanto el hostname como el puerto, entre otras opciones, son configurables mediante el fichero kippo.cfg. Se debe decir que tiene un bug bastante molesto que permite que el atacante detecte fácilmente si esta en el honeypot, el ps x únicamente muestra los procesos de la sesión.

One comment to “Instalar el honeypot SSH kippo en un chroot”

  1. ¿Has probado honeyd (honeyd.org)? Permite simular una LAN con distintos OS y diferentes servicios, pero creo que no permite Fake filesystem como kippo.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>