GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Despliegue de Kippo SSH Honeypot en Ubuntu Linux

Introducción

¿Sientes que alguien está intentando acceder a tu servidor? Para averiguarlo, puede implementar un honeypot dentro de su sistema para ayudarlo a aliviar su paranoia ya sea confirmando o descartando su creencia inicial. Como ejemplo, puede iniciar el honeypot Kippo SSH, que le permite monitorear los intentos de fuerza bruta, recopilar exploits y malware actuales. Kippo también registra automáticamente la sesión de shell del pirata informático, que puede reproducir para explorar varias técnicas de piratería y luego usar este conocimiento recopilado para fortalecer su servidor de producción. Otra razón por la que instalar un honeypot es quitarle atención a su servidor de producción. En este tutorial, mostraremos cómo implementar un honeypot Kippo SSH en el servidor Ubuntu.

Requisitos

Kippo SSH honeypot es una aplicación basada en Python. Por lo tanto, primero debemos instalar las bibliotecas de Python:

$ sudo apt-get install python-twisted

Normalmente ejecutarías tu sshd servicio de escucha en el puerto predeterminado 22. Tiene sentido usar este puerto para su honeypot SSH y, por lo tanto, si ya ejecuta el servicio SSH, debemos cambiar el puerto predeterminado a algún otro número. Sugeriría no usar el puerto alternativo 2222 ya que su uso ya es generalmente conocido y podría sabotear su disfraz. Escojamos un número aleatorio de 4 dígitos como 4632. Abra su archivo de configuración SSH /etc/ssh/sshd_config y cambie la directiva Port de:

Port 22

a

Port 4632

Una vez hecho, reinicie su sshd:

$ sudo service ssh restart

Puedes confirmar que has cambiado el puerto correctamente con el netstat comando:

$ netstat -ant | grep 4632
tcp 0 0 0.0.0.0:4632 0.0.0.0:* LISTEN

Además, Kippo necesita ejecutar un usuario sin privilegios, por lo que es una buena idea crear una cuenta de usuario separada y ejecutar Kippo bajo esta cuenta. Crear un nuevo usuario kippo:

$ sudo adduser kippo

Instalación

Kippo no requiere ninguna instalación tediosa. Todo lo que hay que hacer es descargar un tarball comprimido con gzip y extraerlo en el directorio de kippo. Primero, inicie sesión como o cambie de usuario a kippo y luego descargue el código fuente de Kippo:

kippo@ubuntu:~$ wget http://kippo.googlecode.com/files/kippo-0.5.tar.gz

extráigalo con:

kippo@ubuntu:~$ tar xzf kippo-0.5.tar.gz 

esto creará un nuevo directorio llamado kippo-0.5.

Configuración

Una vez que navegue al directorio de Kippo, verá:

kippo@ubuntu:~/kippo-0.5$ ls
data dl doc fs.pickle honeyfs kippo kippo.cfg kippo.tac log start.sh txtcmds utils

Los directorios y archivos más notables aquí son:

  • dl – este es un directorio predeterminado cuando kippo almacenará todo el malware y los exploits descargados por el hacker usando el comando wget
  • mieles – este directorio incluye algunos archivos, que se presentarán al atacante
  • kippo.cfg – archivo de configuración de kippo
  • registro – directorio predeterminado para registrar la interacción de los atacantes con el shell
  • inicio.sh – este es un script de shell para iniciar kippo
  • utilidades – contiene varias utilidades de kippo, de las cuales la más notable es playlog.py, que le permite reproducir la sesión de shell del atacante

Kippo viene preconfigurado con el puerto 2222. Esto se debe principalmente a que kippo necesita ejecutarse como usuario sin privilegios y el usuario sin privilegios no puede abrir ningún puerto, que está por debajo del número 1024. Para resolver este problema, podemos usar iptables con Directivas “PREOUTING” y “REDIRECT”. Esta no es la mejor solución ya que cualquier usuario puede abrir un puerto por encima de 1024 creando así una oportunidad para explotar.

Abra el archivo de configuración de Kippo y cambie el número de puerto predeterminado a algún número arbitrario como 4633. Después de esto, cree una redirección de iptables desde el puerto 22 a Kippo en el puerto 4633:

$ sudo iptables -t nat -A PREROUTING -p tcp --dport 22 -j REDIRECT --to-port 4633

Configuraciones opcionales

Sistema de archivos

A continuación, es posible que desee configurar el sistema de archivos, que se le presentará al atacante una vez que inicie sesión en nuestro honeypot. Por defecto, Kippo viene con su propio sistema de archivos, pero data de 2009 y ya no parece plausible. Puede clonar su propio sistema de archivos sin revelar ninguna información con la utilidad de Kippo utils/createfs.py . Con privilegios de root, ejecute el siguiente comando de Linux para clonar su sistema de archivos:

# cd /home/kippo/kippo-0.5/
# utils/createfs.py > fs.pickle
Doing stuff

Nombre del sistema operativo

