Advertisement

header ads

GOLPEOS DE PUERTOS EN KALI LINUX PORT KNOCKING Raspberry Pi

El otro día estaba conversando con una persona de la EKOSPACE que le comente que estaba jugando con mi raspberry usando kali linux con servidores SSH y me recomendó proteger mis puertos en el cual me dio una linda explicación para conocerlo para un futuro poder romperlo.


Al ejecutarlo me muestra que el puerto esta cerrado pero con un comando adecuado puedes ingresar al servidor.
EJEMPLO CON UN SERVIDOR NO PROTEGIDO.

¿CÓMO SE VE UN SERVIDOR PROTEGIDO?

 Simplemente tenemos dos grandes diferencia en el primer ejemplo podemos acceder muy fácilmente con un método pero con protección porque al acceder en ambos te pueden reconocer el ingreso. Recuerda un servidor basado en SSH puede ser bueno la seguridad pero en este caso vamos a ponerle mas seguridad que son los puertos.


Introducción


Existen servidores de seguridad y deben ser utilizados para bloquear el acceso a los puertos que no se están utilizando por un servicio, pero todavía queda la cuestión de qué hacer con los servicios que desee acceder a, pero no quiere exponer a todo el mundo. Desea acceder cuando lo necesite, pero que él quiere bloqueada de otra manera.

Golpeo de puertos es un método para oscurecer los servicios que se estén ejecutando en el equipo. Permite que el servidor de seguridad proteja sus servicios hasta que usted pida que puerto se abrió a través de una secuencia específica de tráfico de la red.
En esta guía, vamos a discutir como implementar golpeo de puertos como un método de ocultar su demonio SSH en un KALI LINUX VPS utilizando el paquete de knockd.

SEGUN WIKIPEDIA

El golpeo de puertos (del inglés port knocking) es un mecanismo para abrir puertos externamente en un firewall mediante una secuencia preestablecida de intentos de conexión a puertos que se encuentran cerrados. Una vez que el firewall recibe una secuencia de conexión correcta, sus reglas son modificadas para permitir al host que realizó los intentos conectarse a un puerto específico.
El propósito principal del golpeo de puertos es prevenir un escanéo de puertos por parte de un atacante que busca posibles servicios vulnerables. Como los mismos solo se abren ante un golpeo de puertos correcto. Normalmente los puertos donde se brindan los servicios se muestran aparentemente cerrados.
Por lo general este mecanismo se implementa configurando un servicio para que revise la bitácora o log del firewall para detectar esta secuencia de intentos de conexión. Otra forma es tener un proceso examinando paquetes con alguna interfaz de captura de paquetes, pero esto tiene que hacerse en puertos TCP que se encuentren “abiertos”.
El mayor uso del golpeo de puertos, es para determinar acceso al puerto 22, el puerto del Secure Shell (SSH). El golpeo en cuestión es similar a un handshake secreto. La complejidad del mismo puede variar desde una simple lista ordenada de intentos de conexión a puertos TCP, UDP, ICMP u otro protocolo; hasta un hash basado en la dirección origen, tiempo y otros factores, el cual determinará cuáles serán los puertos a golpear.
Para la implementación, la idea es que el cliente tenga una aplicación que ejecute el golpeo antes de acceder al servidor de manera normal. Un servicio se encuentra escuchando en la máquina donde está el firewall los paquetes que llegan a la misma. El utilitario del cliente, responsable de realizar el golpeo de los puertos puede ser desde un sencillo programa que ejecute comandos de ping, hasta un complejo programa generador de un hash.
Generalmente no hay ninguna indicación cuando un usuario ejecuta una secuencia errónea de PK. Simplemente el puerto que se esperaba estuviese abierto al final de la secuencia, no lo está. Ningún paquete es enviado al usuario en ningún momento.

INSTALACIÓN:

Primeramente yo tengo un Raspberry Pi en el cual instale Kali Linux y como saben la conexión SSH es por medio de puerto 22, aparte de esto también podemos proteger otros puertos.
  • Sistema Actualizado:
    apt-get update
  • Instalar Knockd:
    sudo apt-get install knockd
  • Instalar ssh:
    sudo apt-get install ssh
  • Instalar iptables:
    sudo apt-get install iptables-persistent

