Buscar"port knocking"

Port Knocking con un paquete cifrado.

Ya se conocen las diferentes manera de implementar Port Knocking, desde golpeteos en diferentes puertos, enviar información via UDP o enviar un ICMP con cierto tamaño.

Vía Twitter encontré una nueva manera de hacerlo, la misma se trata de enviar un paquete con un cifrado especial realizado con llave pública y privada.

Se realiza con la implementación del Firewall Knock Operator el cual permite la implementación de certificados y la apertura de puerto de acuerdo a un paquete especial que se le envie.

Están descriptos los pasos y las herramientas necesarias para poder usar esta modalidad, que para mi gusto es un poco rebuscada pero es funcional igual.

Vía: Vampii

Port Knocking con ICMP en MikroTik

La técnica de Port Knocking es muy utilizada para segurizar los router y de la cual hemos comentado varias maneras de implementarla; con una aplicación de Linux para trabajar con TCP y UDP (SYN) y también con Layer7 siguiendo algún patrón en especial para detectar el intento de acceso.

En esta oportunidad encontré una nueva manera de implementarla que es muy ingeniosa, se trata de enviar un paquete ICMP pero con un tamaño en especial y así poder detectar el intento de acceso, colocando el IP origen a una lista para luego aceptarle sus peticiones.

El paso a paso está en este artículo (original inglés)  y he decido tomar el mismo y traducirlo al español ya que será de utilidad para todos.

Partimos de la idea que vamos a permitir el acceso vía SSH de un Address List llamado AllowKnock; a ésta lista agregaremos los IP que nos envién un paquete ICMP con cierto tamaño en particular. Vamos a definir el tamaño de 5000 bytes pero teniendo en cuenta lo siguiente:

Tamaño del paquete (bytes) + 28 = Tamaño total del paquete (bytes)(28 bytes es el encabezado)

Sabiendo lo anterior y utilizando el tamaño de 5000 bytes tenemos:

5000 + 28 = 5028

Los pasos para crear las reglas son:

Ahora agregamos la nueva regla que acepte el SSH:

Ahora para testearlo hacemos:

Y eso es todo, excelente técnica!!

Vía: Datapels

Aplicaci�n de Port Knocking

El uso del concepto de Port Knocking es muy útil para los que son paranoicos ó requieren de tener un alta seguridad en los routers ó servidores. Un explicativo de como realizarlo con MikroTik está disponible en MKE Solutions en la sección artículos.

Ahora tenemos una aplicación realizada por  Greg Sowell que permite enviar diferentes paquetes en un orden y puerto definido para el acceso a algún dispositivo. Lo interesante es que se puede poner cierto texto definido en el paquete, si es que aplicamos la detección por Layer7 de la cual también hemos hablado anteriormente.

La aplicación está disponible para su descarga, y lo mejor de todo es que el código fuente también está disponible tanto en el sitio original como en pastebin.

Via: GregSowell

Un Port Knocking especial

Hace tiempo que tengo guardado este artículo y no me había hecho lugar para escribir sobre él, siendo bastante útil para los que les gusta la seguridad  o la paranoia. Ya hemos hablado del Port Knocking hace tiempo, el sistema acá sigue la misma esencia pero le añade un poco de layer7, puertos y un script para hacer el envío en UDP.

Esta con las capturas de pantallas y con una buena explicación de su uso (aunque en inglés pero Google Translate se soluciona) y trae un script para ser ejecutado con AutoIT. Trabajando un poco se puede portar para PHP, pero en sí se ve la utilidad y el ingenio en la seguridad.

El artículo esta en Cactiusers

Port Knocking: An�lisis e implementaci�n

Hay una técnica de seguridad llamada port knocking, que no la voy a explicar porque la gente de HispaSec hizo un excelente artículo sobre la descripción del sistema. Yo lo utilizo en mis routers para cuando viajo pueda tener accesos a los mismos, ya que no se cual es la dirección IP porque es dinámica.

En Mikrotik se puede implementar este sistema, hace mucho tiempo que en el wiki están los pasos para poder implementarlo, es una buena opción al momento de la seguridad.

A continuación pego parte del artículo de Hispasec, que es la parte descriptiva, pero vale la pena leer el artículo completo ya que tiene algunos conceptos interesantes.

¿Qué es "Port Knocking"?

Todos hemos visto películas en las que alguien golpea cierta secuencia en la puerta de una taberna y si la secuencia era correcta el tabernero abre una rendija para solicitar una clave verbal. Si la secuencia de llamada no era correcta, ninguna medida se toma y el interesado cree que la taberna se halla cerrada. El concepto de "Port Knocking" es exactamente análogo.

En informática, este concepto consiste en enviar paquetes a ciertos puertos en un orden específico con el fin de abrir un puerto en concreto. Este último puerto se halla cerrado por un cortafuegos siempre y cuando no se realice el barrido de puertos siguiendo la secuencia particular. De esta forma, si un atacante efectúa un escaneo del sistema, el puerto aparecerá cerrado aun estando el servicio asociado a él en funcionamiento, el cortafuegos hace un simple DROP si no se ha efectuado la secuencia de barrido previa.

Tomemos como ejemplo un demonio sshd escuchando en el puerto 22/TCP. Elegimos como secuencia de barrido la sucesión 43, 6540 y 82. El puerto 22 se abrirá si, y solo si, un usuario inicializa conexiones TCP hacia los puertos 43, 6540 y 82 en ese orden exacto. En caso contrario el usuario recibirá como respuesta un RST/ACK cuando intenta comenzar una conexión hacia el puerto 22.

Si la secuencia correcta de inicializaciones ha sido efectuada, el puerto 22 se abrirá durante un lapso de tiempo determinado y únicamente para la IP que completó la secuencia previa. Una vez el puerto 22 se halle abierto, se pueden llevar a cabo medidas adicionales de autenticación.

App gratis de iPhone para PortKnocking

Encontré esta aplicación gratuita para iPhone / iPad que permite realizar un Port Knocking TCP o UDP.

Recordando que Port Knocking es la técnica que nos permite tener cerrado nuestros accesos SSH / Winbox o el servicio que queramos de manera publica, y solo estará disponible para quien tenga la combinación correcta de puertos para brindarle acceso. Algo que hemos explicado en otro post.

La herramienta KnockOnD, como dije es gratuita y tiene varias opciones de configuración personalizadas. Se puede leer mas en el App Store.

 

PortKnocking en Linux

Recientemente me toco tener que acceder a un router que tenía Port Knocking activo y recordé que no tenía ninguna aplicación para Linux que hiciera ese trabajo, ya que hacía mucho que no lo utilizaba. Por suerte solo hizo falta realizar una sola linea para la instalación de una herramienta desde el repositorio de Ubuntu.

Para instalar la herramienta:

sudo apt-get install knockd

Para utilizarlo:

# knock
usage: knock [options] <host> <port[:proto]> [port[:proto]] ...
options:
-u, --udp            make all ports hits use UDP (default is TCP)
-v, --verbose        be verbose
-V, --version        display version
-h, --help           this help
example:  knock myserver.example.com 123:tcp 456:udp 789:tcp