Esta pagina se ve mejor con JavaScript habilitado

Honeypot Cowrie

 ·  🎃 kr0m

El uso de honeypots puede ser muy útil en ciertos entornos, por ejemplo podemos hacer que los atacantes se entretengan con estos servidores haciéndoles perder el tiempo y el interés en nosotros, además es muy entretenido ver que técnicas emplean y que tipo de ataques ejecutan.

Primero instalamos soporte para virtualenvs en python:

emerge -av dev-python/virtualenv

Añadimos el usuario con el que correremos el honeypot:

useradd cowrie

Clonamos el código del proyecto:

Creamos un virtual env, lo activamos e instalamos los requisitos:

cd cowrie/
virtualenv –python=python3 cowrie-env
source cowrie-env/bin/activate
pip install –upgrade pip
pip install –upgrade -r requirements.txt

Configuramos cowrie para que parezca un sistema mas normal y que guarde los logs en un fichero de txt:

cp etc/cowrie.cfg.dist etc/cowrie.cfg
vi etc/cowrie.cfg

[honeypot]
hostname = RX4

[shell]
kernel_version = 4.2.0-4-kr0m-amd64
kernel_build_string = #1 SMP Gentoo 4.2.0

[ssh]
version = SSH-2.0-OpenSSH_6.0p1 Gentoo-amd64

[output_jsonlog]
enabled = false

[output_textlog]
enabled = true
logfile = ${honeypot:log_path}/audit.log
format = text

Arrancamos solo para comprobar que la instalación base funciona:

bin/cowrie start

Cowrie corre sobre el puerto 2222, así que configuramos la siguiente regla de firewall para que el tráfico del puerto 22 termine en el 2222:

iptables -t nat -A PREROUTING -p tcp –dport 22 -j REDIRECT –to-port 2222

Conectamos por ssh:

ssh HONEYPOT -p22

Revisamos que los comandos se logean y todo funciona correctamente:

tail var/log/cowrie/audit.log

Paramos cowrie para generar nuestro propio filesystem:

bin/cowrie stop

Para generar un sistema de ficheros utilizaremos el script bin/createfs proporcionado por Cowrie, este nos generará un fichero con los metadatos de cada fichero, permisos, etc, pero si en el honeypot se hace un cat estarán vacíos, para que tengan contenido hay que meterlos en el directorio honeyfs.

La mejor manera de conseguir esto es montar un CT LXD, copiar el rootfs a honeyfs y luego generar el fichero pickle a partir de este rootfs:

ssh LXD
cd /var/lib/lxd/containers/NOMBRE/
tar czvf rootfs.tar.gz rootfs
exit

Como root:

scp SERVER:/var/lib/lxd/containers/NOMBRE/rootfs.tar.gz /home/cowrie/
cd /home/cowrie/
tar xvzf rootfs.tar.gz
cp -r rootfs/* cowrie/honeyfs/
chown -R root:root /home/cowrie/cowrie/honeyfs/

Retocamos un poco el sistema:

cd /home/cowrie/cowrie/honeyfs/etc
vi hostname
vi issue
vi motd
vi hosts

NOTA: Los cambio realizados sobre /root no se reflejan, supongo que es alguna medida de seguridad de Cowrie para evitar posibles leaks de información.

Dejamos algunos regalitos:

vi shadow

root:!PLAYWITHTHEBESTDIELIKETHEREST:10770:0:::::
vi ../id_rsa
PLAYWITHTHEBESTDIELIKETHEREST
mkdir -p /home/cowrie/cowrie/honeyfs/home/kr0m/.ssh
echo “PLAYWITHTHEBESTDIELIKETHEREST” > /home/cowrie/cowrie/honeyfs/home/kr0m/.ssh/id_rsa
chown -R kr0m:kr0m /home/cowrie/cowrie/honeyfs/home/kr0m/

Movemos la meta información del sistema de ficheros original y la regeneramos con la estructura actual:

mv share/cowrie/fs.pickle share/cowrie/fs.pickle.ori
bin/createfs -l honeyfs -o share/cowrie/fs.pickle

Arrancamos cowrie:

bin/cowrie start

Accedemos por ssh y comprobamos los cambios:

ssh HONEYPOT -p22

Welcome to Gentoo system
root@RX4:~# uname -a
Linux RX4 4.2.0-4-kr0m-amd64 #1 SMP Gentoo 4.2.0 x86_64 GNU/Linux
root@RX4:~# cat /etc/hostname
RX4
root@RX4:~# cat /etc/shadow
root:!PLAYWITHTHEBESTDIELIKETHEREST:10770:0:::::
root@RX4:~# cat /id_rsa
PLAYWITHTHEBESTDIELIKETHEREST

Si necesitamos restaurar el filesystem original siempre podemos bajárnoslo del repo de git:

Si reiniciamos tendremos que arrancar Cowrie cargando previamente el entorno virtual de python:

su cowrie -l
cd cowrie
virtualenv –python=python3 cowrie-env
source cowrie-env/bin/activate
bin/cowrie start

NOTA: Cuando se hace login se está realizando una copia del filesystem a RAM, esto puede tardar un poco dependiendo del HW donde corra cowrie

Si te ha gustado el artículo puedes invitarme a un RedBull aquí