Kippo también le permite cambiar el nombre del sistema operativo ubicado en el archivo /etc/issue. Digamos que usamos Linux Mint 14 Julaya. Por supuesto que usarás algo real y plausible.

$ echo "Linux Mint 14 Julaya \n \l" > honeyfs/etc/issue

Archivo de contraseña

Editar honeyfs/etc/passwd y hacerlo más plausible y jugoso.

Contraseñas raíz alternativas

Kippo viene con una contraseña preconfigurada "123456". Puede mantener esta configuración y agregar más contraseñas como:pass, a, 123, password, root

kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add pass
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add a 
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add 123 
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add password 
kippo@ubuntu:~/kippo-0.5$ utils/passdb.py data/pass.db add root

Ahora el atacante podrá iniciar sesión como root con cualquiera de las contraseñas anteriores.

Creación de nuevos comandos

Además, Kippo le permite configurar comandos adicionales que se almacenan en el directorio txtcmds/. Para crear un nuevo comando, por ejemplo df simplemente redirigimos la salida desde el df real comando a txtcmds/bin/df:

# df -h > txtcmds/bin/df

El anterior es un comando de salida de texto estático simple, pero mantendrá ocupado al atacante durante algún tiempo.

Nombre de host

Edite el archivo de configuración kippo.cfg y cambie su nombre de host a algo más atractivo como:

hostname = accounting

Iniciando Kippo SSH Honeypot

Si siguió las instrucciones anteriores hasta este punto, ahora debería haber configurado su honeypot SSH con las siguientes configuraciones:

  • puerto de escucha 4633
  • puerto de iptables desde 22 -> 4633
  • nombre de host:contabilidad
  • múltiples contraseñas raíz
  • nuevo y actualizado clon de honeyfs de su sistema existente
  • SO:Linux Mint 14 Julaya

Comencemos ahora con el honeypot SSH de Kippo.

$ pwd
/home/kippo/kippo-0.5
kippo@ubuntu:~/kippo-0.5$ ./start.sh
Starting kippo in background...Generating RSA keypair...
done.
kippo@ubuntu:~/kippo-0.5$ cat kippo.pid
2087

De lo anterior, puede ver que Kippo se inició y creó todas las claves RSA necesarias para la comunicación SSH. Además, también creó un archivo llamado kippo.pid, que contiene un número PID de la instancia en ejecución de Kippo, que puede usar para terminar kippo con kill comando.

Prueba de implementación de SSH Honeypot

Ahora, deberíamos poder iniciar sesión en nuestro nuevo servidor ssh alias ssh honeypot en el puerto ssh predeterminado 22:

$ ssh root@server 
The authenticity of host 'server (10.1.1.61)' can't be established.
RSA key fingerprint is 81:51:31:8c:21:2e:41:dc:e8:34:d7:94:47:35:8f:88.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'server,10.1.1.61' (RSA) to the list of known hosts.
Password:
accounting:~# accounting:~# cd / accounting:/# ls var sbin home srv usr mnt selinux tmp vmlinuz initrd.img etc root dev sys lost+found proc boot opt run media lib64 bin lib accounting:/# cat /etc/issue Linux Mint 14 Julaya \n \l

¿Luce familiar? Hemos terminado

Funciones adicionales

Kippo viene con muchas otras opciones y configuraciones. Una de ellas es usar la utilidad utils/playlog.py para reproducir las interacciones del shell del atacante almacenadas en el directorio log/tty/. Además, Kippo permite que la base de datos MySQL almacene archivos de registro. Consulte el archivo de configuración para obtener ajustes adicionales.

Conclusión

Una cosa que debe mencionarse es que es recomendable configurar el directorio dl de Kipps en algún sistema de archivos separado. Este directorio contendrá todos los archivos descargados por el atacante, por lo que no querrá que sus aplicaciones se bloqueen por falta de espacio en el disco.

Kippo parece ser una buena y fácil de configurar SSH honeypot alternativa a los entornos de honeypot con chroot completo. Kippo tiene más funciones que ofrecer además de las descritas en esta guía. Lea kippo.cfg para familiarizarse con ellos y ajuste la configuración de Kippo para que se adapte a su entorno.


Ubuntu
  1. Permitir el inicio de sesión ssh root en el servidor Ubuntu 14.04 Linux

  2. Cómo cambiar el puerto SSH en Linux

  3. Cambiar el puerto SSH en el sistema Linux Ubuntu 20.04:¿el mejor método?

  4. Cómo cambiar el puerto SSH en Lubuntu 20.04 Linux

  5. Los mejores escáneres de puertos en Ubuntu Linux

Habilite SSH en Ubuntu 22.04 Jammy Jellyfish Linux

Cómo cambiar el puerto SSH en Linux

Cómo instalar el servidor SSH en Ubuntu 20.04

Cómo habilitar ssh en Ubuntu 20.04 LTS Linux

Cómo cambiar el puerto SSH en Ubuntu

¿Cómo cambiar el puerto SSH en Ubuntu?