CONFIGURACIÓN :

sudo service iptables-persistent start
sudo nano /etc/knockd.conf
Debería ver un archivo que tiene el siguiente aspecto:
 
[options]
        UseSyslog

[openSSH]
        sequence    = 7000,8000,9000
        seq_timeout = 5
        command     = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn

[closeSSH]
        sequence    = 9000,8000,7000
        seq_timeout = 5
        command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
        tcpflags    = syn 
En la sección “Opciones”, vemos una directiva llamada UseSyslog. Esto le dice a knockd que debería registrar su información, utilizando los métodos de registro del sistema normales. Esto insertará se registra en /var/log/messages.
Ahora el parámetro que fija el patrón de golpeteo es aquí:
sequence    = 7000,8000,9000
Esto significa que este conjunto de reglas coincidirá si la misma IP solicita una conexión en el puerto 7000, seguido directamente por el puerto 8000, seguido finalmente por el puerto 9000.
Otros dos parámetros en esta serie también controlan si la actividad coincide:
seq_timeout = 5
tcpflags = syn
La primera opción especifica una cantidad de tiempo que la secuencia.
El segundo especifica una bandera que debe estar presente en los paquetes TCP a fin de que sean considerados válidos. El valor de syn que vemos aquí se utiliza comúnmente para distinguir los paquetes que queremos de los creados en un segundo plano por programas como SSH.
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
Usted debe reconocer esto como una regla de iptables. Como la sección de la etiqueta “openSSH” señala, en esta sección se abrirá un puerto para conexiones SSH cuando se golpea la secuencia correcta.
Sin embargo, si estaban prestando atención durante la configuración de iptables, se verá que esta nueva norma se utilice la opción -A para añadir esta regla al final de la cadena INPUT. Esto colocará esta regla después de la regla para dejar todas las conexiones restantes.
Para solucionar esta situación, tenemos que modificar este comando. Reemplazar el comando con una regla para insertar la nueva regla en la parte superior de la lista. Hacemos esto mediante el uso de la opción -I y hacer referencia a la ubicación como la regla 1:
command = /sbin/iptables -I INPUT 1 -s %IP% -p tcp --dport 22 -j ACCEPT

Implementar el Servicio Knockd

Ahora que hemos configurado knockd tener un conjunto de reglas válidas, podemos probarlo mediante la implementación de nuestro demonio. Tenga en cuenta, aunque la configuración es válida, en este punto, no es seguro a menos que cambiara las secuencias de puerto para cada sección golpeando.
Tenemos que activar el servicio mediante la edición de otro archivo. 
Abrir este archivo con privilegios de root:
sudo nano /etc/default/knockd
Tenemos que cambiar el START_KNOCKD opción de ser “1” con el fin de iniciar el servicio y cambiar eth1 a eth0.
START_KNOCKD=1
#KNOCKD_OPTS="-i eth0"
GUARDAMOS CON CONTROL + X
Ahora, podemos iniciar el servicio escribiendo:
sudo service knockd start
Ahora ejecutamos esto para comience el proceso de seguridad
sudo iptables -A INPUT -p tcp -m tcp --dport 22 -j REJECT
Ahora perderá la conexión y para ingresar usted tiene que instalar
sudo apt-get install knockd
Y para iniciar el sistema colocamos
knock 192.168.1.2 7000 8000 9000
knock -v 192.168.1.2 7000 8000 9000
Para cerrar es
knock 192.168.1.2 9000 8000 7000
knock -v 192.168.1.2 9000 8000 7000
PARA VER LOS CONECTADOS.
iptables -L -n
sudo lsof -i
LISTO, recuerda que 7000 8000 9000 puedes cambiar y cambiar a tu beneficio de seguridad.
No te olvides de compartirlo para seguir vivo en esto. Gracias. Para controlarlo para Windows

Publicar un comentario

0 Comentarios