improvisar_un_sistema_port_knocking_para_accesos
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
improvisar_un_sistema_port_knocking_para_accesos [2022/02/27 22:21] – created busindre | improvisar_un_sistema_port_knocking_para_accesos [2022/02/27 23:33] (current) – busindre | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Sistema | + | ====== Sistema |
El golpeo de puertos (del inglés port knocking) es un mecanismo para abrir puertos externamente en un sistema de control de acceso, normalmente un firewall, mediante una secuencia de " | El golpeo de puertos (del inglés port knocking) es un mecanismo para abrir puertos externamente en un sistema de control de acceso, normalmente un firewall, mediante una secuencia de " | ||
Line 7: | Line 7: | ||
Por lo general este mecanismo de golpeo de puertos 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 " | Por lo general este mecanismo de golpeo de puertos 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 " | ||
- | Ya hay software dedicado para estos fines en casi todos los sistemas operativos, pero vamos a ver una forma simple y de andar por casa para implementar un port knocking. Este se basará en ofrecer un servicio de proxy socks5 en un determinado | + | Ya hay software dedicado para estos fines en casi todos los sistemas operativos, pero vamos a ver una forma simple y de andar por casa para implementar un port knocking |
- | Script knoking.sh | + | **Servidor proxy Socks5** ([[https:// |
+ | <code bash># Descargar el script. | ||
+ | wget wget " | ||
+ | chmod 755 sss.pl | ||
+ | # Ejecutar el script para que escuche en todos los interfaces en el puerto 534. | ||
+ | ./sss.pl 0.0.0.0 534 | ||
+ | Process (14761) has entered into background. | ||
+ | </ | ||
+ | | ||
+ | **Script knoking.sh** (Se ejecuta mediante crond). | ||
<code bash> | <code bash> | ||
#!/bin/bash | #!/bin/bash | ||
############# | ############# | ||
- | port=534 | + | port=534 |
- | service_log=" | + | service_log=" |
- | payload=" | + | payload=" |
- | logfile=/ | + | logfile=/ |
- | cron=" | + | cron=" |
+ | # La tarea crontab debe estar configurada para ejecutarse cada 2 minutos en este ejemplo. | ||
################################## | ################################## | ||
+ | # Se obtiene la IP de la persona que ingreso la cadena de texto pertinen, en este caso " | ||
ips=$( journalctl | ips=$( journalctl | ||
+ | # Si hay una IP que ha enviado dicha cadena de texto, se abrirá el puerto pertinente para dicha IP, si ya existe, no se hace nada. | ||
if [ -n " | if [ -n " | ||
/ | / | ||
fi</ | fi</ | ||
+ | |||
+ | **Tarea crontab**. | ||
+ | < | ||
+ | */2 * * * * / | ||
+ | |||
+ | **Realizar el port knocking** | ||
+ | <code bash># Opción 1. | ||
+ | ssh stallmanissexy@dominio.com | ||
+ | |||
+ | # Opción 2. | ||
+ | nc dominio.com 22 | ||
+ | SSH-2.0-OpenSSH_7.4 | ||
+ | stallmanissexy | ||
+ | Protocol mismatch. | ||
+ | |||
+ | # Opción 3. | ||
+ | telnet dominio.com 22 | ||
+ | Trying X.X.X.X... | ||
+ | Connected to dominio.com | ||
+ | Escape character is ' | ||
+ | SSH-2.0-OpenSSH_7.4 | ||
+ | stallmanissexy | ||
+ | Protocol mismatch. | ||
+ | Connection closed by foreign host | ||
+ | </ | ||
+ | |||
+ | Si todo ha salido bien, en menos de dos minutos iptables habrá abierto el acceso al puerto 534 a la IP que envío la cadena de texto " |
improvisar_un_sistema_port_knocking_para_accesos.1645996895.txt.gz · Last modified: 2022/02/27 22:21 by busindre